sigs.k8s.io/cluster-api-provider-azure@v1.17.0/templates/test/dev/custom-builds-machine-pool/patches/custom-builds.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/replace-k8s-binaries.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 echo "Use OOT credential provider" 28 mkdir -p /var/lib/kubelet/credential-provider 29 curl --retry 10 --retry-delay 5 -w "response status code is %{http_code}" -Lo /var/lib/kubelet/credential-provider/acr-credential-provider "https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${AZURE_BLOB_CONTAINER_NAME}/${IMAGE_TAG_ACR_CREDENTIAL_PROVIDER}/azure-acr-credential-provider" 30 chmod 755 /var/lib/kubelet/credential-provider/acr-credential-provider 31 curl --retry 10 --retry-delay 5 -w "response status code is %{http_code}" -Lo /var/lib/kubelet/credential-provider-config.yaml "https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${AZURE_BLOB_CONTAINER_NAME}/${IMAGE_TAG_ACR_CREDENTIAL_PROVIDER}/credential-provider-config.yaml" 32 chmod 644 /var/lib/kubelet/credential-provider-config.yaml 33 - path: /tmp/replace-k8s-binaries.sh 34 owner: "root:root" 35 permissions: "0744" 36 content: | 37 #!/bin/bash 38 39 set -o nounset 40 set -o pipefail 41 set -o errexit 42 43 systemctl stop kubelet 44 declare -a BINARIES=("kubeadm" "kubectl" "kubelet") 45 for BINARY in "$${BINARIES[@]}"; do 46 echo "* installing package: $${BINARY} ${KUBE_GIT_VERSION}" 47 curl --retry 10 --retry-delay 5 -w "response status code is %{http_code}" "https://${AZURE_STORAGE_ACCOUNT}.blob.core.windows.net/${AZURE_BLOB_CONTAINER_NAME}/${KUBE_GIT_VERSION}/bin/linux/amd64/$${BINARY}" --output "/usr/bin/$${BINARY}" 48 done 49 systemctl restart kubelet 50 51 echo "kubeadm version: $(kubeadm version -o=short)" 52 echo "kubectl version: $(kubectl version --client=true)" 53 echo "kubelet version: $(kubelet --version)" 54 - path: /etc/kubernetes/azure.json 55 owner: "root:root" 56 permissions: "0644" 57 contentFrom: 58 secret: 59 key: control-plane-azure.json 60 name: ${CLUSTER_NAME}-control-plane-azure-json 61 --- 62 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 63 kind: AzureMachinePool 64 metadata: 65 name: ${CLUSTER_NAME}-mp-0 66 spec: 67 template: 68 image: 69 # we use the latest image as a workaround there is no published marketplace image for k8s CI versions. 70 # latest binaries and images will get replaced to the desired version by the script above. 71 marketplace: 72 publisher: cncf-upstream 73 offer: capi 74 sku: ubuntu-2204-gen1 75 version: latest