sigs.k8s.io/cluster-api-provider-azure@v1.14.3/templates/test/dev/custom-builds/patches/kubeadm-controlplane-bootstrap.yaml (about) 1 - op: add 2 path: /spec/kubeadmConfigSpec/files/- 3 value: 4 content: | 5 #!/bin/bash 6 7 set -o nounset 8 set -o pipefail 9 set -o errexit 10 11 systemctl stop kubelet 12 declare -a BINARIES=("kubeadm" "kubectl" "kubelet") 13 az login --identity 14 for BINARY in "$${BINARIES[@]}"; do 15 echo "* installing package: $${BINARY} ${KUBE_GIT_VERSION}" 16 az storage blob download --blob-url "https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${AZURE_BLOB_CONTAINER_NAME}/${KUBE_GIT_VERSION}/bin/linux/amd64/$${BINARY}" -f "/usr/bin/$${BINARY}" --auth-mode login 17 done 18 systemctl restart kubelet 19 20 # prepull images from gcr.io/k8s-staging-ci-images and retag it to 21 # registry.k8s.io so kubeadm can fetch correct images no matter what 22 declare -a IMAGES=("kube-apiserver" "kube-controller-manager" "kube-proxy" "kube-scheduler") 23 [[ $(id -u) != 0 ]] && SUDO="sudo" || SUDO="" 24 IMAGE_REGISTRY_PREFIX=registry.k8s.io 25 for IMAGE in "$${IMAGES[@]}"; do 26 $${SUDO} ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$IMAGE-amd64:"${CI_VERSION//+/_}" $$IMAGE_REGISTRY_PREFIX/$$IMAGE:"${CI_VERSION//+/_}" 27 $${SUDO} ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$IMAGE-amd64:"${CI_VERSION//+/_}" gcr.io/k8s-staging-ci-images/$$IMAGE:"${CI_VERSION//+/_}" 28 done 29 30 echo "kubeadm version: $(kubeadm version -o=short)" 31 echo "kubectl version: $(kubectl version --client=true)" 32 echo "kubelet version: $(kubelet --version)" 33 path: /tmp/replace-k8s-binaries.sh 34 owner: "root:root" 35 permissions: "0744" 36 - op: add 37 path: /spec/kubeadmConfigSpec/files/- 38 value: 39 content: | 40 #!/bin/bash 41 42 set -o nounset 43 set -o pipefail 44 set -o errexit 45 46 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 47 tar -xzvf /tmp/yq_linux_amd64.tar.gz -C /tmp && mv /tmp/yq_linux_amd64 /usr/bin/yq 48 rm /tmp/yq_linux_amd64.tar.gz 49 50 export KUBECONFIG=/etc/kubernetes/admin.conf 51 kubectl -n kube-system set image daemonset/kube-proxy kube-proxy="${REGISTRY}/kube-proxy:${KUBE_IMAGE_TAG}" 52 systemctl stop kubelet 53 yq e '.spec.containers[0].image = "${REGISTRY}/kube-apiserver:${KUBE_IMAGE_TAG}"' -i /etc/kubernetes/manifests/kube-apiserver.yaml 54 yq e '.spec.containers[0].image = "${REGISTRY}/kube-controller-manager:${KUBE_IMAGE_TAG}"' -i /etc/kubernetes/manifests/kube-controller-manager.yaml 55 yq e '.spec.containers[0].image = "${REGISTRY}/kube-scheduler:${KUBE_IMAGE_TAG}"' -i /etc/kubernetes/manifests/kube-scheduler.yaml 56 systemctl restart kubelet 57 path: /tmp/replace-k8s-components.sh 58 owner: "root:root" 59 permissions: "0744" 60 - op: add 61 path: /spec/kubeadmConfigSpec/preKubeadmCommands/- 62 value: 63 bash -c /tmp/replace-k8s-binaries.sh 64 - op: add 65 path: /spec/kubeadmConfigSpec/postKubeadmCommands/- 66 value: 67 bash -c /tmp/replace-k8s-components.sh