sigs.k8s.io/cluster-api-provider-azure@v1.14.3/templates/cluster-template-machinepool.yaml (about) 1 apiVersion: cluster.x-k8s.io/v1beta1 2 kind: Cluster 3 metadata: 4 name: ${CLUSTER_NAME} 5 namespace: default 6 spec: 7 clusterNetwork: 8 pods: 9 cidrBlocks: 10 - 192.168.0.0/16 11 controlPlaneRef: 12 apiVersion: controlplane.cluster.x-k8s.io/v1beta1 13 kind: KubeadmControlPlane 14 name: ${CLUSTER_NAME}-control-plane 15 infrastructureRef: 16 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 17 kind: AzureCluster 18 name: ${CLUSTER_NAME} 19 --- 20 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 21 kind: AzureCluster 22 metadata: 23 name: ${CLUSTER_NAME} 24 namespace: default 25 spec: 26 identityRef: 27 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 28 kind: AzureClusterIdentity 29 name: ${CLUSTER_IDENTITY_NAME} 30 location: ${AZURE_LOCATION} 31 networkSpec: 32 subnets: 33 - name: control-plane-subnet 34 role: control-plane 35 - name: node-subnet 36 role: node 37 vnet: 38 name: ${AZURE_VNET_NAME:=${CLUSTER_NAME}-vnet} 39 resourceGroup: ${AZURE_RESOURCE_GROUP:=${CLUSTER_NAME}} 40 subscriptionID: ${AZURE_SUBSCRIPTION_ID} 41 --- 42 apiVersion: controlplane.cluster.x-k8s.io/v1beta1 43 kind: KubeadmControlPlane 44 metadata: 45 name: ${CLUSTER_NAME}-control-plane 46 namespace: default 47 spec: 48 kubeadmConfigSpec: 49 clusterConfiguration: 50 apiServer: 51 extraArgs: 52 cloud-provider: external 53 timeoutForControlPlane: 20m 54 controllerManager: 55 extraArgs: 56 allocate-node-cidrs: "false" 57 cloud-provider: external 58 cluster-name: ${CLUSTER_NAME} 59 etcd: 60 local: 61 dataDir: /var/lib/etcddisk/etcd 62 extraArgs: 63 quota-backend-bytes: "8589934592" 64 diskSetup: 65 filesystems: 66 - device: /dev/disk/azure/scsi1/lun0 67 extraOpts: 68 - -E 69 - lazy_itable_init=1,lazy_journal_init=1 70 filesystem: ext4 71 label: etcd_disk 72 - device: ephemeral0.1 73 filesystem: ext4 74 label: ephemeral0 75 replaceFS: ntfs 76 partitions: 77 - device: /dev/disk/azure/scsi1/lun0 78 layout: true 79 overwrite: false 80 tableType: gpt 81 files: 82 - contentFrom: 83 secret: 84 key: control-plane-azure.json 85 name: ${CLUSTER_NAME}-control-plane-azure-json 86 owner: root:root 87 path: /etc/kubernetes/azure.json 88 permissions: "0644" 89 initConfiguration: 90 nodeRegistration: 91 kubeletExtraArgs: 92 cloud-provider: external 93 name: '{{ ds.meta_data["local_hostname"] }}' 94 joinConfiguration: 95 nodeRegistration: 96 kubeletExtraArgs: 97 cloud-provider: external 98 name: '{{ ds.meta_data["local_hostname"] }}' 99 mounts: 100 - - LABEL=etcd_disk 101 - /var/lib/etcddisk 102 postKubeadmCommands: [] 103 preKubeadmCommands: [] 104 machineTemplate: 105 infrastructureRef: 106 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 107 kind: AzureMachineTemplate 108 name: ${CLUSTER_NAME}-control-plane 109 replicas: ${CONTROL_PLANE_MACHINE_COUNT:=1} 110 version: ${KUBERNETES_VERSION} 111 --- 112 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 113 kind: AzureMachineTemplate 114 metadata: 115 name: ${CLUSTER_NAME}-control-plane 116 namespace: default 117 spec: 118 template: 119 spec: 120 dataDisks: 121 - diskSizeGB: 256 122 lun: 0 123 nameSuffix: etcddisk 124 osDisk: 125 diskSizeGB: 128 126 osType: Linux 127 sshPublicKey: ${AZURE_SSH_PUBLIC_KEY_B64:=""} 128 vmSize: ${AZURE_CONTROL_PLANE_MACHINE_TYPE} 129 --- 130 apiVersion: cluster.x-k8s.io/v1beta1 131 kind: MachinePool 132 metadata: 133 name: ${CLUSTER_NAME}-mp-0 134 namespace: default 135 spec: 136 clusterName: ${CLUSTER_NAME} 137 replicas: ${WORKER_MACHINE_COUNT:=2} 138 template: 139 spec: 140 bootstrap: 141 configRef: 142 apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 143 kind: KubeadmConfig 144 name: ${CLUSTER_NAME}-mp-0 145 clusterName: ${CLUSTER_NAME} 146 infrastructureRef: 147 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 148 kind: AzureMachinePool 149 name: ${CLUSTER_NAME}-mp-0 150 version: ${KUBERNETES_VERSION} 151 --- 152 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 153 kind: AzureMachinePool 154 metadata: 155 name: ${CLUSTER_NAME}-mp-0 156 namespace: default 157 spec: 158 location: ${AZURE_LOCATION} 159 strategy: 160 rollingUpdate: 161 deletePolicy: Oldest 162 maxSurge: 25% 163 maxUnavailable: 1 164 type: RollingUpdate 165 template: 166 osDisk: 167 diskSizeGB: 30 168 managedDisk: 169 storageAccountType: Premium_LRS 170 osType: Linux 171 sshPublicKey: ${AZURE_SSH_PUBLIC_KEY_B64:=""} 172 vmSize: ${AZURE_NODE_MACHINE_TYPE} 173 --- 174 apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 175 kind: KubeadmConfig 176 metadata: 177 name: ${CLUSTER_NAME}-mp-0 178 namespace: default 179 spec: 180 files: 181 - contentFrom: 182 secret: 183 key: worker-node-azure.json 184 name: ${CLUSTER_NAME}-mp-0-azure-json 185 owner: root:root 186 path: /etc/kubernetes/azure.json 187 permissions: "0644" 188 joinConfiguration: 189 nodeRegistration: 190 kubeletExtraArgs: 191 cloud-provider: external 192 name: '{{ ds.meta_data["local_hostname"] }}' 193 --- 194 apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 195 kind: AzureClusterIdentity 196 metadata: 197 labels: 198 clusterctl.cluster.x-k8s.io/move-hierarchy: "true" 199 name: ${CLUSTER_IDENTITY_NAME} 200 namespace: default 201 spec: 202 allowedNamespaces: {} 203 clientID: ${AZURE_CLIENT_ID} 204 clientSecret: 205 name: ${AZURE_CLUSTER_IDENTITY_SECRET_NAME} 206 namespace: ${AZURE_CLUSTER_IDENTITY_SECRET_NAMESPACE} 207 tenantID: ${AZURE_TENANT_ID} 208 type: ServicePrincipal