feat(ansible): add sequential minor version upgrade playbook for aerodrome control plane
This commit is contained in:
61
ansible/playbooks/upgrade_k3s_aerodrome.yml
Normal file
61
ansible/playbooks/upgrade_k3s_aerodrome.yml
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
- name: Aerodrome K3s Control Plane Sequential Minor Version Upgrade
|
||||||
|
hosts: k3s_aerodrome_masters
|
||||||
|
gather_facts: false
|
||||||
|
serial: 1
|
||||||
|
vars:
|
||||||
|
target_k3s_version: "v1.27.16+k3s1"
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Query pre-upgrade K3s version
|
||||||
|
ansible.builtin.command: k3s --version
|
||||||
|
register: pre_k3s_ver
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Display pre-upgrade version
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "Upgrading {{ inventory_hostname }} from {{ pre_k3s_ver.stdout_lines[0] }} to {{ target_k3s_version }}"
|
||||||
|
|
||||||
|
- name: Download and execute K3s binary upgrade
|
||||||
|
ansible.builtin.shell: |
|
||||||
|
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION={{ target_k3s_version }} sh -
|
||||||
|
register: k3s_upgrade_cmd
|
||||||
|
|
||||||
|
- name: Ensure K3s systemd unit is active
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: k3s
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: Wait for local K3s service to be active
|
||||||
|
ansible.builtin.command: systemctl is-active k3s
|
||||||
|
register: k3s_active
|
||||||
|
until: k3s_active.stdout == "active"
|
||||||
|
retries: 15
|
||||||
|
delay: 5
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Wait for node to report Ready in cluster
|
||||||
|
ansible.builtin.command: kubectl get node {{ inventory_hostname }} -o jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
|
||||||
|
delegate_to: sninfr2lnxctl01
|
||||||
|
register: node_ready
|
||||||
|
until: node_ready.stdout == "True"
|
||||||
|
retries: 20
|
||||||
|
delay: 6
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Query post-upgrade K3s version
|
||||||
|
ansible.builtin.command: k3s --version
|
||||||
|
register: post_k3s_ver
|
||||||
|
changed_when: false
|
||||||
|
|
||||||
|
- name: Verify post-upgrade version matches target
|
||||||
|
ansible.builtin.assert:
|
||||||
|
that:
|
||||||
|
- target_k3s_version in post_k3s_ver.stdout
|
||||||
|
fail_msg: "Post-upgrade version does not match target {{ target_k3s_version }}"
|
||||||
|
success_msg: "{{ inventory_hostname }} successfully upgraded to {{ target_k3s_version }}"
|
||||||
|
|
||||||
|
- name: Settle etcd cluster state
|
||||||
|
ansible.builtin.pause:
|
||||||
|
seconds: 10
|
||||||
Reference in New Issue
Block a user