fix(cluster-token): cluster tokens can now be specified without breaking configurations where cluster tokens are auto-generated

This commit is contained in:
Xan Manning 2022-05-29 18:55:01 +01:00
parent 503e3ccc3f
commit 86a9f25325
6 changed files with 30 additions and 6 deletions

View file

@ -6,6 +6,7 @@
molecule_is_test: true molecule_is_test: true
k3s_release_version: latest k3s_release_version: latest
k3s_build_cluster: false k3s_build_cluster: false
k3s_control_token: 55ba04e5-e17d-4535-9170-3e4245453f4d
k3s_install_dir: /opt/k3s/bin k3s_install_dir: /opt/k3s/bin
k3s_config_file: /opt/k3s/etc/k3s.yaml k3s_config_file: /opt/k3s/etc/k3s.yaml
k3s_server: k3s_server:

View file

@ -6,6 +6,7 @@
vars: vars:
molecule_is_test: true molecule_is_test: true
k3s_registration_address: loadbalancer k3s_registration_address: loadbalancer
k3s_control_token: 55ba04e5-e17d-4535-9170-3e4245453f4d
k3s_server: k3s_server:
datastore-endpoint: "postgres://postgres:verybadpass@database:5432/postgres?sslmode=disable" datastore-endpoint: "postgres://postgres:verybadpass@database:5432/postgres?sslmode=disable"
k3s_agent: k3s_agent:

View file

@ -12,14 +12,17 @@
- name: Ensure cluster token is formatted correctly for use in templates - name: Ensure cluster token is formatted correctly for use in templates
ansible.builtin.set_fact: ansible.builtin.set_fact:
k3s_control_token: "{{ k3s_slurped_cluster_token.content | b64decode }}" k3s_control_token_content: "{{ k3s_control_token | default(k3s_slurped_cluster_token.content | b64decode) }}"
when: k3s_control_token is not defined and not ansible_check_mode when:
- k3s_control_token is not defined
- not ansible_check_mode
- name: Ensure dummy cluster token is defined for ansible_check_mode - name: Ensure dummy cluster token is defined for ansible_check_mode
ansible.builtin.set_fact: ansible.builtin.set_fact:
k3s_control_token: "{{ k3s_control_delegate | to_uuid }}" k3s_control_token_content: "{{ k3s_control_delegate | to_uuid }}"
check_mode: false check_mode: false
when: k3s_control_token is not defined and ansible_check_mode when:
- ansible_check_mode
- name: Ensure the cluster token file location exists - name: Ensure the cluster token file location exists
ansible.builtin.file: ansible.builtin.file:

View file

@ -27,6 +27,25 @@
- restart k3s - restart k3s
become: "{{ k3s_become }}" become: "{{ k3s_become }}"
- name: Ensure cluster token is present when pre-defined
block:
- name: Ensure the cluster token file location exists
ansible.builtin.file:
path: "{{ k3s_token_location | dirname }}"
state: directory
mode: 0755
become: "{{ k3s_become }}"
- name: Ensure k3s cluster token file is present
ansible.builtin.template:
src: cluster-token.j2
dest: "{{ k3s_token_location }}"
mode: 0600
become: "{{ k3s_become }}"
notify:
- restart k3s
when: k3s_control_token is defined
- name: Ensure k3s service unit file is present - name: Ensure k3s service unit file is present
ansible.builtin.template: ansible.builtin.template:
src: k3s.service.j2 src: k3s.service.j2

View file

@ -1 +1 @@
{{ k3s_control_token }} {{ k3s_control_token_content | default(k3s_control_token | default(k3s_control_delegate | to_uuid)) }}

View file

@ -42,7 +42,7 @@ ExecStart={{ k3s_install_dir }}/k3s
{% if k3s_server is defined %} {% if k3s_server is defined %}
--config {{ k3s_config_file }} --config {{ k3s_config_file }}
{% endif %} {% endif %}
{% if k3s_token_location %} {% if not k3s_primary_control_node or k3s_control_token is defined %}
--token-file {{ k3s_token_location }} --token-file {{ k3s_token_location }}
{% endif %} {% endif %}
{% else %} {% else %}