Skip to content

Commit 81b8d76

Browse files
authored
Merge pull request #5978 from willie-yao/fix-dalec-spec
Further dalec spec fixes
2 parents bf81125 + 1ad621f commit 81b8d76

File tree

4 files changed

+188
-64
lines changed

4 files changed

+188
-64
lines changed

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

Lines changed: 93 additions & 32 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: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -92,35 +92,50 @@ spec:
9292
set -o pipefail
9393
set -o errexit
9494
95-
systemctl stop kubelet
95+
export KUBEADM_REVISION="${KUBEADM_REVISION:-""}"
96+
export KUBECTL_REVISION="${KUBECTL_REVISION:-""}"
97+
export KUBELET_REVISION="${KUBELET_REVISION:-""}"
9698
97-
declare -a BINARIES=("kubeadm" "kubectl" "kubelet")
99+
systemctl stop kubelet
98100
99-
# Define the base URL and version
100101
BASE_URL="https://kubernetesreleases.blob.core.windows.net/dalec-packages"
101102
VERSION="${KUBERNETES_VERSION}"
102103
VERSION=$${VERSION#v}
103104
OS_VERSION="azl3"
104105
ARCH="x86_64"
105106
107+
# Build lists of binaries to replace based on what's set
108+
declare -a BINARIES=()
109+
declare -A RPM_RELEASES=()
110+
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[*]}"
123+
106124
for BINARY in "$${BINARIES[@]}"; do
107-
echo "* downloading and extracting binary: $${BINARY} $${VERSION}"
108-
BINARY_VAR="$${BINARY^^}_REVISION"
109-
REVISION=$${!BINARY_VAR}
110-
RPM_FILE="/tmp/$${BINARY}-$${VERSION}-$${REVISION}.$${OS_VERSION}.$${ARCH}.rpm"
111-
RPM_URL="$${BASE_URL}/$${BINARY}/$${VERSION}/$${OS_VERSION}/$${ARCH}/$${BINARY}-$${VERSION}-$${REVISION}.$${OS_VERSION}.$${ARCH}.rpm"
125+
RPM_RELEASE="$${RPM_RELEASES[$${BINARY}]}"
126+
echo "* downloading and extracting binary: $${BINARY} $${VERSION} with rpm release $${RPM_RELEASE}"
127+
RPM_FILE="/tmp/$${BINARY}-$${VERSION}-$${RPM_RELEASE}.$${ARCH}.rpm"
128+
RPM_URL="$${BASE_URL}/$${BINARY}/$${VERSION}/$${OS_VERSION}/$${ARCH}/$${BINARY}-$${VERSION}-$${RPM_RELEASE}.$${ARCH}.rpm"
112129
113130
echo "Downloading from: $${RPM_URL}"
114131
curl -L --retry 10 --retry-delay 5 "$${RPM_URL}" --output "$${RPM_FILE}"
115132
116-
# Extract binary from RPM package in a temporary directory
117133
echo "Extracting $${BINARY} binary to /usr/bin"
118134
TEMP_DIR="/tmp/$${BINARY}-extract-$$"
119135
mkdir -p "$${TEMP_DIR}"
120136
cd "$${TEMP_DIR}"
121137
rpm2cpio "$${RPM_FILE}" | cpio -idmv
122138
123-
# Move the binary to the correct location
124139
if [ -f "./usr/bin/$${BINARY}" ]; then
125140
mv "./usr/bin/$${BINARY}" "/usr/bin/$${BINARY}"
126141
chmod +x "/usr/bin/$${BINARY}"
@@ -129,17 +144,17 @@ spec:
129144
exit 1
130145
fi
131146
132-
# Clean up
133147
cd /
134148
rm -rf "$${TEMP_DIR}"
135149
rm -f "$${RPM_FILE}"
136150
done
137151
138152
systemctl restart kubelet
139153
140-
echo "kubeadm version: $(kubeadm version -o=short)"
141-
echo "kubectl version: $(kubectl version --client=true)"
142-
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)"
143158
path: /opt/install-custom-k8s-binaries.sh
144159
owner: "root:root"
145160
permissions: "0744"

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

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,64 @@
66
set -o nounset
77
set -o pipefail
88
set -o errexit
9+
10+
export KUBEADM_REVISION="${KUBEADM_REVISION:-""}"
11+
export KUBECTL_REVISION="${KUBECTL_REVISION:-""}"
12+
export KUBELET_REVISION="${KUBELET_REVISION:-""}"
13+
914
systemctl stop kubelet
10-
declare -a BINARIES=("kubeadm" "kubectl" "kubelet")
11-
# Define the base URL and version
15+
1216
BASE_URL="https://kubernetesreleases.blob.core.windows.net/dalec-packages"
1317
VERSION="${KUBERNETES_VERSION}"
1418
VERSION=$${VERSION#v}
1519
OS_VERSION="ubuntu24.04"
1620
ARCH="amd64"
21+
22+
# Build lists of binaries to replace based on what's set
23+
declare -a BINARIES=()
24+
declare -A DEB_VERSIONS=()
25+
26+
[[ -n "${KUBEADM_REVISION}" ]] && BINARIES+=("kubeadm") && DEB_VERSIONS["kubeadm"]="$${OS_VERSION}u$${KUBEADM_REVISION}"
27+
[[ -n "${KUBECTL_REVISION}" ]] && BINARIES+=("kubectl") && DEB_VERSIONS["kubectl"]="$${OS_VERSION}u$${KUBECTL_REVISION}"
28+
[[ -n "${KUBELET_REVISION}" ]] && BINARIES+=("kubelet") && DEB_VERSIONS["kubelet"]="$${OS_VERSION}u$${KUBELET_REVISION}"
29+
30+
# Skip if nothing to replace (check first element)
31+
if [[ -z "$${BINARIES[0]:-}" ]]; then
32+
echo "No *_REVISION variables set. Skipping binary replacement."
33+
systemctl start kubelet
34+
exit 0
35+
fi
36+
37+
echo "Replacing binaries: $${BINARIES[*]}"
38+
1739
for BINARY in "$${BINARIES[@]}"; do
18-
BINARY_VAR="$${BINARY^^}_REVISION"
19-
DEB_VERSION=$${!BINARY_VAR}
40+
DEB_VERSION="$${DEB_VERSIONS[$${BINARY}]}"
2041
echo "* downloading and extracting binary: $${BINARY} $${VERSION} with deb version $${DEB_VERSION}"
2142
DEB_FILE="/tmp/$${BINARY}_$${VERSION}-$${DEB_VERSION}_$${ARCH}.deb"
2243
DEB_URL="$${BASE_URL}/$${BINARY}/$${VERSION}/$${OS_VERSION}/$${ARCH}/$${BINARY}_$${VERSION}-$${DEB_VERSION}_$${ARCH}.deb"
2344
echo "Downloading from: $${DEB_URL}"
2445
curl -L --retry 10 --retry-delay 5 "$${DEB_URL}" --output "$${DEB_FILE}"
25-
# Extract just the binary from the deb package directly to /usr/bin
2646
echo "Extracting $${BINARY} binary to /usr/bin"
2747
dpkg-deb --fsys-tarfile "$${DEB_FILE}" | tar -xf - --strip-components=3 -C /usr/bin ./usr/bin/$${BINARY}
2848
chmod +x "/usr/bin/$${BINARY}"
29-
# Clean up the downloaded deb file
3049
rm -f "$${DEB_FILE}"
3150
done
51+
3252
systemctl restart kubelet
33-
echo "kubeadm version: $(kubeadm version -o=short)"
34-
echo "kubectl version: $(kubectl version --client=true)"
35-
echo "kubelet version: $(kubelet --version)"
53+
54+
# Print versions
55+
[[ " $${BINARIES[*]} " =~ " kubeadm " ]] && echo "kubeadm version: $(kubeadm version -o=short)"
56+
[[ " $${BINARIES[*]} " =~ " kubectl " ]] && echo "kubectl version: $(kubectl version --client=true)"
57+
[[ " $${BINARIES[*]} " =~ " kubelet " ]] && echo "kubelet version: $(kubelet --version)"
3658
path: /tmp/replace-k8s-binaries.sh
3759
owner: "root:root"
3860
permissions: "0744"
3961
- op: add
4062
path: /spec/kubeadmConfigSpec/preKubeadmCommands/-
4163
value:
4264
bash -c /tmp/replace-k8s-binaries.sh
65+
- op: add
66+
path: /spec/kubeadmConfigSpec/initConfiguration/nodeRegistration/ignorePreflightErrors
67+
value:
68+
- HTTPProxyCIDR
4369

0 commit comments

Comments
 (0)