Loading .github/workflows/integration.yml +20 −10 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ jobs: --volume=/lib/modules:/lib/modules:ro \ --cgroupns=host \ --network=k3s-ansible \ rancher/systemd-node:v0.0.8 /usr/lib/systemd/systemd --unit=noop.target --show-status=true ${{ env.container_os }} ${{ env.container_cmd }} # Start the Agent node docker run -d --name agent-node \ Loading @@ -76,16 +76,17 @@ jobs: --network=k3s-ansible \ ${{ env.container_os }} ${{ env.container_cmd }} - name: Install server dependencies run: docker exec server-node zypper install -y python3-rpm - name: Install agent dependencies (systemd) - name: Install node dependencies (systemd) if: matrix.service_mgr == 'systemd' run: docker exec agent-node zypper install -y python3-rpm run: | docker exec server-node zypper install -y python3-rpm docker exec agent-node zypper install -y python3-rpm - name: Install agent dependencies (openrc) - name: Install node dependencies (openrc) if: matrix.service_mgr == 'openrc' run: docker exec agent-node apk add curl python3 run: | docker exec server-node apk add curl python3 docker exec agent-node apk add curl python3 - name: Run Playbook env: Loading Loading @@ -193,7 +194,11 @@ jobs: echo "CONFIG FILE" docker exec server-node cat /etc/rancher/k3s/config.yaml echo "Server ENV" if [ $service_mgr == "systemd" ]; then docker exec server-node cat /etc/systemd/system/k3s.service.env elif [ $service_mgr == "openrc" ]; then docker exec server-node cat /etc/rancher/k3s/k3s.env fi echo "Agent ENV" if [ $service_mgr == "systemd" ]; then docker exec agent-node cat /etc/systemd/system/k3s-agent.service.env Loading @@ -201,7 +206,12 @@ jobs: docker exec agent-node cat /etc/rancher/k3s/k3s-agent.env fi echo "SERVER LOGS" if [ $service_mgr == "systemd" ]; then docker exec server-node journalctl -u k3s -n 10 elif [ $service_mgr == "openrc" ]; then tail -n 10 /var/log/k3s.log fi - name: Remove K3s from Server and Agent run: ansible-playbook playbooks/reset.yml -i tests/${{ matrix.inventory }}.yml Loading roles/k3s_server/tasks/main.yml +35 −26 Original line number Diff line number Diff line Loading @@ -133,6 +133,17 @@ regexp: '\.\s+<\(k3s completion bash\)' line: ". <(k3s completion bash) # Added by k3s-ansible" - name: Set k3s server environment file based on init system ansible.builtin.set_fact: k3s_server_env_file: "{{ (ansible_facts['service_mgr'] == 'systemd') | ternary(systemd_dir ~ '/k3s.service.env', '/etc/rancher/k3s/k3s.env') }}" - name: Add service environment variables when: extra_service_envs is defined ansible.builtin.lineinfile: path: "{{ k3s_server_env_file }}" line: "{{ item }}" loop: "{{ extra_service_envs }}" - name: Init first server node when: inventory_hostname == groups[server_group][0] or ansible_host == groups[server_group][0] block: Loading @@ -145,34 +156,32 @@ mode: "0644" register: k3s_server_config_result - name: Add service environment variables when: extra_service_envs is defined ansible.builtin.lineinfile: path: "{{ systemd_dir }}/k3s.service.env" line: "{{ item }}" loop: "{{ extra_service_envs }}" - name: Delete any existing token from the environment if different from the new one ansible.builtin.lineinfile: state: absent path: "{{ systemd_dir }}/k3s.service.env" path: "{{ k3s_server_env_file }}" regexp: "^K3S_TOKEN=\\s*(?!{{ token | default('') | regex_escape }}\\s*$)" - name: Reload systemd daemon when: - not ansible_check_mode - ansible_facts['service_mgr'] == 'systemd' ansible.builtin.systemd: daemon_reload: true - name: Restart K3s service when: - ansible_facts.services['k3s.service'] is defined - ansible_facts.services['k3s.service'].state == 'running' - k3s_server_config_result.changed ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: restarted - name: Enable and check K3s service - name: Enable and start K3s service when: ansible_facts.services['k3s.service'] is not defined or ansible_facts.services['k3s.service'].state != 'running' ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: started enabled: true Loading @@ -193,12 +202,14 @@ # Copy the k3s config to a second file to detect changes. # If no changes are found, we can skip copying the kubeconfig to the control node. # This is dependent on the speed of the target node for k3s startup time, so retries are used. - name: Copy k3s.yaml to second file ansible.builtin.copy: src: /etc/rancher/k3s/k3s.yaml dest: /etc/rancher/k3s/k3s-copy.yaml mode: "0600" remote_src: true retries: 3 register: k3s_server_copy_yaml tags: kubeconfig Loading Loading @@ -280,34 +291,32 @@ mode: "0644" register: k3s_server_config_result - name: Add service environment variables when: extra_service_envs is defined ansible.builtin.lineinfile: path: "{{ systemd_dir }}/k3s.service.env" line: "{{ item }}" loop: "{{ extra_service_envs }}" - name: Delete any existing token from the environment if different from the new one ansible.builtin.lineinfile: state: absent path: "{{ systemd_dir }}/k3s.service.env" path: "{{ k3s_server_env_file }}" regexp: "^K3S_TOKEN=\\s*(?!{{ token | regex_escape }}\\s*$)" - name: Reload systemd daemon when: - not ansible_check_mode - ansible_facts['service_mgr'] == 'systemd' ansible.builtin.systemd: daemon_reload: true - name: Restart K3s service when: - ansible_facts.services['k3s.service'] is defined - ansible_facts.services['k3s.service'].state == 'running' - k3s_server_config_result.changed ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: restarted - name: Enable and check K3s service - name: Enable and start K3s service when: ansible_facts.services['k3s.service'] is not defined or ansible_facts.services['k3s.service'].state != 'running' ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: started enabled: true Loading Loading
.github/workflows/integration.yml +20 −10 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ jobs: --volume=/lib/modules:/lib/modules:ro \ --cgroupns=host \ --network=k3s-ansible \ rancher/systemd-node:v0.0.8 /usr/lib/systemd/systemd --unit=noop.target --show-status=true ${{ env.container_os }} ${{ env.container_cmd }} # Start the Agent node docker run -d --name agent-node \ Loading @@ -76,16 +76,17 @@ jobs: --network=k3s-ansible \ ${{ env.container_os }} ${{ env.container_cmd }} - name: Install server dependencies run: docker exec server-node zypper install -y python3-rpm - name: Install agent dependencies (systemd) - name: Install node dependencies (systemd) if: matrix.service_mgr == 'systemd' run: docker exec agent-node zypper install -y python3-rpm run: | docker exec server-node zypper install -y python3-rpm docker exec agent-node zypper install -y python3-rpm - name: Install agent dependencies (openrc) - name: Install node dependencies (openrc) if: matrix.service_mgr == 'openrc' run: docker exec agent-node apk add curl python3 run: | docker exec server-node apk add curl python3 docker exec agent-node apk add curl python3 - name: Run Playbook env: Loading Loading @@ -193,7 +194,11 @@ jobs: echo "CONFIG FILE" docker exec server-node cat /etc/rancher/k3s/config.yaml echo "Server ENV" if [ $service_mgr == "systemd" ]; then docker exec server-node cat /etc/systemd/system/k3s.service.env elif [ $service_mgr == "openrc" ]; then docker exec server-node cat /etc/rancher/k3s/k3s.env fi echo "Agent ENV" if [ $service_mgr == "systemd" ]; then docker exec agent-node cat /etc/systemd/system/k3s-agent.service.env Loading @@ -201,7 +206,12 @@ jobs: docker exec agent-node cat /etc/rancher/k3s/k3s-agent.env fi echo "SERVER LOGS" if [ $service_mgr == "systemd" ]; then docker exec server-node journalctl -u k3s -n 10 elif [ $service_mgr == "openrc" ]; then tail -n 10 /var/log/k3s.log fi - name: Remove K3s from Server and Agent run: ansible-playbook playbooks/reset.yml -i tests/${{ matrix.inventory }}.yml Loading
roles/k3s_server/tasks/main.yml +35 −26 Original line number Diff line number Diff line Loading @@ -133,6 +133,17 @@ regexp: '\.\s+<\(k3s completion bash\)' line: ". <(k3s completion bash) # Added by k3s-ansible" - name: Set k3s server environment file based on init system ansible.builtin.set_fact: k3s_server_env_file: "{{ (ansible_facts['service_mgr'] == 'systemd') | ternary(systemd_dir ~ '/k3s.service.env', '/etc/rancher/k3s/k3s.env') }}" - name: Add service environment variables when: extra_service_envs is defined ansible.builtin.lineinfile: path: "{{ k3s_server_env_file }}" line: "{{ item }}" loop: "{{ extra_service_envs }}" - name: Init first server node when: inventory_hostname == groups[server_group][0] or ansible_host == groups[server_group][0] block: Loading @@ -145,34 +156,32 @@ mode: "0644" register: k3s_server_config_result - name: Add service environment variables when: extra_service_envs is defined ansible.builtin.lineinfile: path: "{{ systemd_dir }}/k3s.service.env" line: "{{ item }}" loop: "{{ extra_service_envs }}" - name: Delete any existing token from the environment if different from the new one ansible.builtin.lineinfile: state: absent path: "{{ systemd_dir }}/k3s.service.env" path: "{{ k3s_server_env_file }}" regexp: "^K3S_TOKEN=\\s*(?!{{ token | default('') | regex_escape }}\\s*$)" - name: Reload systemd daemon when: - not ansible_check_mode - ansible_facts['service_mgr'] == 'systemd' ansible.builtin.systemd: daemon_reload: true - name: Restart K3s service when: - ansible_facts.services['k3s.service'] is defined - ansible_facts.services['k3s.service'].state == 'running' - k3s_server_config_result.changed ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: restarted - name: Enable and check K3s service - name: Enable and start K3s service when: ansible_facts.services['k3s.service'] is not defined or ansible_facts.services['k3s.service'].state != 'running' ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: started enabled: true Loading @@ -193,12 +202,14 @@ # Copy the k3s config to a second file to detect changes. # If no changes are found, we can skip copying the kubeconfig to the control node. # This is dependent on the speed of the target node for k3s startup time, so retries are used. - name: Copy k3s.yaml to second file ansible.builtin.copy: src: /etc/rancher/k3s/k3s.yaml dest: /etc/rancher/k3s/k3s-copy.yaml mode: "0600" remote_src: true retries: 3 register: k3s_server_copy_yaml tags: kubeconfig Loading Loading @@ -280,34 +291,32 @@ mode: "0644" register: k3s_server_config_result - name: Add service environment variables when: extra_service_envs is defined ansible.builtin.lineinfile: path: "{{ systemd_dir }}/k3s.service.env" line: "{{ item }}" loop: "{{ extra_service_envs }}" - name: Delete any existing token from the environment if different from the new one ansible.builtin.lineinfile: state: absent path: "{{ systemd_dir }}/k3s.service.env" path: "{{ k3s_server_env_file }}" regexp: "^K3S_TOKEN=\\s*(?!{{ token | regex_escape }}\\s*$)" - name: Reload systemd daemon when: - not ansible_check_mode - ansible_facts['service_mgr'] == 'systemd' ansible.builtin.systemd: daemon_reload: true - name: Restart K3s service when: - ansible_facts.services['k3s.service'] is defined - ansible_facts.services['k3s.service'].state == 'running' - k3s_server_config_result.changed ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: restarted - name: Enable and check K3s service - name: Enable and start K3s service when: ansible_facts.services['k3s.service'] is not defined or ansible_facts.services['k3s.service'].state != 'running' ansible.builtin.systemd: ansible.builtin.service: name: k3s daemon_reload: true state: started enabled: true Loading