diff --git a/templates/2025_04/azurelocal_aksarc.jsonc b/templates/2025_04/azurelocal_aksarc.jsonc new file mode 100644 index 0000000..3e3144e --- /dev/null +++ b/templates/2025_04/azurelocal_aksarc.jsonc @@ -0,0 +1,243 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "provisionedClusterName": { + "type": "string", + "defaultValue": "aksarc-armcluster", + "metadata": { + "description": "The name of the AKS Arc Cluster resource." + } + }, + "location": { + "type": "string", + "defaultValue": "eastus", + "metadata": { + "description": "The location of the AKS Arc Cluster resource." + } + }, + "resourceTags": { + "type": "object", + "defaultValue": {} + }, + "sshRSAPublicKey": { + "type": "string", + "metadata": { + "description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH '" + } + }, + "enableAHUB": { + "type": "string", + "defaultValue": "NotApplicable", + "metadata": { + "description": "Azure Hybrid Benefit for Windows Server licenses. NotApplicable, True, False." + } + }, + "agentName1": { + "type": "string", + "defaultValue": "nodepool1", + "metadata": { + "description": "The name of the node pool." + } + }, + "agentName2": { + "type": "string", + "defaultValue": "nodepool2", + "metadata": { + "description": "The name of the node pool." + } + }, + "agentVMSize": { + "type": "string", + "defaultValue": "Standard_A4_v2", + "metadata": { + "description": "The VM size for node pools." + } + }, + "agentMode": { + "type": "string", + "defaultValue": "System", + "metadata": { + "description": "The mode of the agentpool." + } + }, + "agentCount": { + "type": "int", + "defaultValue": 1, + "minValue": 1, + "maxValue": 50, + "metadata": { + "description": "The number of nodes for the cluster." + } + }, + "agentOsType": { + "type": "string", + "defaultValue": "Linux", + "metadata": { + "description": "The OS Type for the agent pool." + } + }, + "loadBalancerCount": { + "type": "int", + "defaultValue": 0, + "metadata": { + "description": "The number of load balancers." + } + }, + "kubernetesVersion": { + "type": "string", + "metadata": { + "description": "The version of Kubernetes." + } + }, + "controlPlaneNodeCount": { + "type": "int", + "defaultValue": 1, + "minValue": 1, + "maxValue": 5, + "metadata": { + "description": "The number of control plane nodes for the cluster." + } + }, + "controlPlaneIp": { + "type": "string", + "defaultValue": "", + "metadata": { + "description": "Control plane IP address." + } + }, + "controlPlaneVMSize": { + "type": "string", + "defaultValue": "Standard_A4_v2", + "metadata": { + "description": "The VM size for control plane." + } + }, + "vnetSubnetIds": { + "type": "array", + "metadata": { + "description": "List of network armid(s) for the AKS cluster, including csn, but not cni" + } + }, + "cniNetworkId": { + "type": "string", + "metadata": { + "description": "The armid of the CNI network." + } + }, + "podCidr": { + "type": "string", + "defaultValue": "10.244.0.0/16", + "metadata": { + "description": "The VM size for control plane." + } + }, + "networkPolicy": { + "type": "string", + "defaultValue": "calico", + "metadata": { + "description": "Network policy to use for Kubernetes pods. Only options supported is calico." + } + }, + "customLocation": { + "type": "string", + "metadata": { + "description": "Fully qualified custom location resource Id." + } + }, + "adminGroupObjectIDs": { + "defaultValue": {}, + "type": "array" + } + }, + "resources": [ + { + "apiVersion": "2024-01-01", + "type": "Microsoft.Kubernetes/ConnectedClusters", + "kind": "ProvisionedCluster", + "location": "[parameters('location')]", + "name": "[parameters('provisionedClusterName')]", + "tags": "[parameters('resourceTags')]", + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "agentPublicKeyCertificate":"" , + "aadProfile": { + "enableAzureRBAC": false, + "adminGroupObjectIDs": "[parameters('adminGroupObjectIDs')]" + } + } + }, + { + "apiVersion": "2024-09-01-preview", + "type": "microsoft.hybridcontainerservice/provisionedclusterinstances", + "name": "default", + "scope": "[concat('Microsoft.Kubernetes/ConnectedClusters', '/', parameters('provisionedClusterName'))]", + "dependsOn": [ + "[resourceId('Microsoft.Kubernetes/ConnectedClusters', parameters('provisionedClusterName'))]" + ], + "properties": { + "agentPoolProfiles": [ + { + "count": "[parameters('agentCount')]", + "name":"[parameters('agentName1')]", + "osType": "[parameters('agentOsType')]", + "vmSize": "[parameters('agentVMSize')]" + }, + { + "count": "[parameters('agentCount')]", + "name":"[parameters('agentName2')]", + "osType": "[parameters('agentOsType')]", + "vmSize": "[parameters('agentVMSize')]" + } + ], + "cloudProviderProfile": { + "infraNetworkProfile": { + "vnetSubnetIds": "[parameters('vnetSubnetIds')]" + } + }, + "controlPlane": { + "count": "[parameters('controlPlaneNodeCount')]", + "controlPlaneEndpoint": { + "hostIP": "[parameters('controlPlaneIp')]" + }, + "vmSize": "[parameters('controlPlaneVMSize')]" + }, + "licenseProfile": { + "azureHybridBenefit": "[parameters('enableAHUB')]" + }, + "kubernetesVersion": "[parameters('kubernetesVersion')]", + "linuxProfile": { + "ssh": { + "publicKeys": [ + { + "keyData": "[parameters('sshRSAPublicKey')]" + } + ] + } + }, + "networkProfile": { + "loadBalancerProfile": { + "count": "[parameters('loadBalancerCount')]" + }, + "networkPolicy": "[parameters('networkPolicy')]", + "podCidr": "[parameters('podCidr')]", + "vnetSubnetId": "[parameters('cniNetworkId')]" + }, + "storageProfile": { + "nfsCsiDriver": { + "enabled": false + }, + "smbCsiDriver": { + "enabled": false + } + } + }, + "extendedLocation": { + "name": "[parameters('customLocation')]", + "type": "CustomLocation" + } + } + ] + } diff --git a/templates/2025_04/azurelocal_aksarc.parameters.jsonc b/templates/2025_04/azurelocal_aksarc.parameters.jsonc new file mode 100644 index 0000000..fd8d1da --- /dev/null +++ b/templates/2025_04/azurelocal_aksarc.parameters.jsonc @@ -0,0 +1,61 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "provisionedClusterName":{ + "value": "sample-cluster" + }, + "location": { + "value": "eastus" + }, + "sshRSAPublicKey": { + "value": "ssh-rsa AAAA...... " + }, + "agentVMSize": { + "value": "NC_G2_8_v1" + }, + "agentCount": { + "value": 2 + }, + "agentOsType": { + "value": "Linux" + }, + "agentMode": { + "value": "System" + }, + "loadBalancerCount": { + "value": 0 + }, + "kubernetesVersion": { + "value": "v1.29.7" + }, + "controlPlaneNodeCount": { + "value": 1 + }, + "controlPlaneIp": { + "value": "ipipip" + }, + "controlPlaneVMSize": { + "value": "NC_G2_8_v1" + }, + "cniNetworkId": { + "value": "" + }, + "vnetSubnetIds": { + "value": + ["" + }, + "adminGroupObjectIDs": { + "value": [ + "" + ] + }, + "resourceTags": { + "nexus": "nexus, this field here is optional and can be anything" + } + } + } + \ No newline at end of file