8888 - content : |
8989 #!/bin/bash
9090
91- set -o nounset
9291 set -o pipefail
9392 set -o errexit
9493
95- export KUBEADM_REVISION="${KUBEADM_REVISION}"
96- export KUBECTL_REVISION="${KUBECTL_REVISION}"
97- export KUBELET_REVISION="${KUBELET_REVISION}"
98-
9994 systemctl stop kubelet
10095
10196 # Define the base URL and version
@@ -105,17 +100,31 @@ spec:
105100 OS_VERSION="azl3"
106101 ARCH="x86_64"
107102
108- # Construct RPM_RELEASE explicitly for each binary
109- KUBEADM_RPM_RELEASE="$${KUBEADM_REVISION}.$${OS_VERSION}"
110- KUBECTL_RPM_RELEASE="$${KUBECTL_REVISION}.$${OS_VERSION}"
111- KUBELET_RPM_RELEASE="$${KUBELET_REVISION}.$${OS_VERSION}"
103+ # Build arrays dynamically based on which *_REVISION variables are set
104+ declare -a BINARIES=()
105+ declare -A RPM_RELEASES=()
106+
107+ # Iterate through all environment variables ending with _REVISION
108+ for VAR in $(compgen -e | grep '_REVISION$$'); do
109+ # Extract binary name (e.g., KUBEADM_REVISION -> kubeadm)
110+ BINARY_NAME=$${VAR%_REVISION}
111+ BINARY=$${BINARY_NAME,,} # Convert to lowercase
112+ REVISION_VALUE=$${!VAR}
113+
114+ if [[ -n "$${REVISION_VALUE}" ]]; then
115+ BINARIES+=("$${BINARY}")
116+ RPM_RELEASES["$${BINARY}"]="$${REVISION_VALUE}.$${OS_VERSION}"
117+ echo "Found revision variable: $${VAR}=$${REVISION_VALUE} -> will replace $${BINARY}"
118+ fi
119+ done
112120
113- declare -a BINARIES=("kubeadm" "kubectl" "kubelet")
114- declare -A RPM_RELEASES=(
115- ["kubeadm"]="$${KUBEADM_RPM_RELEASE}"
116- ["kubectl"]="$${KUBECTL_RPM_RELEASE}"
117- ["kubelet"]="$${KUBELET_RPM_RELEASE}"
118- )
121+ # Get array length to avoid Jinja syntax conflicts
122+ BINARY_COUNT=$${#BINARIES[@]}
123+ if [[ $${BINARY_COUNT} -eq 0 ]]; then
124+ echo "No *_REVISION variables set. Skipping binary replacement."
125+ systemctl start kubelet
126+ exit 0
127+ fi
119128
120129 for BINARY in "$${BINARIES[@]}"; do
121130 RPM_RELEASE="$${RPM_RELEASES[$${BINARY}]}"
@@ -150,9 +159,20 @@ spec:
150159
151160 systemctl restart kubelet
152161
153- echo "kubeadm version: $(kubeadm version -o=short)"
154- echo "kubectl version: $(kubectl version --client=true)"
155- echo "kubelet version: $(kubelet --version)"
162+ # Print versions for binaries that were replaced
163+ for BINARY in "$${BINARIES[@]}"; do
164+ case "$${BINARY}" in
165+ kubeadm)
166+ echo "kubeadm version: $(kubeadm version -o=short)"
167+ ;;
168+ kubectl)
169+ echo "kubectl version: $(kubectl version --client=true)"
170+ ;;
171+ kubelet)
172+ echo "kubelet version: $(kubelet --version)"
173+ ;;
174+ esac
175+ done
156176 path: /opt/install-custom-k8s-binaries.sh
157177 owner: "root:root"
158178 permissions: "0744"
0 commit comments