penguin/monok8s

k8s image for Mono Gateway Dev Kit

alpine/migrations/k8s/1.35/10-drop-removed-kubelet-pause-flag.sh

raw ยท 987 bytes

#!/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"