You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
homelab/k8s/upgrde_26_27.yml

75 lines
2.4 KiB

- name: Upgrade from 1.26 to 1.27
hosts: root_master
become: yes
become_method: sudo
become_user: root
tasks:
- name: Remove apparmor for sanity reasons
apt:
name: "apparmor"
state: absent
autoremove: yes
purge: yes
- name: Check if keyring exists
stat:
path: /etc/apt/keyrings/kubernetes-apt-keyring{{ K8S_TARGET_VERSION}}.gpg
register: keyring_file
- name: Install certificate
command: "{{ item }} chdir=/tmp"
with_items:
- "curl -o Release.key -fsSL https://pkgs.k8s.io/core:/stable:/{{ K8S_TARGET_VERSION }}/deb/Release.key"
- "gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring{{ K8S_TARGET_VERSION }}.gpg Release.key"
- "rm Release.key"
when: not keyring_file.stat.exists
- name: Check if apt repo exists
stat:
path: /etc/apt/sources.list.d/kubernetes_{{ K8S_TARGET_VERSION}}.list
register: apt_repo
- name: Setup APT repo
copy:
dest: /etc/apt/sources.list.d/kubernetes_{{ K8S_TARGET_VERSION}}.list
content: "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring{{ K8S_TARGET_VERSION}}.gpg] https://pkgs.k8s.io/core:/stable:/{{ K8S_TARGET_VERSION }}/deb/ /"
when: not apt_repo.stat.exists
- name: Update cache
apt:
update_cache: yes
- name: Unhold packages
dpkg_selections:
name: "{{ item }}"
selection: install
with_items:
# - "kubelet"
- "kubeadm"
- name: Upgrading packages
apt:
upgrade: yes
- name: Upgrade plan
shell: "kubeadm upgrade plan >> /etc/kubernetes/upgrade_plan_{{ K8S_SOURCE_VERSION}}_{{ K8S_TARGET_VERSION}}"
args:
creates: /etc/kubernetes/upgrade_plan_{{ K8S_SOURCE_VERSION}}_{{ K8S_TARGET_VERSION}}
- name: Pulling new container images
shell: "kubeadm config images pull"
- name: Apply upgrade plan
shell: "sudo kubeadm upgrade apply -y v1.27.13 >> /etc/kubernetes/upgrade_ops_{{ K8S_SOURCE_VERSION}}_{{ K8S_TARGET_VERSION}}"
args:
creates: /etc/kubernetes/upgrade_ops_{{ K8S_SOURCE_VERSION}}_{{ K8S_TARGET_VERSION}}
- name: Unhold kubelet
dpkg_selections:
name: kubelet
selection: install
- name: Update kubelet
apt:
update_cache: yes
upgrade: yes
- name: Restart kubelet
service:
name: kubelet
state: restarted
- name: Pin new package versions
dpkg_selections:
name: "{{ item }}"
selection: hold
with_items:
- "kubelet"
- "kubeadm"