Newer
Older
---
#
# Upgrade kubernetes cluster
#
# https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
#
# Usage example:
#
# ansible-playbook playbooks/upgrade.yaml --extra-vars "version=$VERSION"
#
- name: Upgrade and hold kubeadm package
hosts: master,ingress,nfs,worker,gpu
become: true
tasks:
- name: New k8s repository
copy:
dest: /etc/apt/sources.list.d/pkgs_k8s_io_core_stable_v1_30_deb.list
content: deb https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
- name: Upgrade packages
apt:
name: kubeadm={{ version }}*
state: present
force: true
update_cache: true
- name: Hold packages
dpkg_selections:
name: "{{ item }}"
selection: hold
loop:
- kubeadm
- name: Upgrade k8s master
hosts: master
become: true
tasks:
- name: Upgrade kubeadm
command: |
kubeadm upgrade apply --yes v{{ version }}
when: true
- name: Upgrade k8s nodes
hosts: ingress,nfs,worker,gpu
become: true
tasks:
- name: Upgrade kubeadm
command: |
kubeadm upgrade node
when: true
- name: Upgrade and hold packages
hosts: master,ingress,nfs,worker,gpu
become: true
tasks:
- name: Upgrade packages
apt:
name: kubectl={{ version }}*, kubelet={{ version }}*
state: present
force: true
update_cache: true
- name: Hold packages
dpkg_selections:
name: "{{ item }}"
selection: hold
loop:
- kubectl
- kubelet
- name: Restart kubelet
systemd:
state: restarted
name: kubelet
- name: Cleanup old k8s repository
file:
path: /etc/apt/sources.list.d/pkgs_k8s_io_core_stable_v1_29_deb.list
state: absent
# pinned by grycap.kubernetes
# - name: Upgrade networking
# hosts: master
# become: true
# tasks:
# - name: Upgrade weave
# shell: |
# set -o pipefail
# kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
# environment:
# KUBECONFIG: /etc/kubernetes/admin.conf
# args:
# executable: /bin/bash
# when: true