snel.kubernetes-cluster/roles/talos_config_create/tasks/create_node_config.yml

72 lines
2.7 KiB
YAML

---
- name: Set Talos override config
ansible.builtin.set_fact:
_talos_override_config:
machine:
network:
hostname: "{{ inventory_hostname }}"
interfaces:
- interface: "{{ network_interface }}"
addresses:
- "{{ ansible_host }}/{{ network_cidr_prefix }}"
routes:
- network: 0.0.0.0/0
gateway: "{{ (ansible_host ~ '/' ~ network_cidr_prefix) | ansible.utils.ipaddr('1') | ansible.utils.ipaddr('address') }}"
install:
disk: "{{ talos_disk }}"
kubelet:
extraArgs:
max-pods: "{% if 'talos_hardware_nodes' in group_names %}250{% else %}110{% endif %}"
- name: Create Talos interfaces bond append
when: "network_interface_bond is defined"
ansible.utils.update_fact:
updates:
- path: "_talos_override_config.machine.network.interfaces.0.bond"
value: "{{ network_interface_bond }}"
register: _talos_override_update
- name: Apply Talos interfaces bond append
when: "network_interface_bond is defined"
ansible.builtin.set_fact:
_talos_override_config: "{{ _talos_override_update._talos_override_config }}"
- name: Create temp directory
delegate_to: "{{ talosctl_host }}"
ansible.builtin.file:
state: directory
path: "{{ talos_cluster_tmp_dir }}"
mode: u=rwX,go=
- name: Set fact with overrides file
ansible.builtin.set_fact:
_talos_override_tempfile: "{{ talos_cluster_tmp_dir }}/overrides_{{ inventory_hostname }}.yaml"
- name: Wride overrides to tempfile
delegate_to: "{{ talosctl_host }}"
ansible.builtin.copy:
dest: "{{ _talos_override_tempfile }}"
mode: u=rw,go=
content: "{{ _talos_override_config | ansible.builtin.to_yaml }}"
- name: Create Talos worker node config
delegate_to: "{{ talosctl_host }}"
ansible.builtin.command:
cmd: >-
talosctl gen config '{{ cluster_name }}' 'https://{{ talos_control_lb_hostname }}:6443'
--output-types='{% if "talos_control_nodes" in group_names %}controlplane{% else %}worker{% endif %}'
--output='{{ talos_node_config_file }}'
--with-secrets='{{ talos_cluster_secrets_file }}'
--config-patch=@'{{ talos_generic_config_dir }}/talos-patch.yaml'
--config-patch-control-plane @'{{ talos_generic_config_dir }}/talos-patch-control.yaml'
--config-patch-worker=@'{{ talos_generic_config_dir }}/talos-patch-worker.yaml'
--config-patch=@'{{ _talos_override_tempfile }}'
--talos-version='{{ talos_image_version }}'
--kubernetes-version='{{ kubernetes_version }}'
--additional-sans='{{ talos_control_lb_hostname }}'
--force
--with-docs=false
--with-examples=false
changed_when: true