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