mirror of
https://github.com/k3s-io/k3s-ansible.git
synced 2026-03-09 12:02:11 +01:00
Add support for openrc to k3s_server role
Signed-off-by: Derek Nola <derek.nola@suse.com>
This commit is contained in:
30
.github/workflows/integration.yml
vendored
30
.github/workflows/integration.yml
vendored
@@ -62,7 +62,7 @@ jobs:
|
|||||||
--volume=/lib/modules:/lib/modules:ro \
|
--volume=/lib/modules:/lib/modules:ro \
|
||||||
--cgroupns=host \
|
--cgroupns=host \
|
||||||
--network=k3s-ansible \
|
--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
|
# Start the Agent node
|
||||||
docker run -d --name agent-node \
|
docker run -d --name agent-node \
|
||||||
@@ -76,16 +76,17 @@ jobs:
|
|||||||
--network=k3s-ansible \
|
--network=k3s-ansible \
|
||||||
${{ env.container_os }} ${{ env.container_cmd }}
|
${{ env.container_os }} ${{ env.container_cmd }}
|
||||||
|
|
||||||
- name: Install server dependencies
|
- name: Install node dependencies (systemd)
|
||||||
run: docker exec server-node zypper install -y python3-rpm
|
|
||||||
|
|
||||||
- name: Install agent dependencies (systemd)
|
|
||||||
if: matrix.service_mgr == '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'
|
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
|
- name: Run Playbook
|
||||||
env:
|
env:
|
||||||
@@ -193,7 +194,11 @@ jobs:
|
|||||||
echo "CONFIG FILE"
|
echo "CONFIG FILE"
|
||||||
docker exec server-node cat /etc/rancher/k3s/config.yaml
|
docker exec server-node cat /etc/rancher/k3s/config.yaml
|
||||||
echo "Server ENV"
|
echo "Server ENV"
|
||||||
docker exec server-node cat /etc/systemd/system/k3s.service.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"
|
echo "Agent ENV"
|
||||||
if [ $service_mgr == "systemd" ]; then
|
if [ $service_mgr == "systemd" ]; then
|
||||||
docker exec agent-node cat /etc/systemd/system/k3s-agent.service.env
|
docker exec agent-node cat /etc/systemd/system/k3s-agent.service.env
|
||||||
@@ -201,7 +206,12 @@ jobs:
|
|||||||
docker exec agent-node cat /etc/rancher/k3s/k3s-agent.env
|
docker exec agent-node cat /etc/rancher/k3s/k3s-agent.env
|
||||||
fi
|
fi
|
||||||
echo "SERVER LOGS"
|
echo "SERVER LOGS"
|
||||||
docker exec server-node journalctl -u k3s -n 10
|
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
|
- name: Remove K3s from Server and Agent
|
||||||
run: ansible-playbook playbooks/reset.yml -i tests/${{ matrix.inventory }}.yml
|
run: ansible-playbook playbooks/reset.yml -i tests/${{ matrix.inventory }}.yml
|
||||||
|
|||||||
@@ -133,6 +133,17 @@
|
|||||||
regexp: '\.\s+<\(k3s completion bash\)'
|
regexp: '\.\s+<\(k3s completion bash\)'
|
||||||
line: ". <(k3s completion bash) # Added by k3s-ansible"
|
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
|
- name: Init first server node
|
||||||
when: inventory_hostname == groups[server_group][0] or ansible_host == groups[server_group][0]
|
when: inventory_hostname == groups[server_group][0] or ansible_host == groups[server_group][0]
|
||||||
block:
|
block:
|
||||||
@@ -145,34 +156,32 @@
|
|||||||
mode: "0644"
|
mode: "0644"
|
||||||
register: k3s_server_config_result
|
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
|
- name: Delete any existing token from the environment if different from the new one
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
state: absent
|
state: absent
|
||||||
path: "{{ systemd_dir }}/k3s.service.env"
|
path: "{{ k3s_server_env_file }}"
|
||||||
regexp: "^K3S_TOKEN=\\s*(?!{{ token | default('') | regex_escape }}\\s*$)"
|
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
|
- name: Restart K3s service
|
||||||
when:
|
when:
|
||||||
- ansible_facts.services['k3s.service'] is defined
|
- ansible_facts.services['k3s.service'] is defined
|
||||||
- ansible_facts.services['k3s.service'].state == 'running'
|
- ansible_facts.services['k3s.service'].state == 'running'
|
||||||
- k3s_server_config_result.changed
|
- k3s_server_config_result.changed
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.service:
|
||||||
name: k3s
|
name: k3s
|
||||||
daemon_reload: true
|
|
||||||
state: restarted
|
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'
|
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
|
name: k3s
|
||||||
daemon_reload: true
|
|
||||||
state: started
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
@@ -193,12 +202,14 @@
|
|||||||
|
|
||||||
# Copy the k3s config to a second file to detect changes.
|
# 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.
|
# 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
|
- name: Copy k3s.yaml to second file
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
src: /etc/rancher/k3s/k3s.yaml
|
src: /etc/rancher/k3s/k3s.yaml
|
||||||
dest: /etc/rancher/k3s/k3s-copy.yaml
|
dest: /etc/rancher/k3s/k3s-copy.yaml
|
||||||
mode: "0600"
|
mode: "0600"
|
||||||
remote_src: true
|
remote_src: true
|
||||||
|
retries: 3
|
||||||
register: k3s_server_copy_yaml
|
register: k3s_server_copy_yaml
|
||||||
tags: kubeconfig
|
tags: kubeconfig
|
||||||
|
|
||||||
@@ -280,34 +291,32 @@
|
|||||||
mode: "0644"
|
mode: "0644"
|
||||||
register: k3s_server_config_result
|
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
|
- name: Delete any existing token from the environment if different from the new one
|
||||||
ansible.builtin.lineinfile:
|
ansible.builtin.lineinfile:
|
||||||
state: absent
|
state: absent
|
||||||
path: "{{ systemd_dir }}/k3s.service.env"
|
path: "{{ k3s_server_env_file }}"
|
||||||
regexp: "^K3S_TOKEN=\\s*(?!{{ token | regex_escape }}\\s*$)"
|
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
|
- name: Restart K3s service
|
||||||
when:
|
when:
|
||||||
- ansible_facts.services['k3s.service'] is defined
|
- ansible_facts.services['k3s.service'] is defined
|
||||||
- ansible_facts.services['k3s.service'].state == 'running'
|
- ansible_facts.services['k3s.service'].state == 'running'
|
||||||
- k3s_server_config_result.changed
|
- k3s_server_config_result.changed
|
||||||
ansible.builtin.systemd:
|
ansible.builtin.service:
|
||||||
name: k3s
|
name: k3s
|
||||||
daemon_reload: true
|
|
||||||
state: restarted
|
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'
|
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
|
name: k3s
|
||||||
daemon_reload: true
|
|
||||||
state: started
|
state: started
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user