Skip to content

Commit 0f0d2d4

Browse files
committed
Don't hardcode
1 parent 73dd094 commit 0f0d2d4

File tree

4 files changed

+232
-108
lines changed

4 files changed

+232
-108
lines changed

templates/test/ci/cluster-template-prow-dalec-custom-builds.yaml

Lines changed: 116 additions & 54 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/test/ci/prow-dalec-custom-builds/patches/azl3-machine-deployment.yaml

Lines changed: 38 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,9 @@ spec:
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

Comments
 (0)