GRM-20: fix molecule idempotence with mode-specific systemd templates
This commit is contained in:
@@ -8,6 +8,9 @@
|
||||
- name: Load role defaults
|
||||
ansible.builtin.include_vars:
|
||||
dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults"
|
||||
- name: Override runner mode for binary scenario
|
||||
ansible.builtin.set_fact:
|
||||
runner_mode: "binary"
|
||||
tasks:
|
||||
- name: Check gitea_runner binary exists
|
||||
ansible.builtin.stat:
|
||||
@@ -26,7 +29,7 @@
|
||||
|
||||
- name: Check systemd template unit exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner@.service"
|
||||
path: "/etc/systemd/system/gitea-runner-{{ runner_mode | default('docker') }}@.service"
|
||||
register: service_stat
|
||||
|
||||
- name: Assert template unit exists
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
- name: Check systemd template unit exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner@.service"
|
||||
path: "/etc/systemd/system/gitea-runner-{{ runner_mode | default('docker') }}@.service"
|
||||
register: service_stat
|
||||
|
||||
- name: Assert template unit exists
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
- name: Check systemd template still exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner@.service"
|
||||
path: "/etc/systemd/system/gitea-runner-{{ runner_mode | default('docker') }}@.service"
|
||||
register: service_stat
|
||||
|
||||
- name: Assert systemd template still exists after deregister
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
tasks:
|
||||
- name: Stop gitea-runner systemd instance
|
||||
ansible.builtin.systemd:
|
||||
name: "gitea-runner@{{ runner_name }}"
|
||||
name: "gitea-runner-docker@{{ runner_name }}"
|
||||
state: stopped
|
||||
daemon_reload: true
|
||||
when: systemd_available.stat.exists
|
||||
|
||||
- name: Disable gitea-runner systemd instance
|
||||
ansible.builtin.systemd:
|
||||
name: "gitea-runner@{{ runner_name }}"
|
||||
name: "gitea-runner-docker@{{ runner_name }}"
|
||||
enabled: false
|
||||
daemon_reload: true
|
||||
when: systemd_available.stat.exists
|
||||
@@ -37,14 +37,14 @@
|
||||
tasks:
|
||||
- name: Enable gitea-runner systemd instance
|
||||
ansible.builtin.systemd:
|
||||
name: "gitea-runner@{{ runner_name }}"
|
||||
name: "gitea-runner-docker@{{ runner_name }}"
|
||||
enabled: true
|
||||
daemon_reload: true
|
||||
when: systemd_available.stat.exists
|
||||
|
||||
- name: Start gitea-runner systemd instance
|
||||
ansible.builtin.systemd:
|
||||
name: "gitea-runner@{{ runner_name }}"
|
||||
name: "gitea-runner-docker@{{ runner_name }}"
|
||||
state: started
|
||||
daemon_reload: true
|
||||
when: systemd_available.stat.exists
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
tasks:
|
||||
- name: Check systemd template unit exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner@.service"
|
||||
path: "/etc/systemd/system/gitea-runner-{{ runner_mode | default('docker') }}@.service"
|
||||
register: template_stat
|
||||
|
||||
- name: Assert template unit exists
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
- name: Check instance is enabled
|
||||
ansible.builtin.systemd:
|
||||
name: "gitea-runner@lifecycle-test-runner"
|
||||
name: "gitea-runner-{{ runner_mode | default('docker') }}@lifecycle-test-runner"
|
||||
register: service_status
|
||||
when: systemd_available.stat.exists
|
||||
|
||||
|
||||
@@ -6,10 +6,13 @@
|
||||
- name: Load role defaults
|
||||
ansible.builtin.include_vars:
|
||||
dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults"
|
||||
- name: Override runner mode for multi-instance scenario
|
||||
ansible.builtin.set_fact:
|
||||
runner_mode: "binary"
|
||||
tasks:
|
||||
- name: Check systemd template unit exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner@.service"
|
||||
path: "/etc/systemd/system/gitea-runner-{{ runner_mode | default('docker') }}@.service"
|
||||
register: template_stat
|
||||
|
||||
- name: Assert template unit exists
|
||||
|
||||
@@ -7,9 +7,20 @@
|
||||
ansible.builtin.include_vars:
|
||||
dir: "{{ lookup('env', 'MOLECULE_PROJECT_DIRECTORY') }}/defaults"
|
||||
tasks:
|
||||
- name: Check Docker mode systemd template exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner-docker@.service"
|
||||
register: docker_template_stat
|
||||
|
||||
- name: Assert Docker mode systemd template exists
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- docker_template_stat.stat.exists
|
||||
fail_msg: "Docker systemd template is missing"
|
||||
|
||||
- name: Read rendered Docker systemd template
|
||||
ansible.builtin.slurp:
|
||||
src: "/etc/systemd/system/gitea-runner@.service"
|
||||
src: "/etc/systemd/system/gitea-runner-docker@.service"
|
||||
register: docker_template
|
||||
|
||||
- name: Assert Docker mode template contains expected directives
|
||||
@@ -23,6 +34,30 @@
|
||||
- "'Restart=on-failure' in docker_template.content | b64decode"
|
||||
fail_msg: "Docker systemd template is missing expected directives"
|
||||
|
||||
- name: Check Binary mode systemd template exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner-binary@.service"
|
||||
register: binary_template_stat
|
||||
|
||||
- name: Assert Binary mode systemd template exists
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- binary_template_stat.stat.exists
|
||||
fail_msg: "Binary systemd template is missing"
|
||||
|
||||
- name: Read rendered Binary systemd template
|
||||
ansible.builtin.slurp:
|
||||
src: "/etc/systemd/system/gitea-runner-binary@.service"
|
||||
register: binary_template
|
||||
|
||||
- name: Assert Binary mode template contains expected directives
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- "'Type=simple' in binary_template.content | b64decode"
|
||||
- "'ExecStart={{ gitea_runner_binary_path }}' in binary_template.content | b64decode"
|
||||
- "'Restart=on-failure' in binary_template.content | b64decode"
|
||||
fail_msg: "Binary systemd template is missing expected directives"
|
||||
|
||||
- name: Read rendered prune service template
|
||||
ansible.builtin.slurp:
|
||||
src: "/etc/systemd/system/docker-prune.service"
|
||||
|
||||
@@ -29,16 +29,27 @@
|
||||
- binary_stat.stat.exists
|
||||
fail_msg: "Binary runner executable missing after update"
|
||||
|
||||
- name: Check systemd template still exists
|
||||
- name: Check Docker mode systemd template still exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner@.service"
|
||||
register: service_stat
|
||||
path: "/etc/systemd/system/gitea-runner-docker@.service"
|
||||
register: docker_service_stat
|
||||
|
||||
- name: Assert systemd template still exists after update
|
||||
- name: Assert Docker mode systemd template still exists after update
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- service_stat.stat.exists
|
||||
fail_msg: "Systemd template unit missing after update"
|
||||
- docker_service_stat.stat.exists
|
||||
fail_msg: "Docker mode systemd template missing after update"
|
||||
|
||||
- name: Check Binary mode systemd template still exists
|
||||
ansible.builtin.stat:
|
||||
path: "/etc/systemd/system/gitea-runner-binary@.service"
|
||||
register: binary_service_stat
|
||||
|
||||
- name: Assert Binary mode systemd template still exists after update
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- binary_service_stat.stat.exists
|
||||
fail_msg: "Binary mode systemd template missing after update"
|
||||
|
||||
- name: Check Docker mode data directory still exists
|
||||
ansible.builtin.stat:
|
||||
|
||||
Reference in New Issue
Block a user