Skip to content

Commit cec850c

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

File tree

4 files changed

+220
-108
lines changed

4 files changed

+220
-108
lines changed

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

Lines changed: 110 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: 36 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,29 @@ 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+
if [[ $${#BINARIES[@]} -eq 0 ]]; then
122+
echo "No *_REVISION variables set. Skipping binary replacement."
123+
systemctl start kubelet
124+
exit 0
125+
fi
119126
120127
for BINARY in "$${BINARIES[@]}"; do
121128
RPM_RELEASE="$${RPM_RELEASES[$${BINARY}]}"
@@ -150,9 +157,20 @@ spec:
150157
151158
systemctl restart kubelet
152159
153-
echo "kubeadm version: $(kubeadm version -o=short)"
154-
echo "kubectl version: $(kubectl version --client=true)"
155-
echo "kubelet version: $(kubelet --version)"
160+
# Print versions for binaries that were replaced
161+
for BINARY in "$${BINARIES[@]}"; do
162+
case "$${BINARY}" in
163+
kubeadm)
164+
echo "kubeadm version: $(kubeadm version -o=short)"
165+
;;
166+
kubectl)
167+
echo "kubectl version: $(kubectl version --client=true)"
168+
;;
169+
kubelet)
170+
echo "kubelet version: $(kubelet --version)"
171+
;;
172+
esac
173+
done
156174
path: /opt/install-custom-k8s-binaries.sh
157175
owner: "root:root"
158176
permissions: "0744"

templates/test/ci/prow-dalec-custom-builds/patches/control-plane-custom-builds.yaml

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,9 @@
33
value:
44
content: |
55
#!/bin/bash
6-
set -o nounset
76
set -o pipefail
87
set -o errexit
98
10-
export KUBEADM_REVISION="${KUBEADM_REVISION}"
11-
export KUBECTL_REVISION="${KUBECTL_REVISION}"
12-
export KUBELET_REVISION="${KUBELET_REVISION}"
13-
149
systemctl stop kubelet
1510
# Define the base URL and version
1611
BASE_URL="https://kubernetesreleases.blob.core.windows.net/dalec-packages"
@@ -19,17 +14,29 @@
1914
OS_VERSION="ubuntu24.04"
2015
ARCH="amd64"
2116
22-
# Construct DEB_VERSION explicitly for each binary
23-
KUBEADM_DEB_VERSION="$${OS_VERSION}u$${KUBEADM_REVISION}"
24-
KUBECTL_DEB_VERSION="$${OS_VERSION}u$${KUBECTL_REVISION}"
25-
KUBELET_DEB_VERSION="$${OS_VERSION}u$${KUBELET_REVISION}"
17+
# Build arrays dynamically based on which *_REVISION variables are set
18+
declare -a BINARIES=()
19+
declare -A DEB_VERSIONS=()
20+
21+
# Iterate through all environment variables ending with _REVISION
22+
for VAR in $(compgen -e | grep '_REVISION$'); do
23+
# Extract binary name (e.g., KUBEADM_REVISION -> kubeadm)
24+
BINARY_NAME=$${VAR%_REVISION}
25+
BINARY=$${BINARY_NAME,,} # Convert to lowercase
26+
REVISION_VALUE=$${!VAR}
27+
28+
if [[ -n "$${REVISION_VALUE}" ]]; then
29+
BINARIES+=("$${BINARY}")
30+
DEB_VERSIONS["$${BINARY}"]="$${OS_VERSION}u$${REVISION_VALUE}"
31+
echo "Found revision variable: $${VAR}=$${REVISION_VALUE} -> will replace $${BINARY}"
32+
fi
33+
done
2634
27-
declare -a BINARIES=("kubeadm" "kubectl" "kubelet")
28-
declare -A DEB_VERSIONS=(
29-
["kubeadm"]="$${KUBEADM_DEB_VERSION}"
30-
["kubectl"]="$${KUBECTL_DEB_VERSION}"
31-
["kubelet"]="$${KUBELET_DEB_VERSION}"
32-
)
35+
if [[ $${#BINARIES[@]} -eq 0 ]]; then
36+
echo "No *_REVISION variables set. Skipping binary replacement."
37+
systemctl start kubelet
38+
exit 0
39+
fi
3340
3441
for BINARY in "$${BINARIES[@]}"; do
3542
DEB_VERSION="$${DEB_VERSIONS[$${BINARY}]}"
@@ -46,9 +53,21 @@
4653
rm -f "$${DEB_FILE}"
4754
done
4855
systemctl restart kubelet
49-
echo "kubeadm version: $(kubeadm version -o=short)"
50-
echo "kubectl version: $(kubectl version --client=true)"
51-
echo "kubelet version: $(kubelet --version)"
56+
57+
# Print versions for binaries that were replaced
58+
for BINARY in "$${BINARIES[@]}"; do
59+
case "$${BINARY}" in
60+
kubeadm)
61+
echo "kubeadm version: $(kubeadm version -o=short)"
62+
;;
63+
kubectl)
64+
echo "kubectl version: $(kubectl version --client=true)"
65+
;;
66+
kubelet)
67+
echo "kubelet version: $(kubelet --version)"
68+
;;
69+
esac
70+
done
5271
path: /tmp/replace-k8s-binaries.sh
5372
owner: "root:root"
5473
permissions: "0744"

0 commit comments

Comments
 (0)