@@ -353,6 +353,8 @@ spec:
353353 set -o pipefail
354354 set -o errexit
355355
356+ CI_VERSION=${CI_VERSION}
357+
356358 systemctl stop kubelet
357359 declare -a BINARIES=("kubeadm" "kubectl" "kubelet")
358360 for BINARY in "$${BINARIES[@]}"; do
@@ -361,43 +363,27 @@ spec:
361363 done
362364 systemctl restart kubelet
363365
364- # prepull images from gcr.io/k8s-staging-ci-images and retag it to
365- # registry.k8s.io so kubeadm can fetch correct images no matter what
366+ # Download image tars from GCS, import into containerd, and retag
367+ CI_DIR=/tmp/k8s-ci
368+ mkdir -p $$CI_DIR
366369 declare -a IMAGES=("kube-apiserver" "kube-controller-manager" "kube-proxy" "kube-scheduler")
367- [[ $(id -u) != 0 ]] && SUDO="sudo" || SUDO=""
370+ CONTAINER_EXT="tar"
371+ CI_URL="https://storage.googleapis.com/k8s-release-dev/ci/$${CI_VERSION}/bin/linux/amd64"
368372 IMAGE_REGISTRY_PREFIX=registry.k8s.io
369373 for IMAGE in "$${IMAGES[@]}"; do
370- $${SUDO} ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$IMAGE-amd64:"${CI_VERSION//+/_}" $$IMAGE_REGISTRY_PREFIX/$$IMAGE:"${CI_VERSION//+/_}"
371- $${SUDO} ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$IMAGE-amd64:"${CI_VERSION//+/_}" gcr.io/k8s-staging-ci-images/$$IMAGE:"${CI_VERSION//+/_}"
374+ echo "* downloading package: $$CI_URL/$$IMAGE.$$CONTAINER_EXT"
375+ curl --retry 10 --retry-delay 5 "$$CI_URL/$$IMAGE.$$CONTAINER_EXT" --output "$$CI_DIR/$$IMAGE.$$CONTAINER_EXT"
376+ ctr -n k8s.io images import "$$CI_DIR/$$IMAGE.$$CONTAINER_EXT" || echo "* ignoring expected 'ctr images import' result"
377+ ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$IMAGE-amd64:"$${CI_VERSION//+/_}" $$IMAGE_REGISTRY_PREFIX/$$IMAGE:"$${CI_VERSION//+/_}"
378+ ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$IMAGE-amd64:"$${CI_VERSION//+/_}" gcr.io/k8s-staging-ci-images/$$IMAGE:"$${CI_VERSION//+/_}"
372379 done
373380
374381 echo "kubeadm version: $(kubeadm version -o=short)"
375- echo "kubectl version: $(kubectl version --client=true --short=true )"
382+ echo "kubectl version: $(kubectl version --client=true)"
376383 echo "kubelet version: $(kubelet --version)"
377384 owner: root:root
378385 path: /tmp/replace-k8s-binaries.sh
379386 permissions: "0744"
380- - content : |
381- #!/bin/bash
382-
383- set -o nounset
384- set -o pipefail
385- set -o errexit
386-
387- curl -L --retry 10 --retry-delay 5 https://github.com/mikefarah/yq/releases/download/v4.6.1/yq_linux_amd64.tar.gz --output /tmp/yq_linux_amd64.tar.gz
388- tar -xzvf /tmp/yq_linux_amd64.tar.gz -C /tmp && mv /tmp/yq_linux_amd64 /usr/bin/yq
389- rm /tmp/yq_linux_amd64.tar.gz
390-
391- export KUBECONFIG=/etc/kubernetes/admin.conf
392- kubectl -n kube-system set image daemonset/kube-proxy kube-proxy="${REGISTRY}/kube-proxy:${KUBE_IMAGE_TAG}"
393- systemctl stop kubelet
394- yq e '.spec.containers[0].image = "${REGISTRY}/kube-apiserver:${KUBE_IMAGE_TAG}"' -i /etc/kubernetes/manifests/kube-apiserver.yaml
395- yq e '.spec.containers[0].image = "${REGISTRY}/kube-controller-manager:${KUBE_IMAGE_TAG}"' -i /etc/kubernetes/manifests/kube-controller-manager.yaml
396- yq e '.spec.containers[0].image = "${REGISTRY}/kube-scheduler:${KUBE_IMAGE_TAG}"' -i /etc/kubernetes/manifests/kube-scheduler.yaml
397- systemctl restart kubelet
398- owner: root:root
399- path: /tmp/replace-k8s-components.sh
400- permissions: "0744"
401387 initConfiguration :
402388 nodeRegistration :
403389 kubeletExtraArgs :
@@ -415,7 +401,6 @@ spec:
415401 - /var/lib/etcddisk
416402 postKubeadmCommands :
417403 - bash -c /tmp/node-log-query-kubelet-config.sh
418- - bash -c /tmp/replace-k8s-components.sh
419404 preKubeadmCommands :
420405 - bash -c /tmp/replace-k8s-binaries.sh
421406 useExperimentalRetryJoin : true
0 commit comments