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