Added migrations.d
This commit is contained in:
35
alpine/migrations/k8s/1.35/10-drop-removed-kubelet-pause-flag.sh
Executable file
35
alpine/migrations/k8s/1.35/10-drop-removed-kubelet-pause-flag.sh
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
set -eu
|
||||
|
||||
# Kubernetes removed the kubelet flag:
|
||||
# --pod-infra-container-image
|
||||
#
|
||||
# Timeline:
|
||||
# - Deprecated before v1.27
|
||||
# - Removed in newer kubelet versions (>=1.27+)
|
||||
# - kubeadm may still write it into:
|
||||
# /var/lib/kubelet/kubeadm-flags.env
|
||||
#
|
||||
# This causes kubelet to fail with:
|
||||
# "unknown flag: --pod-infra-container-image"
|
||||
#
|
||||
# References:
|
||||
# - https://github.com/kubernetes/kubeadm/issues/3281
|
||||
# - https://github.com/kubernetes/kubernetes/pull/122739
|
||||
# - https://kubernetes.io/blog/2022/04/07/upcoming-changes-in-kubernetes-1-24/
|
||||
#
|
||||
# Root cause:
|
||||
# - Sandbox (pause) image is now managed by CRI (containerd/CRI-O),
|
||||
# not kubelet flags.
|
||||
#
|
||||
# Fix:
|
||||
# - Strip the flag from kubeadm-flags.env during upgrade
|
||||
|
||||
FILE=/var/lib/kubelet/kubeadm-flags.env
|
||||
|
||||
[ -f "$FILE" ] || exit 0
|
||||
grep -q -- '--pod-infra-container-image=' "$FILE" || exit 0
|
||||
|
||||
sed -i 's/ --pod-infra-container-image=[^"]*//g' "$FILE"
|
||||
|
||||
echo "Removed deprecated kubelet flag --pod-infra-container-image from $FILE"
|
||||
Reference in New Issue
Block a user