runbooks-ansible/ansible/k3s.yaml

73 lines
2.1 KiB
YAML
Raw Permalink Normal View History

2026-02-07 05:36:48 -06:00
- name: Validate cluster selection and derive group names
hosts: localhost
gather_facts: false
vars:
cluster: "{{ cluster | default('') }}"
cluster_prefix: "{{ cluster | regex_replace('-cluster$', '') }}"
master_group: "{{ cluster_prefix }}-master"
node_group: "{{ cluster_prefix }}-node"
tasks:
- name: cluster must be provided
ansible.builtin.assert:
that:
- cluster | length > 0
fail_msg: "Missing required var 'cluster'. Example: -e cluster=dev-cluster"
- name: cluster must be a *-cluster group
ansible.builtin.assert:
that:
- cluster is match('.*-cluster$')
fail_msg: "cluster must end with '-cluster' (ex: dev-cluster). Got: {{ cluster }}"
- name: cluster group must exist in inventory
ansible.builtin.assert:
that:
- cluster in groups
fail_msg: "Cluster group '{{ cluster }}' not found in inventory."
- name: derived master/node groups must exist in inventory
ansible.builtin.assert:
that:
- master_group in groups
- node_group in groups
fail_msg: >-
Expected derived groups '{{ master_group }}' and '{{ node_group }}' to exist in inventory
for cluster '{{ cluster }}'.
2026-02-07 05:57:45 -06:00
- name: Install prerequisites on all nodes
hosts: "{{ cluster }}"
2026-02-07 05:19:48 -06:00
gather_facts: yes
become: yes
2026-02-07 06:35:51 -06:00
vars_files:
- "roles/k3s/vars/main.yaml"
2026-02-07 05:19:48 -06:00
roles:
- base
2026-02-07 05:57:45 -06:00
- k3s/prereq
- k3s/download
- name: Install k3s on master nodes
hosts: "{{ (cluster | regex_replace('-cluster$', '')) ~ '-master' }}"
gather_facts: yes
become: yes
2026-02-07 06:35:51 -06:00
vars_files:
- "roles/k3s/vars/main.yaml"
2026-02-07 05:57:45 -06:00
roles:
- k3s/master
2026-02-07 05:19:48 -06:00
2026-02-07 05:57:45 -06:00
- name: Install k3s on worker nodes
2026-02-07 05:36:48 -06:00
hosts: "{{ (cluster | regex_replace('-cluster$', '')) ~ '-node' }}"
2026-02-07 05:19:48 -06:00
gather_facts: yes
become: yes
2026-02-07 06:35:51 -06:00
vars_files:
- "roles/k3s/vars/main.yaml"
2026-02-07 05:19:48 -06:00
roles:
2026-02-07 05:57:45 -06:00
- k3s/node
2026-02-07 05:19:48 -06:00
2026-02-07 05:57:45 -06:00
- name: Post Install for k3s
hosts: "{{ (cluster | regex_replace('-cluster$', '')) ~ '-master' }}"
gather_facts: yes
become: yes
2026-02-07 06:35:51 -06:00
vars_files:
- "roles/k3s/vars/main.yaml"
2026-02-07 05:57:45 -06:00
roles:
- k3s/post