sigs.k8s.io/cluster-api-provider-azure@v1.14.3/templates/test/ci/prow-machine-pool-ci-version/patches/machine-pool-ci-version.yaml (about) 1 apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 2 kind: KubeadmConfig 3 metadata: 4 name: ${CLUSTER_NAME}-mp-0 5 spec: 6 joinConfiguration: 7 nodeRegistration: 8 kubeletExtraArgs: 9 cloud-provider: external 10 image-credential-provider-bin-dir: /var/lib/kubelet/credential-provider 11 image-credential-provider-config: /var/lib/kubelet/credential-provider-config.yaml 12 preKubeadmCommands: 13 - bash -c /tmp/oot-cred-provider.sh 14 - bash -c /tmp/kubeadm-bootstrap.sh 15 files: 16 - path: /tmp/oot-cred-provider.sh 17 owner: "root:root" 18 permissions: "0744" 19 content: | 20 #!/bin/bash 21 22 set -o nounset 23 set -o pipefail 24 set -o errexit 25 [[ $(id -u) != 0 ]] && SUDO="sudo" || SUDO="" 26 27 az login --identity 28 echo "Use OOT credential provider" 29 mkdir -p /var/lib/kubelet/credential-provider 30 az storage blob download --blob-url "https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${AZURE_BLOB_CONTAINER_NAME}/${IMAGE_TAG_ACR_CREDENTIAL_PROVIDER}/azure-acr-credential-provider" -f /var/lib/kubelet/credential-provider/acr-credential-provider --auth-mode login 31 chmod 755 /var/lib/kubelet/credential-provider/acr-credential-provider 32 az storage blob download --blob-url "https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${AZURE_BLOB_CONTAINER_NAME}/${IMAGE_TAG_ACR_CREDENTIAL_PROVIDER}/credential-provider-config.yaml" -f /var/lib/kubelet/credential-provider-config.yaml --auth-mode login 33 chmod 644 /var/lib/kubelet/credential-provider-config.yaml 34 - path: /tmp/kubeadm-bootstrap.sh 35 owner: "root:root" 36 permissions: "0744" 37 content: | 38 #!/bin/bash 39 40 set -o nounset 41 set -o pipefail 42 set -o errexit 43 [[ $(id -u) != 0 ]] && SUDO="sudo" || SUDO="" 44 45 # This test installs release packages or binaries that are a result of the CI and release builds. 46 # It runs '... --version' commands to verify that the binaries are correctly installed 47 # and finally uninstalls the packages. 48 # For the release packages it tests all versions in the support skew. 49 LINE_SEPARATOR="*************************************************" 50 echo "$$LINE_SEPARATOR" 51 CI_VERSION=${CI_VERSION} 52 if [[ "$${CI_VERSION}" != "" ]]; then 53 CI_DIR=/tmp/k8s-ci 54 mkdir -p $$CI_DIR 55 declare -a PACKAGES_TO_TEST=("kubectl" "kubelet" "kubeadm") 56 declare -a CONTAINERS_TO_TEST=("kube-apiserver" "kube-controller-manager" "kube-proxy" "kube-scheduler") 57 CONTAINER_EXT="tar" 58 echo "* testing CI version $$CI_VERSION" 59 # Check for semver 60 if [[ "$${CI_VERSION}" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then 61 VERSION_WITHOUT_PREFIX="${CI_VERSION#v}" 62 DEBIAN_FRONTEND=noninteractive apt-get install -y apt-transport-https curl 63 curl -fsSL https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg 64 echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/${KUBERNETES_VERSION}/deb/ /" | tee /etc/apt/sources.list.d/kubernetes.list 65 apt-get update 66 # replace . with \. 67 VERSION_REGEX="${VERSION_WITHOUT_PREFIX//./\\.}" 68 PACKAGE_VERSION="$(apt-cache madison kubelet|grep $${VERSION_REGEX}- | head -n1 | cut -d '|' -f 2 | tr -d '[:space:]')" 69 for CI_PACKAGE in "$${PACKAGES_TO_TEST[@]}"; do 70 echo "* installing package: $$CI_PACKAGE $${PACKAGE_VERSION}" 71 DEBIAN_FRONTEND=noninteractive apt-get install -y $$CI_PACKAGE=$$PACKAGE_VERSION 72 done 73 else 74 CI_URL="https://storage.googleapis.com/k8s-release-dev/ci/$${CI_VERSION}/bin/linux/amd64" 75 fi 76 for CI_PACKAGE in "$${PACKAGES_TO_TEST[@]}"; do 77 echo "* downloading binary: $$CI_URL/$$CI_PACKAGE" 78 wget --inet4-only "$$CI_URL/$$CI_PACKAGE" -nv -O "$$CI_DIR/$$CI_PACKAGE" 79 chmod +x "$$CI_DIR/$$CI_PACKAGE" 80 mv "$$CI_DIR/$$CI_PACKAGE" "/usr/bin/$$CI_PACKAGE" 81 done 82 IMAGE_REGISTRY_PREFIX=registry.k8s.io 83 for CI_CONTAINER in "$${CONTAINERS_TO_TEST[@]}"; do 84 echo "* downloading package: $$CI_URL/$$CI_CONTAINER.$$CONTAINER_EXT" 85 wget --inet4-only "$$CI_URL/$$CI_CONTAINER.$$CONTAINER_EXT" -nv -O "$$CI_DIR/$$CI_CONTAINER.$$CONTAINER_EXT" 86 $${SUDO} ctr -n k8s.io images import "$$CI_DIR/$$CI_CONTAINER.$$CONTAINER_EXT" || echo "* ignoring expected 'ctr images import' result" 87 $${SUDO} ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$CI_CONTAINER-amd64:"$${CI_VERSION//+/_}" $$IMAGE_REGISTRY_PREFIX/$$CI_CONTAINER:"$${CI_VERSION//+/_}" 88 $${SUDO} ctr -n k8s.io images tag $$IMAGE_REGISTRY_PREFIX/$$CI_CONTAINER-amd64:"$${CI_VERSION//+/_}" gcr.io/k8s-staging-ci-images/$$CI_CONTAINER:"$${CI_VERSION//+/_}" 89 done 90 fi 91 systemctl restart kubelet 92 fi 93 echo "* checking binary versions" 94 echo "ctr version: " $(ctr version) 95 echo "kubeadm version: " $(kubeadm version -o=short) 96 echo "kubectl version: " $(kubectl version --client=true) 97 echo "kubelet version: " $(kubelet --version) 98 echo "$$LINE_SEPARATOR" 99 - path: /etc/kubernetes/azure.json 100 owner: "root:root" 101 permissions: "0644" 102 contentFrom: 103 secret: 104 key: worker-node-azure.json 105 name: ${CLUSTER_NAME}-mp-0-azure-json 106 --- 107 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 108 kind: AzureMachinePool 109 metadata: 110 name: ${CLUSTER_NAME}-mp-0 111 spec: 112 template: 113 image: 114 # we use the latest image as a workaround there is no published marketplace image for k8s CI versions. 115 # latest binaries and images will get replaced to the desired version by the script above. 116 marketplace: 117 publisher: cncf-upstream 118 offer: capi 119 sku: ubuntu-2204-gen1 120 version: latest