@@ -92,30 +92,34 @@ spec:
9292 set -o pipefail
9393 set -o errexit
9494
95- export KUBEADM_REVISION="${KUBEADM_REVISION}"
96- export KUBECTL_REVISION="${KUBECTL_REVISION}"
97- export KUBELET_REVISION="${KUBELET_REVISION}"
95+ export KUBEADM_REVISION="${KUBEADM_REVISION:- }"
96+ export KUBECTL_REVISION="${KUBECTL_REVISION:- }"
97+ export KUBELET_REVISION="${KUBELET_REVISION:- }"
9898
9999 systemctl stop kubelet
100100
101- # Define the base URL and version
102101 BASE_URL="https://kubernetesreleases.blob.core.windows.net/dalec-packages"
103102 VERSION="${KUBERNETES_VERSION}"
104103 VERSION=$${VERSION#v}
105104 OS_VERSION="azl3"
106105 ARCH="x86_64"
107106
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}"
107+ # Build lists of binaries to replace based on what's set
108+ declare -a BINARIES=()
109+ declare -A RPM_RELEASES=()
112110
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- )
111+ [[ -n "${KUBEADM_REVISION}" ]] && BINARIES+=("kubeadm") && RPM_RELEASES["kubeadm"]="$${KUBEADM_REVISION}.$${OS_VERSION}"
112+ [[ -n "${KUBECTL_REVISION}" ]] && BINARIES+=("kubectl") && RPM_RELEASES["kubectl"]="$${KUBECTL_REVISION}.$${OS_VERSION}"
113+ [[ -n "${KUBELET_REVISION}" ]] && BINARIES+=("kubelet") && RPM_RELEASES["kubelet"]="$${KUBELET_REVISION}.$${OS_VERSION}"
114+
115+ # Skip if nothing to replace (check first element)
116+ if [[ -z "$${BINARIES[0]:-}" ]]; then
117+ echo "No *_REVISION variables set. Skipping binary replacement."
118+ systemctl start kubelet
119+ exit 0
120+ fi
121+
122+ echo "Replacing binaries: $${BINARIES[*]}"
119123
120124 for BINARY in "$${BINARIES[@]}"; do
121125 RPM_RELEASE="$${RPM_RELEASES[$${BINARY}]}"
@@ -126,14 +130,12 @@ spec:
126130 echo "Downloading from: $${RPM_URL}"
127131 curl -L --retry 10 --retry-delay 5 "$${RPM_URL}" --output "$${RPM_FILE}"
128132
129- # Extract binary from RPM package in a temporary directory
130133 echo "Extracting $${BINARY} binary to /usr/bin"
131134 TEMP_DIR="/tmp/$${BINARY}-extract-$$"
132135 mkdir -p "$${TEMP_DIR}"
133136 cd "$${TEMP_DIR}"
134137 rpm2cpio "$${RPM_FILE}" | cpio -idmv
135138
136- # Move the binary to the correct location
137139 if [ -f "./usr/bin/$${BINARY}" ]; then
138140 mv "./usr/bin/$${BINARY}" "/usr/bin/$${BINARY}"
139141 chmod +x "/usr/bin/$${BINARY}"
@@ -142,17 +144,17 @@ spec:
142144 exit 1
143145 fi
144146
145- # Clean up
146147 cd /
147148 rm -rf "$${TEMP_DIR}"
148149 rm -f "$${RPM_FILE}"
149150 done
150151
151152 systemctl restart kubelet
152153
153- echo "kubeadm version: $(kubeadm version -o=short)"
154- echo "kubectl version: $(kubectl version --client=true)"
155- echo "kubelet version: $(kubelet --version)"
154+ # Print versions
155+ [[ " $${BINARIES[*]} " =~ " kubeadm " ]] && echo "kubeadm version: $(kubeadm version -o=short)"
156+ [[ " $${BINARIES[*]} " =~ " kubectl " ]] && echo "kubectl version: $(kubectl version --client=true)"
157+ [[ " $${BINARIES[*]} " =~ " kubelet " ]] && echo "kubelet version: $(kubelet --version)"
156158 path: /opt/install-custom-k8s-binaries.sh
157159 owner: "root:root"
158160 permissions: "0744"
0 commit comments