|
1 | 1 | --- |
| 2 | +# cri-dockerd is only needed for Kubernetes >= v1.24.0 (dockershim removal) |
| 3 | +- name: Cridockerd | Skip when Kubernetes version is below v1.24.0 |
| 4 | + when: .kubernetes.kube_version | semverCompare "<v1.24.0" |
| 5 | + debug: |
| 6 | + msg: "cri-dockerd is not required for Kubernetes < v1.24.0, skipping." |
| 7 | + |
2 | 8 | - name: Cridockerd | Check if cri-dockerd is installed on the system |
| 9 | + when: .kubernetes.kube_version | semverCompare ">=v1.24.0" |
3 | 10 | ignore_errors: true |
4 | 11 | command: cri-dockerd --version |
5 | 12 | register: cridockerd_install_version |
6 | 13 |
|
7 | | -- name: Cridockerd | Install and configure cri-dockerd if not present or version mismatch |
8 | | - when: or (.cridockerd_install_version.error | empty | not) (.cridockerd_install_version.stdout | hasPrefix (printf "cri-dockerd %s " .cri.cridockerd_version) | not) |
| 14 | +# When upgrade.cri=true or create cluster: install or upgrade cri-dockerd if version mismatch |
| 15 | +- name: Cridockerd | Install or upgrade cri-dockerd |
| 16 | + when: |
| 17 | + - .kubernetes.kube_version | semverCompare ">=v1.24.0" |
| 18 | + - or (.kubernetes_install_LoadState.stdout | default "" | ne "loaded") (.upgrade.cri) |
| 19 | + - or (.cridockerd_install_version.error | empty | not) (.cridockerd_install_version.stdout | hasPrefix (printf "cri-dockerd %s " .cri.cridockerd_version) | not) |
| 20 | + block: |
| 21 | + - name: Cridockerd | Backup cri-dockerd binary before upgrade |
| 22 | + when: .kubernetes_install_LoadState.stdout | default "" | eq "loaded" |
| 23 | + command: | |
| 24 | + BACKUP_DIR="/etc/kubekey/backup/cridockerd/$(date +%Y%m%d-%H%M%S)" |
| 25 | + mkdir -p "${BACKUP_DIR}" |
| 26 | + cp /usr/local/bin/cri-dockerd "${BACKUP_DIR}/" 2>/dev/null || true |
| 27 | + echo "✅ cri-dockerd backup saved to ${BACKUP_DIR}" |
| 28 | + - name: Cridockerd | Copy cri-dockerd binary archive to the remote node |
| 29 | + copy: |
| 30 | + src: >- |
| 31 | + {{ .binary_dir }}/cri-dockerd/{{ .cri.cridockerd_version }}/{{ .binary_type }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz |
| 32 | + dest: >- |
| 33 | + {{ .tmp_dir }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz |
| 34 | + - name: Cridockerd | Extract cri-dockerd binary to /usr/local/bin |
| 35 | + command: | |
| 36 | + tar -xvf {{ .tmp_dir }}/cri-dockerd-{{ .cri.cridockerd_version | default "" | trimPrefix "v" }}.{{ .binary_type }}.tgz --strip-components=1 -C /usr/local/bin/ |
| 37 | + - name: Cridockerd | Generate cri-dockerd systemd service file |
| 38 | + template: |
| 39 | + src: cri-dockerd.service |
| 40 | + dest: /etc/systemd/system/cri-dockerd.service |
| 41 | + - name: Cridockerd | Start and enable the cri-dockerd service |
| 42 | + command: | |
| 43 | + systemctl daemon-reload && systemctl start cri-dockerd.service && systemctl enable cri-dockerd.service |
| 44 | +
|
| 45 | +# When upgrade.cri=false and K8s is being upgraded: only install cri-dockerd if missing (not upgrade) |
| 46 | +- name: Cridockerd | Install cri-dockerd if missing when not upgrading cri |
| 47 | + when: |
| 48 | + - .kubernetes.kube_version | semverCompare ">=v1.24.0" |
| 49 | + - .kubernetes_install_LoadState.stdout | default "" | eq "loaded" |
| 50 | + - .upgrade.cri | not |
| 51 | + - .cridockerd_install_version.error | empty | not |
9 | 52 | block: |
10 | 53 | - name: Cridockerd | Copy cri-dockerd binary archive to the remote node |
11 | 54 | copy: |
|
0 commit comments