sigs.k8s.io/cluster-api-provider-azure@v1.14.3/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 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/replace-k8s-binaries.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 44 systemctl stop kubelet 45 az login --identity 46 declare -a BINARIES=("kubeadm" "kubectl" "kubelet") 47 for BINARY in "$${BINARIES[@]}"; do 48 echo "* installing package: $${BINARY} ${KUBE_GIT_VERSION}" 49 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 50 done 51 systemctl restart kubelet 52 53 echo "kubeadm version: $(kubeadm version -o=short)" 54 echo "kubectl version: $(kubectl version --client=true)" 55 echo "kubelet version: $(kubelet --version)" 56 - path: /etc/kubernetes/azure.json 57 owner: "root:root" 58 permissions: "0644" 59 contentFrom: 60 secret: 61 key: control-plane-azure.json 62 name: ${CLUSTER_NAME}-control-plane-azure-json 63 --- 64 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 65 kind: AzureMachinePool 66 metadata: 67 name: ${CLUSTER_NAME}-mp-0 68 spec: 69 template: 70 image: 71 # we use the latest image as a workaround there is no published marketplace image for k8s CI versions. 72 # latest binaries and images will get replaced to the desired version by the script above. 73 marketplace: 74 publisher: cncf-upstream 75 offer: capi 76 sku: ubuntu-2204-gen1 77 version: latest