sigs.k8s.io/cluster-api-provider-azure@v1.14.3/templates/test/ci/cluster-template-prow-dual-stack.yaml (about)

     1  apiVersion: cluster.x-k8s.io/v1beta1
     2  kind: Cluster
     3  metadata:
     4    labels:
     5      cloud-provider: ${CLOUD_PROVIDER_AZURE_LABEL:=azure}
     6      cni: calico-dual-stack
     7    name: ${CLUSTER_NAME}
     8    namespace: default
     9  spec:
    10    clusterNetwork:
    11      pods:
    12        cidrBlocks:
    13        - 10.244.0.0/16
    14        - 2001:1234:5678:9a40::/58
    15      services:
    16        cidrBlocks:
    17        - 10.0.0.0/16
    18        - fd00::/108
    19    controlPlaneRef:
    20      apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    21      kind: KubeadmControlPlane
    22      name: ${CLUSTER_NAME}-control-plane
    23    infrastructureRef:
    24      apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    25      kind: AzureCluster
    26      name: ${CLUSTER_NAME}
    27  ---
    28  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    29  kind: AzureCluster
    30  metadata:
    31    name: ${CLUSTER_NAME}
    32    namespace: default
    33  spec:
    34    additionalTags:
    35      buildProvenance: ${BUILD_PROVENANCE}
    36      creationTimestamp: ${TIMESTAMP}
    37      jobName: ${JOB_NAME}
    38    identityRef:
    39      apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
    40      kind: AzureClusterIdentity
    41      name: ${CLUSTER_IDENTITY_NAME}
    42    location: ${AZURE_LOCATION}
    43    networkSpec:
    44      subnets:
    45      - cidrBlocks:
    46        - 10.0.0.0/16
    47        - 2001:1234:5678:9abc::/64
    48        name: control-plane-subnet
    49        role: control-plane
    50      - cidrBlocks:
    51        - 10.1.0.0/16
    52        - 2001:1234:5678:9abd::/64
    53        name: node-subnet
    54        role: node
    55      vnet:
    56        cidrBlocks:
    57        - 10.0.0.0/8
    58        - 2001:1234:5678:9a00::/56
    59        name: ${AZURE_VNET_NAME:=${CLUSTER_NAME}-vnet}
    60    resourceGroup: ${AZURE_RESOURCE_GROUP:=${CLUSTER_NAME}}
    61    subscriptionID: ${AZURE_SUBSCRIPTION_ID}
    62  ---
    63  apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    64  kind: KubeadmControlPlane
    65  metadata:
    66    name: ${CLUSTER_NAME}-control-plane
    67    namespace: default
    68  spec:
    69    kubeadmConfigSpec:
    70      clusterConfiguration:
    71        apiServer:
    72          extraArgs:
    73            cloud-provider: external
    74          timeoutForControlPlane: 20m
    75        controllerManager:
    76          extraArgs:
    77            allocate-node-cidrs: "true"
    78            cloud-provider: external
    79            cluster-cidr: 10.244.0.0/16,2001:1234:5678:9a40::/58
    80            cluster-name: ${CLUSTER_NAME}
    81            configure-cloud-routes: "true"
    82            v: "4"
    83        etcd:
    84          local:
    85            dataDir: /var/lib/etcddisk/etcd
    86            extraArgs:
    87              quota-backend-bytes: "8589934592"
    88      diskSetup:
    89        filesystems:
    90        - device: /dev/disk/azure/scsi1/lun0
    91          extraOpts:
    92          - -E
    93          - lazy_itable_init=1,lazy_journal_init=1
    94          filesystem: ext4
    95          label: etcd_disk
    96        - device: ephemeral0.1
    97          filesystem: ext4
    98          label: ephemeral0
    99          replaceFS: ntfs
   100        partitions:
   101        - device: /dev/disk/azure/scsi1/lun0
   102          layout: true
   103          overwrite: false
   104          tableType: gpt
   105      files:
   106      - contentFrom:
   107          secret:
   108            key: control-plane-azure.json
   109            name: ${CLUSTER_NAME}-control-plane-azure-json
   110        owner: root:root
   111        path: /etc/kubernetes/azure.json
   112        permissions: "0644"
   113      initConfiguration:
   114        localAPIEndpoint:
   115          bindPort: 6443
   116        nodeRegistration:
   117          kubeletExtraArgs:
   118            cloud-provider: external
   119          name: '{{ ds.meta_data["local_hostname"] }}'
   120      joinConfiguration:
   121        controlPlane:
   122          localAPIEndpoint:
   123            bindPort: 6443
   124        nodeRegistration:
   125          kubeletExtraArgs:
   126            cloud-provider: external
   127          name: '{{ ds.meta_data["local_hostname"] }}'
   128      mounts:
   129      - - LABEL=etcd_disk
   130        - /var/lib/etcddisk
   131      postKubeadmCommands: []
   132      preKubeadmCommands: []
   133    machineTemplate:
   134      infrastructureRef:
   135        apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   136        kind: AzureMachineTemplate
   137        name: ${CLUSTER_NAME}-control-plane
   138    replicas: ${CONTROL_PLANE_MACHINE_COUNT:=1}
   139    version: ${KUBERNETES_VERSION}
   140  ---
   141  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   142  kind: AzureMachineTemplate
   143  metadata:
   144    name: ${CLUSTER_NAME}-control-plane
   145    namespace: default
   146  spec:
   147    template:
   148      spec:
   149        dataDisks:
   150        - diskSizeGB: 256
   151          lun: 0
   152          nameSuffix: etcddisk
   153        enableIPForwarding: true
   154        identity: UserAssigned
   155        osDisk:
   156          diskSizeGB: 128
   157          osType: Linux
   158        sshPublicKey: ${AZURE_SSH_PUBLIC_KEY_B64:=""}
   159        userAssignedIdentities:
   160        - providerID: /subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/${CI_RG:=capz-ci}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${USER_IDENTITY:=cloud-provider-user-identity}
   161        vmSize: ${AZURE_CONTROL_PLANE_MACHINE_TYPE}
   162  ---
   163  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   164  kind: AzureClusterIdentity
   165  metadata:
   166    labels:
   167      clusterctl.cluster.x-k8s.io/move-hierarchy: "true"
   168    name: ${CLUSTER_IDENTITY_NAME}
   169    namespace: default
   170  spec:
   171    allowedNamespaces: {}
   172    clientID: ${AZURE_CLIENT_ID}
   173    clientSecret:
   174      name: ${AZURE_CLUSTER_IDENTITY_SECRET_NAME}
   175      namespace: ${AZURE_CLUSTER_IDENTITY_SECRET_NAMESPACE}
   176    tenantID: ${AZURE_TENANT_ID}
   177    type: ServicePrincipal
   178  ---
   179  apiVersion: cluster.x-k8s.io/v1beta1
   180  kind: MachineDeployment
   181  metadata:
   182    name: ${CLUSTER_NAME}-md-0
   183    namespace: default
   184  spec:
   185    clusterName: ${CLUSTER_NAME}
   186    replicas: ${WORKER_MACHINE_COUNT:=2}
   187    selector:
   188      matchLabels: null
   189    template:
   190      spec:
   191        bootstrap:
   192          configRef:
   193            apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
   194            kind: KubeadmConfigTemplate
   195            name: ${CLUSTER_NAME}-md-0
   196        clusterName: ${CLUSTER_NAME}
   197        infrastructureRef:
   198          apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   199          kind: AzureMachineTemplate
   200          name: ${CLUSTER_NAME}-md-0
   201        version: ${KUBERNETES_VERSION}
   202  ---
   203  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   204  kind: AzureMachineTemplate
   205  metadata:
   206    name: ${CLUSTER_NAME}-md-0
   207    namespace: default
   208  spec:
   209    template:
   210      spec:
   211        enableIPForwarding: true
   212        identity: UserAssigned
   213        osDisk:
   214          diskSizeGB: 30
   215          managedDisk:
   216            storageAccountType: Premium_LRS
   217          osType: Linux
   218        sshPublicKey: ${AZURE_SSH_PUBLIC_KEY_B64:=""}
   219        userAssignedIdentities:
   220        - providerID: /subscriptions/${AZURE_SUBSCRIPTION_ID}/resourceGroups/${CI_RG:=capz-ci}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/${USER_IDENTITY:=cloud-provider-user-identity}
   221        vmSize: ${AZURE_NODE_MACHINE_TYPE}
   222  ---
   223  apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
   224  kind: KubeadmConfigTemplate
   225  metadata:
   226    name: ${CLUSTER_NAME}-md-0
   227    namespace: default
   228  spec:
   229    template:
   230      spec:
   231        files:
   232        - contentFrom:
   233            secret:
   234              key: worker-node-azure.json
   235              name: ${CLUSTER_NAME}-md-0-azure-json
   236          owner: root:root
   237          path: /etc/kubernetes/azure.json
   238          permissions: "0644"
   239        joinConfiguration:
   240          nodeRegistration:
   241            kubeletExtraArgs:
   242              cloud-provider: external
   243            name: '{{ ds.meta_data["local_hostname"] }}'
   244  ---
   245  apiVersion: cluster.x-k8s.io/v1beta1
   246  kind: MachinePool
   247  metadata:
   248    name: ${CLUSTER_NAME}-mp-0
   249    namespace: default
   250  spec:
   251    clusterName: ${CLUSTER_NAME}
   252    replicas: ${WORKER_MACHINE_COUNT}
   253    template:
   254      spec:
   255        bootstrap:
   256          configRef:
   257            apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
   258            kind: KubeadmConfig
   259            name: ${CLUSTER_NAME}-mp-0
   260        clusterName: ${CLUSTER_NAME}
   261        infrastructureRef:
   262          apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   263          kind: AzureMachinePool
   264          name: ${CLUSTER_NAME}-mp-0
   265        version: ${KUBERNETES_VERSION}
   266  ---
   267  apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
   268  kind: AzureMachinePool
   269  metadata:
   270    name: ${CLUSTER_NAME}-mp-0
   271    namespace: default
   272  spec:
   273    location: ${AZURE_LOCATION}
   274    strategy:
   275      rollingUpdate:
   276        deletePolicy: Oldest
   277        maxSurge: 25%
   278        maxUnavailable: 1
   279      type: RollingUpdate
   280    template:
   281      osDisk:
   282        diskSizeGB: 30
   283        managedDisk:
   284          storageAccountType: Premium_LRS
   285        osType: Linux
   286      sshPublicKey: ${AZURE_SSH_PUBLIC_KEY_B64:=""}
   287      vmSize: ${AZURE_NODE_MACHINE_TYPE}
   288  ---
   289  apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
   290  kind: KubeadmConfig
   291  metadata:
   292    name: ${CLUSTER_NAME}-mp-0
   293    namespace: default
   294  spec:
   295    files:
   296    - contentFrom:
   297        secret:
   298          key: worker-node-azure.json
   299          name: ${CLUSTER_NAME}-md-0-azure-json
   300      owner: root:root
   301      path: /etc/kubernetes/azure.json
   302      permissions: "0644"
   303    joinConfiguration:
   304      nodeRegistration:
   305        kubeletExtraArgs:
   306          cloud-provider: external
   307          cluster-dns: '[fd00::10]'
   308        name: '{{ ds.meta_data["local_hostname"] }}'
   309  ---
   310  apiVersion: addons.cluster.x-k8s.io/v1alpha1
   311  kind: HelmChartProxy
   312  metadata:
   313    name: calico-dual-stack
   314    namespace: default
   315  spec:
   316    chartName: tigera-operator
   317    clusterSelector:
   318      matchLabels:
   319        cni: calico-dual-stack
   320    namespace: tigera-operator
   321    releaseName: projectcalico
   322    repoURL: https://docs.tigera.io/calico/charts
   323    valuesTemplate: |
   324      installation:
   325        cni:
   326          type: Calico
   327          ipam:
   328            type: HostLocal
   329        calicoNetwork:
   330          bgp: Disabled
   331          mtu: 1350
   332          ipPools:
   333          - blockSize: 26
   334            cidr: {{ index .Cluster.spec.clusterNetwork.pods.cidrBlocks 0 }}
   335            encapsulation: None
   336            natOutgoing: Enabled
   337            nodeSelector: all()
   338          - blockSize: 122
   339            cidr: {{ index .Cluster.spec.clusterNetwork.pods.cidrBlocks 1 }}
   340            encapsulation: None
   341            natOutgoing: Enabled
   342            nodeSelector: all()
   343        registry: mcr.microsoft.com/oss
   344      # Image and registry configuration for the tigera/operator pod.
   345      tigeraOperator:
   346        image: tigera/operator
   347        registry: mcr.microsoft.com/oss
   348      calicoctl:
   349        image: mcr.microsoft.com/oss/calico/ctl
   350    version: ${CALICO_VERSION}
   351  ---
   352  apiVersion: addons.cluster.x-k8s.io/v1alpha1
   353  kind: HelmChartProxy
   354  metadata:
   355    name: azuredisk-csi-driver-chart
   356    namespace: default
   357  spec:
   358    chartName: azuredisk-csi-driver
   359    clusterSelector:
   360      matchLabels:
   361        azuredisk-csi: "true"
   362    namespace: kube-system
   363    releaseName: azuredisk-csi-driver-oot
   364    repoURL: https://raw.githubusercontent.com/kubernetes-sigs/azuredisk-csi-driver/master/charts
   365    valuesTemplate: |-
   366      controller:
   367        replicas: 1
   368        runOnControlPlane: true
   369      windows:
   370        useHostProcessContainers: {{ hasKey .Cluster.metadata.labels "cni-windows" }}
   371  ---
   372  apiVersion: addons.cluster.x-k8s.io/v1alpha1
   373  kind: HelmChartProxy
   374  metadata:
   375    name: cloud-provider-azure-chart
   376    namespace: default
   377  spec:
   378    chartName: cloud-provider-azure
   379    clusterSelector:
   380      matchLabels:
   381        cloud-provider: azure
   382    releaseName: cloud-provider-azure-oot
   383    repoURL: https://raw.githubusercontent.com/kubernetes-sigs/cloud-provider-azure/master/helm/repo
   384    valuesTemplate: |
   385      infra:
   386        clusterName: {{ .Cluster.metadata.name }}
   387      cloudControllerManager:
   388        clusterCIDR: {{ .Cluster.spec.clusterNetwork.pods.cidrBlocks | join "," }}
   389        logVerbosity: 4
   390  ---
   391  apiVersion: addons.cluster.x-k8s.io/v1alpha1
   392  kind: HelmChartProxy
   393  metadata:
   394    name: cloud-provider-azure-chart-ci
   395    namespace: default
   396  spec:
   397    chartName: cloud-provider-azure
   398    clusterSelector:
   399      matchLabels:
   400        cloud-provider: azure-ci
   401    releaseName: cloud-provider-azure-oot
   402    repoURL: https://raw.githubusercontent.com/kubernetes-sigs/cloud-provider-azure/master/helm/repo
   403    valuesTemplate: |
   404      infra:
   405        clusterName: {{ .Cluster.metadata.name }}
   406      cloudControllerManager:
   407        cloudConfig: ${CLOUD_CONFIG:-"/etc/kubernetes/azure.json"}
   408        cloudConfigSecretName: ${CONFIG_SECRET_NAME:-""}
   409        clusterCIDR: {{ .Cluster.spec.clusterNetwork.pods.cidrBlocks | join "," }}
   410        imageName: "${CCM_IMAGE_NAME:-""}"
   411        imageRepository: "${IMAGE_REGISTRY:-""}"
   412        imageTag: "${IMAGE_TAG_CCM:-""}"
   413        logVerbosity: ${CCM_LOG_VERBOSITY:-4}
   414        replicas: ${CCM_COUNT:-1}
   415        enableDynamicReloading: ${ENABLE_DYNAMIC_RELOADING:-false}
   416      cloudNodeManager:
   417        imageName: "${CNM_IMAGE_NAME:-""}"
   418        imageRepository: "${IMAGE_REGISTRY:-""}"
   419        imageTag: "${IMAGE_TAG_CNM:-""}"