ansible-role-k3s/tasks/ensure_k3s_auto_deploy.yml
Devin Buhl 3f1d2da21b
fix: static pods should be deployed to all control nodes
Signed-off-by: Devin Buhl <devin@buhl.casa>
2023-05-31 20:39:15 -04:00

70 lines
2.3 KiB
YAML

---
- name: Ensure that the manifests directory exists
ansible.builtin.file:
state: directory
path: "{{ k3s_server_manifests_dir }}"
mode: 0755
when: >-
k3s_primary_control_node and
(k3s_server_manifests_templates | length > 0
or k3s_server_manifests_urls | length > 0)
become: "{{ k3s_become }}"
- name: Ensure that the pod-manifests directory exists
ansible.builtin.file:
state: directory
path: "{{ k3s_server_pod_manifests_dir }}"
mode: 0755
when: >-
k3s_control_node and
(k3s_server_pod_manifests_templates | length > 0
or k3s_server_pod_manifests_urls | length > 0)
become: "{{ k3s_become }}"
# https://rancher.com/docs/k3s/latest/en/advanced/#auto-deploying-manifests
- name: Ensure auto-deploying manifests are copied to the primary controller
ansible.builtin.template:
src: "{{ item }}"
dest: "{{ k3s_server_manifests_dir }}/{{ item | basename | replace('.j2', '') }}"
mode: 0644
loop: "{{ k3s_server_manifests_templates }}"
become: "{{ k3s_become }}"
when:
- k3s_primary_control_node
- k3s_server_manifests_templates | length > 0
- name: Ensure auto-deploying manifests are downloaded to the primary controller
ansible.builtin.get_url:
url: "{{ item.url }}"
dest: "{{ k3s_server_manifests_dir }}/{{ item.filename | default(item.url | basename) }}"
mode: 0644
loop: "{{ k3s_server_manifests_urls }}"
become: "{{ k3s_become }}"
when:
- k3s_primary_control_node
- not ansible_check_mode
- k3s_server_manifests_urls | length > 0
# https://github.com/k3s-io/k3s/pull/1691
- name: Ensure static pod manifests are copied to controllers
ansible.builtin.template:
src: "{{ item }}"
dest: "{{ k3s_server_pod_manifests_dir }}/{{ item | basename | replace('.j2', '') }}"
mode: 0644
loop: "{{ k3s_server_pod_manifests_templates }}"
become: "{{ k3s_become }}"
when:
- k3s_control_node
# https://rancher.com/docs/k3s/latest/en/advanced/#auto-deploying-manifests
- name: Ensure auto-deploying manifests are downloaded to the primary controller
ansible.builtin.get_url:
url: "{{ item.url }}"
dest: "{{ k3s_server_pod_manifests_dir }}/{{ item.filename | default(item.url | basename) }}"
mode: 0644
loop: "{{ k3s_server_pod_manifests_urls }}"
become: "{{ k3s_become }}"
when:
- k3s_control_node
- not ansible_check_mode