Templates/DeploymentSettingsTemplateForClusterUpgrade.json

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "apiVersion": {
            "defaultValue": "2024-04-01",
            "type": "string",
            "metadata": {
                "description": "The api version for deploying a hci cluster"
            }
        },
        "name": {
            "defaultValue": "democlusteratda3",
            "type": "string",
            "metadata": {
                "description": "The name of the hci cluster"
            }
        },
        "arcNodeResourceIds": {
            "defaultValue": [
                "/subscriptions/ff0aa6da-20f8-44fe-9aee-381c8e8a4aeb/resourceGroups/deployFromCloud-CanaryRg/providers/Microsoft.HybridCompute/machines/ASRR1S46R17U40"
            ],
            "type": "array",
            "metadata": {
                "description": "The arc for server node Ids of the hci cluster"
            }
        },
        "domainFqdn": {
            "defaultValue": "contoso.com",
            "type": "string",
            "metadata": {
                "description": "The domain name of the active directory"
            }
        },
        "namingPrefix": {
            "defaultValue": "HCI01",
            "type": "string",
            "metadata": {
                "description": "The computer name prefix"
            }
        },
        "adouPath": {
            "defaultValue": "OU=HCI01,DC=contoso,DC=com",
            "type": "string",
            "metadata": {
                "description": "The oU path"
            }
        },
        "securityLevel": {
            "defaultValue": "Customized",
            "type": "string",
            "metadata": {
                "description": "The security level data for deploying a hci cluster"
            }
        },
        "streamingDataClient": {
            "defaultValue": true,
            "type": "bool",
            "metadata": {
                "description": "The metrics data for deploying a hci cluster"
            }
        },
        "euLocation": {
            "defaultValue": true,
            "type": "bool",
            "metadata": {
                "description": "The location data for deploying a hci cluster"
            }
        },
        "episodicDataUpload": {
            "defaultValue": true,
            "type": "bool",
            "metadata": {
                "description": "The diagnostic data for deploying a hci cluster"
            }
        },
        "clusterName": {
            "defaultValue": "democluster",
            "type": "string",
            "metadata": {
                "description": "The name of the hci cluster"
            }
        },
        "configurationMode": {
            "defaultValue": "InfraOnly",
            "type": "string",
            "metadata": {
                "description": "The volume type for deploying a hci cluster"
            }
        },
        "subnetMask": {
            "defaultValue": "255.255.255.0",
            "type": "string",
            "metadata": {
                "description": "The subnet mask for deploying a hci cluster"
            }
        },
        "defaultGateway": {
            "defaultValue": "10.0.0.1",
            "type": "string",
            "metadata": {
                "description": "The default gateway for deploying a hci cluster"
            }
        },
        "infrastructureIpPoolSettings": {
            "defaultValue": [
                {
                    "startingAddress": "10.0.0.8",
                    "endingAddress": "10.0.0.10"
                }
            ],
            "type": "array",
            "metadata": {
                "description": "The Ip pools for deploying a hci cluster"
            }
        },
        "dnsServers": {
            "defaultValue": [
                "10.0.0.7",
                "10.0.0.5"
            ],
            "type": "array",
            "metadata": {
                "description": "The dns servers for deploying a hci cluster"
            }
        },
        "physicalNodesSettings": {
            "defaultValue": [
                {
                    "name": "default",
                    "ipv4Address": "10.10.10.12"
                }
            ],
            "type": "array",
            "metadata": {
                "description": "The physical nodes settings for deploying a hci cluster"
            }
        },
        "networkingType": {
            "defaultValue": "singleServerDeployment",
            "type": "string",
            "metadata": {
                "description": "The networking type for deploying a hci cluster"
            }
        },
        "networkingPattern": {
            "defaultValue": "convergedManagementCompute",
            "type": "string",
            "metadata": {
                "description": "The networking pattern for deploying a hci cluster"
            }
        },
        "secretsLocation":{
            "defaultValue": "test.vault.azure.net",
            "type": "string",
            "metadata": {
                "description": "The custom location for deploying a hci cluster"
            }
        },
        "customLocation": {
            "defaultValue": "democlusloc",
            "type": "string",
            "metadata": {
                "description": "The custom location for deploying a hci cluster"
            }
        },
        "deploymentMode":{
            "defaultValue": "Validate",
            "type": "string",
            "metadata": {
                "description" : "Can be of two types Validate or Deploy"
            }
        },
        "operationType":{
            "defaultValue": "ClusterProvisioning",
            "type": "string",
            "metadata": {
                "description" : "Can be of two types ClusterProvisioning or ClusterUpgrade"
            }
        },
        "domainAdminSecretName": {
            "defaultValue": "",
            "type": "string",
            "metadata": {
                "description": "The domain admin secret name"
            }
        },
        "arbDeploymentSpnSecretName": {
            "defaultValue": "",
            "type": "string",
            "metadata": {
                "description": "The arb deployment spn secret name"
            }
        },
        "domainAdminCredentialECEName": {
            "defaultValue": "AzureStackLCMUserCredential",
            "type": "string",
            "metadata": {
                "description": "The domain admin ece name"
            }
        },
        "arbDeploymentSpnCredentialECEName": {
            "defaultValue": "DefaultARBApplication",
            "type": "string",
            "metadata": {
                "description": "The arb deployment spn ece name"
            }
        },
        "keyVaultName": {
            "defaultValue": "",
            "type": "string",
            "metadata": {
                "description": "The key vault name"
            }
        }
    },
    "resources": [
        {
            "type": "microsoft.azurestackhci/clusters/deploymentSettings",
            "apiVersion": "[parameters('apiVersion')]",
            "name": "[format('{0}/default', parameters('name'))]",
            "properties": {
                "arcNodeResourceIds": "[parameters('arcNodeResourceIds')]",
                "deploymentMode": "[parameters('deploymentMode')]",
                "operationType": "[parameters('operationType')]",
                "deploymentConfiguration": {
                    "version": "10.1.0.0",
                    "scaleUnits": [
                        {
                            "deploymentData": {
                                "observability": {
                                    "streamingDataClient": "[parameters('streamingDataClient')]",
                                    "euLocation": "[parameters('euLocation')]",
                                    "episodicDataUpload": "[parameters('episodicDataUpload')]"
                                },
                                "cluster": {
                                    "name": "[parameters('clusterName')]"
                                },
                                "storage": {
                                    "configurationMode": "[parameters('configurationMode')]"
                                },
                                "namingPrefix": "[parameters('namingPrefix')]",
                                "domainFqdn": "[parameters('domainFqdn')]",
                                "infrastructureNetwork": [
                                    {
                                        "subnetMask": "[parameters('subnetMask')]",
                                        "gateway": "[parameters('defaultGateway')]",
                                        "ipPools": "[parameters('infrastructureIpPoolSettings')]",
                                        "dnsServers": "[parameters('dnsServers')]"
                                    }
                                ],
                                "physicalNodes": "[parameters('physicalNodesSettings')]",
                                "adouPath": "[parameters('adouPath')]",
                                "secretsLocation": "[parameters('secretsLocation')]",
                                "secrets" : [
                                    {
                                        "secretName": "[parameters('domainAdminSecretName')]",
                                        "eceSecretName" : "[parameters('domainAdminCredentialECEName')]",
                                        "secretLocation": "[concat('https://', parameters('keyVaultName'), '.vault.azure.net/secrets/', parameters('domainAdminSecretName'))]"
                                    },
                                    {
                                        "secretName": "[parameters('arbDeploymentSpnSecretName')]",
                                        "eceSecretName" : "[parameters('arbDeploymentSpnCredentialECEName')]",
                                        "secretLocation": "[concat('https://', parameters('keyVaultName'), '.vault.azure.net/secrets/', parameters('arbDeploymentSpnSecretName'))]"
                                    }
                                ],
                                "optionalServices": {
                                    "customLocation": "[parameters('customLocation')]"
                                }
                            }
                        }
                    ]
                }
            }
        }
    ]
}