|
|
- {
- "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
- "contentVersion": "1.0.0.0",
- "parameters": {
- "prefix": {
- "type": "string"
- },
- "clusterLocation": {
- "type": "string",
- "metadata": {
- "description": "Location of the Cluster"
- }
- },
- "clusterName": {
- "type": "string",
- "defaultValue": "Cluster",
- "metadata": {
- "description": "Name of your cluster - Between 3 and 23 characters. Letters and numbers only"
- }
- },
- "nt0applicationStartPort": {
- "type": "int",
- "defaultValue": 20000
- },
- "nt0applicationEndPort": {
- "type": "int",
- "defaultValue": 30000
- },
- "nt0ephemeralStartPort": {
- "type": "int",
- "defaultValue": 49152
- },
- "nt0ephemeralEndPort": {
- "type": "int",
- "defaultValue": 65534
- },
- "nt0fabricTcpGatewayPort": {
- "type": "int",
- "defaultValue": 19000
- },
- "nt0fabricHttpGatewayPort": {
- "type": "int",
- "defaultValue": 19080
- },
- "nt0reverseProxyEndpointPort": {
- "type": "int",
- "defaultValue": 19081
- },
- "webMvcHttpPort": {
- "type": "int",
- "defaultValue": 5100
- },
- "webSpaHttpPort": {
- "type": "int",
- "defaultValue": 5104
- },
- "webStatusHttpPort": {
- "type": "int",
- "defaultValue": 5107
- },
- "IdSrvHttpRule": {
- "type": "int",
- "defaultValue": 5105
- },
- "BasketApiHttpRule": {
- "type": "int",
- "defaultValue": 5103
- },
- "CatalogApiHttpRule": {
- "type": "int",
- "defaultValue": 5101
- },
- "OrderingApiHttpRule": {
- "type": "int",
- "defaultValue": 5102
- },
- "MarketingApiHttpRule": {
- "type": "int",
- "defaultValue": 5110
- },
- "LocationsApiHttpRule": {
- "type": "int",
- "defaultValue": 5109
- },
- "subnet0Name": {
- "type": "string",
- "defaultValue": "Subnet-0"
- },
- "subnet0Prefix": {
- "type": "string",
- "defaultValue": "10.0.0.0/24"
- },
- "computeLocation": {
- "type": "string"
- },
- "publicIPAddressName": {
- "type": "string",
- "defaultValue": "PublicIP-VM"
- },
- "publicIPAddressType": {
- "type": "string",
- "allowedValues": [
- "Dynamic"
- ],
- "defaultValue": "Dynamic"
- },
- "vmStorageAccountContainerName": {
- "type": "string",
- "defaultValue": "vhds"
- },
- "adminUserName": {
- "type": "string",
- "defaultValue": "testadm",
- "metadata": {
- "description": "Remote desktop user Id"
- }
- },
- "adminPassword": {
- "type": "securestring",
- "metadata": {
- "description": "Remote desktop user password. Must be a strong password"
- }
- },
- "virtualNetworkName": {
- "type": "string",
- "defaultValue": "VNet"
- },
- "addressPrefix": {
- "type": "string",
- "defaultValue": "10.0.0.0/16"
- },
- "dnsName": {
- "type": "string"
- },
- "nicName": {
- "type": "string",
- "defaultValue": "NIC"
- },
- "lbName": {
- "type": "string",
- "defaultValue": "LoadBalancer"
- },
- "lbIPName": {
- "type": "string",
- "defaultValue": "PublicIP-LB-FE"
- },
- "overProvision": {
- "type": "string",
- "defaultValue": "false"
- },
- "vmImagePublisher": {
- "type": "string",
- "defaultValue": "MicrosoftWindowsServer"
- },
- "vmImageOffer": {
- "type": "string",
- "defaultValue": "WindowsServer"
- },
- "vmImageSku": {
- "type": "string",
- "defaultValue": "2012-R2-Datacenter"
- },
- "vmImageVersion": {
- "type": "string",
- "defaultValue": "latest"
- },
- "storageAccountType": {
- "type": "string",
- "allowedValues": [
- "Standard_LRS",
- "Standard_GRS"
- ],
- "defaultValue": "Standard_LRS",
- "metadata": {
- "description": "Replication option for the VM image storage account"
- }
- },
- "supportLogStorageAccountType": {
- "type": "string",
- "allowedValues": [
- "Standard_LRS",
- "Standard_GRS"
- ],
- "defaultValue": "Standard_LRS",
- "metadata": {
- "description": "Replication option for the support log storage account"
- }
- },
- "supportLogStorageAccountName": {
- "type": "string",
- "defaultValue": "[toLower( concat('sflogs', uniqueString(resourceGroup().id),'2'))]",
- "metadata": {
- "description": "Name for the storage account that contains support logs from the cluster"
- }
- },
- "applicationDiagnosticsStorageAccountType": {
- "type": "string",
- "allowedValues": [
- "Standard_LRS",
- "Standard_GRS"
- ],
- "defaultValue": "Standard_LRS",
- "metadata": {
- "description": "Replication option for the application diagnostics storage account"
- }
- },
- "applicationDiagnosticsStorageAccountName": {
- "type": "string",
- "defaultValue": "[toLower(concat(uniqueString(resourceGroup().id), '3' ))]",
- "metadata": {
- "description": "Name for the storage account that contains application diagnostics data from the cluster"
- }
- },
- "nt0InstanceCount": {
- "type": "int",
- "defaultValue": 1,
- "metadata": {
- "description": "Instance count for node type"
- }
- },
- "vmNodeType0Name": {
- "type": "string",
- "defaultValue": "primary",
- "maxLength": 9
- },
- "vmNodeType0Size": {
- "type": "string",
- "defaultValue": "Standard_D2_v2"
- }
- },
- "variables": {
- "vmssApiVersion": "2017-03-30",
- "lbApiVersion": "2015-06-15",
- "vNetApiVersion": "2015-06-15",
- "storageApiVersion": "2016-01-01",
- "publicIPApiVersion": "2015-06-15",
- "vnetID": "[resourceId('Microsoft.Network/virtualNetworks',parameters('virtualNetworkName'))]",
- "subnet0Ref": "[concat(variables('vnetID'),'/subnets/',parameters('subnet0Name'))]",
- "lbID0": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', variables('clusterName'),'-',parameters('vmNodeType0Name')))]",
- "lbIPConfig0": "[concat(variables('lbID0'),'/frontendIPConfigurations/LoadBalancerIPConfig')]",
- "lbPoolID0": "[concat(variables('lbID0'),'/backendAddressPools/LoadBalancerBEAddressPool')]",
- "lbProbeID0": "[concat(variables('lbID0'),'/probes/FabricGatewayProbe')]",
- "lbHttpProbeID0": "[concat(variables('lbID0'),'/probes/FabricHttpGatewayProbe')]",
- "lbNatPoolID0": "[concat(variables('lbID0'),'/inboundNatPools/LoadBalancerBEAddressNatPool')]",
- "vmStorageAccountName0": "[toLower(concat(uniqueString(resourceGroup().id), '1', '0' ))]",
- "supportLogStorageAccountName": "[take(concat(parameters('prefix'), parameters('supportLogStorageAccountName')),22)]",
- "applicationDiagnosticsStorageAccountName" : "[take(concat(parameters('prefix'), parameters('applicationDiagnosticsStorageAccountName')),22)]",
- "clusterName": "[concat(parameters('prefix'), parameters('clusterName'))]",
- "uniqueStringArray0": [
- "[concat(variables('vmStorageAccountName0'), '0')]",
- "[concat(variables('vmStorageAccountName0'), '1')]",
- "[concat(variables('vmStorageAccountName0'), '2')]",
- "[concat(variables('vmStorageAccountName0'), '3')]",
- "[concat(variables('vmStorageAccountName0'), '4')]"
- ]
- },
- "resources": [
- {
- "apiVersion": "[variables('storageApiVersion')]",
- "type": "Microsoft.Storage/storageAccounts",
- "name": "[variables('supportLogStorageAccountName')]",
- "location": "[parameters('computeLocation')]",
- "dependsOn": [],
- "properties": {},
- "kind": "Storage",
- "sku": {
- "name": "[parameters('supportLogStorageAccountType')]"
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- },
- {
- "apiVersion": "[variables('storageApiVersion')]",
- "type": "Microsoft.Storage/storageAccounts",
- "name": "[variables('applicationDiagnosticsStorageAccountName')]",
- "location": "[parameters('computeLocation')]",
- "dependsOn": [],
- "properties": {},
- "kind": "Storage",
- "sku": {
- "name": "[parameters('applicationDiagnosticsStorageAccountType')]"
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- },
- {
- "apiVersion": "[variables('vNetApiVersion')]",
- "type": "Microsoft.Network/virtualNetworks",
- "name": "[parameters('virtualNetworkName')]",
- "location": "[parameters('computeLocation')]",
- "dependsOn": [],
- "properties": {
- "addressSpace": {
- "addressPrefixes": [
- "[parameters('addressPrefix')]"
- ]
- },
- "subnets": [
- {
- "name": "[parameters('subnet0Name')]",
- "properties": {
- "addressPrefix": "[parameters('subnet0Prefix')]"
- }
- }
- ]
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- },
- {
- "apiVersion": "[variables('publicIPApiVersion')]",
- "type": "Microsoft.Network/publicIPAddresses",
- "name": "[concat(parameters('lbIPName'),'-','0')]",
- "location": "[parameters('computeLocation')]",
- "properties": {
- "dnsSettings": {
- "domainNameLabel": "[parameters('dnsName')]"
- },
- "publicIPAllocationMethod": "Dynamic"
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- },
- {
- "apiVersion": "[variables('lbApiVersion')]",
- "type": "Microsoft.Network/loadBalancers",
- "name": "[concat('LB','-', variables('clusterName'),'-',parameters('vmNodeType0Name'))]",
- "location": "[parameters('computeLocation')]",
- "dependsOn": [
- "[concat('Microsoft.Network/publicIPAddresses/',concat(parameters('lbIPName'),'-','0'))]"
- ],
- "properties": {
- "frontendIPConfigurations": [
- {
- "name": "LoadBalancerIPConfig",
- "properties": {
- "publicIPAddress": {
- "id": "[resourceId('Microsoft.Network/publicIPAddresses',concat(parameters('lbIPName'),'-','0'))]"
- }
- }
- }
- ],
- "backendAddressPools": [
- {
- "name": "LoadBalancerBEAddressPool",
- "properties": {}
- }
- ],
- "loadBalancingRules": [
- {
- "name": "LBRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('nt0fabricTcpGatewayPort')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('nt0fabricTcpGatewayPort')]",
- "idleTimeoutInMinutes": "5",
- "probe": {
- "id": "[variables('lbProbeID0')]"
- },
- "protocol": "tcp"
- }
- },
- {
- "name": "LBHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('nt0fabricHttpGatewayPort')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('nt0fabricHttpGatewayPort')]",
- "idleTimeoutInMinutes": "5",
- "probe": {
- "id": "[variables('lbHttpProbeID0')]"
- },
- "protocol": "tcp"
- }
- },
- {
- "name": "ReverseProxyHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('nt0reverseProxyEndpointPort')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('nt0reverseProxyEndpointPort')]",
- "idleTimeoutInMinutes": "5",
- "probe": {
- "id": "[variables('lbHttpProbeID0')]"
- },
- "protocol": "tcp"
- }
- },
- {
- "name": "WebMVCHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('webMvcHttpPort')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('webMvcHttpPort')]",
- "idleTimeoutInMinutes": "5",
- "probe": {
- "id": "[variables('lbHttpProbeID0')]"
- },
- "protocol": "tcp"
- }
- },
- {
- "name": "WebSPAHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('webSpaHttpPort')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('webSpaHttpPort')]",
- "idleTimeoutInMinutes": "5",
- "probe": {
- "id": "[variables('lbHttpProbeID0')]"
- },
- "protocol": "tcp"
- }
- },
- {
- "name": "WebStatusHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('webStatusHttpPort')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('webStatusHttpPort')]",
- "idleTimeoutInMinutes": "5",
- "probe": {
- "id": "[variables('lbHttpProbeID0')]"
- },
- "protocol": "tcp"
- }
- },
- {
- "name": "IdSrvHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('IdSrvHttpRule')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('IdSrvHttpRule')]",
- "idleTimeoutInMinutes": "5",
- "probe": {
- "id": "[variables('lbHttpProbeID0')]"
- },
- "protocol": "tcp"
- }
- },
- {
- "name": "BasketApiHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('BasketApiHttpRule')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('BasketApiHttpRule')]",
- "idleTimeoutInMinutes": "5",
- "protocol": "tcp"
- }
- },
- {
- "name": "CatalogApiHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('CatalogApiHttpRule')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('CatalogApiHttpRule')]",
- "idleTimeoutInMinutes": "5",
- "protocol": "tcp"
- }
- },
- {
- "name": "OrderingApiHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('OrderingApiHttpRule')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('OrderingApiHttpRule')]",
- "idleTimeoutInMinutes": "5",
- "protocol": "tcp"
- }
- },
- {
- "name": "MarketingApiHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('MarketingApiHttpRule')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('MarketingApiHttpRule')]",
- "idleTimeoutInMinutes": "5",
- "protocol": "tcp"
- }
- },
- {
- "name": "LocationsApiHttpRule",
- "properties": {
- "backendAddressPool": {
- "id": "[variables('lbPoolID0')]"
- },
- "backendPort": "[parameters('LocationsApiHttpRule')]",
- "enableFloatingIP": "false",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPort": "[parameters('LocationsApiHttpRule')]",
- "idleTimeoutInMinutes": "5",
- "protocol": "tcp"
- }
- }
- ],
- "probes": [
- {
- "name": "FabricGatewayProbe",
- "properties": {
- "intervalInSeconds": 5,
- "numberOfProbes": 2,
- "port": "[parameters('nt0fabricTcpGatewayPort')]",
- "protocol": "tcp"
- }
- },
- {
- "name": "FabricHttpGatewayProbe",
- "properties": {
- "intervalInSeconds": 5,
- "numberOfProbes": 2,
- "port": "[parameters('nt0fabricHttpGatewayPort')]",
- "protocol": "tcp"
- }
- }
- ],
- "inboundNatPools": [
- {
- "name": "LoadBalancerBEAddressNatPool",
- "properties": {
- "backendPort": "3389",
- "frontendIPConfiguration": {
- "id": "[variables('lbIPConfig0')]"
- },
- "frontendPortRangeEnd": "4500",
- "frontendPortRangeStart": "3389",
- "protocol": "tcp"
- }
- }
- ]
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- },
- {
- "apiVersion": "[variables('storageApiVersion')]",
- "type": "Microsoft.Storage/storageAccounts",
- "name": "[variables('uniqueStringArray0')[copyIndex()]]",
- "location": "[parameters('computeLocation')]",
- "dependsOn": [],
- "properties": {},
- "copy": {
- "name": "storageLoop",
- "count": 5
- },
- "kind": "Storage",
- "sku": {
- "name": "[parameters('storageAccountType')]"
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- },
- {
- "apiVersion": "[variables('vmssApiVersion')]",
- "type": "Microsoft.Compute/virtualMachineScaleSets",
- "name": "[parameters('vmNodeType0Name')]",
- "location": "[parameters('computeLocation')]",
- "dependsOn": [
- "[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]",
- "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0])]",
- "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1])]",
- "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2])]",
- "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3])]",
- "[concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4])]",
- "[concat('Microsoft.Network/loadBalancers/', concat('LB','-', variables('clusterName'),'-',parameters('vmNodeType0Name')))]",
- "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]",
- "[concat('Microsoft.Storage/storageAccounts/', variables('applicationDiagnosticsStorageAccountName'))]"
- ],
- "properties": {
- "overprovision": "[parameters('overProvision')]",
- "upgradePolicy": {
- "mode": "Automatic"
- },
- "virtualMachineProfile": {
- "extensionProfile": {
- "extensions": [
- {
- "name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricNode')]",
- "properties": {
- "type": "ServiceFabricNode",
- "autoUpgradeMinorVersion": true,
- "protectedSettings": {
- "StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('supportLogStorageAccountName')),'2015-05-01-preview').key1]",
- "StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('supportLogStorageAccountName')),'2015-05-01-preview').key2]"
- },
- "publisher": "Microsoft.Azure.ServiceFabric",
- "settings": {
- "clusterEndpoint": "[reference(variables('clusterName')).clusterEndpoint]",
- "nodeTypeRef": "[parameters('vmNodeType0Name')]",
- "dataPath": "D:\\\\SvcFab",
- "durabilityLevel": "Bronze",
- "enableParallelJobs": true,
- "nicPrefixOverride": "[parameters('subnet0Prefix')]"
- },
- "typeHandlerVersion": "1.0"
- }
- },
- {
- "name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]",
- "properties": {
- "type": "IaaSDiagnostics",
- "autoUpgradeMinorVersion": true,
- "protectedSettings": {
- "storageAccountName": "[variables('applicationDiagnosticsStorageAccountName')]",
- "storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]",
- "storageAccountEndPoint": "https://core.windows.net/"
- },
- "publisher": "Microsoft.Azure.Diagnostics",
- "settings": {
- "WadCfg": {
- "DiagnosticMonitorConfiguration": {
- "overallQuotaInMB": "50000",
- "EtwProviders": {
- "EtwEventSourceProviderConfiguration": [
- {
- "provider": "Microsoft-ServiceFabric-Actors",
- "scheduledTransferKeywordFilter": "1",
- "scheduledTransferPeriod": "PT5M",
- "DefaultEvents": {
- "eventDestination": "ServiceFabricReliableActorEventTable"
- }
- },
- {
- "provider": "Microsoft-ServiceFabric-Services",
- "scheduledTransferPeriod": "PT5M",
- "DefaultEvents": {
- "eventDestination": "ServiceFabricReliableServiceEventTable"
- }
- }
- ],
- "EtwManifestProviderConfiguration": [
- {
- "provider": "cbd93bc2-71e5-4566-b3a7-595d8eeca6e8",
- "scheduledTransferLogLevelFilter": "Information",
- "scheduledTransferKeywordFilter": "4611686018427387904",
- "scheduledTransferPeriod": "PT5M",
- "DefaultEvents": {
- "eventDestination": "ServiceFabricSystemEventTable"
- }
- }
- ]
- }
- }
- },
- "StorageAccount": "[variables('applicationDiagnosticsStorageAccountName')]"
- },
- "typeHandlerVersion": "1.5"
- }
- }
- ]
- },
- "networkProfile": {
- "networkInterfaceConfigurations": [
- {
- "name": "[concat(parameters('nicName'), '-0')]",
- "properties": {
- "ipConfigurations": [
- {
- "name": "[concat(parameters('nicName'),'-',0)]",
- "properties": {
- "loadBalancerBackendAddressPools": [
- {
- "id": "[variables('lbPoolID0')]"
- }
- ],
- "loadBalancerInboundNatPools": [
- {
- "id": "[variables('lbNatPoolID0')]"
- }
- ],
- "subnet": {
- "id": "[variables('subnet0Ref')]"
- }
- }
- }
- ],
- "primary": true
- }
- }
- ]
- },
- "osProfile": {
- "adminPassword": "[parameters('adminPassword')]",
- "adminUsername": "[parameters('adminUsername')]",
- "computernamePrefix": "[parameters('vmNodeType0Name')]"
- },
- "storageProfile": {
- "imageReference": {
- "publisher": "[parameters('vmImagePublisher')]",
- "offer": "[parameters('vmImageOffer')]",
- "sku": "[parameters('vmImageSku')]",
- "version": "[parameters('vmImageVersion')]"
- },
- "osDisk": {
- "caching": "ReadOnly",
- "createOption": "FromImage",
- "vhdContainers": [
- "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[0]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]",
- "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[1]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]",
- "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[2]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]",
- "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[3]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]",
- "[concat(reference(concat('Microsoft.Storage/storageAccounts/', variables('uniqueStringArray0')[4]), variables('storageApiVersion')).primaryEndpoints.blob, parameters('vmStorageAccountContainerName'))]"
- ],
- "name": "vmssosdisk"
- }
- }
- }
- },
- "sku": {
- "name": "[parameters('vmNodeType0Size')]",
- "capacity": "[parameters('nt0InstanceCount')]",
- "tier": "Standard"
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- },
- {
- "apiVersion": "2017-07-01-preview",
- "type": "Microsoft.ServiceFabric/clusters",
- "name": "[variables('clusterName')]",
- "location": "[parameters('clusterLocation')]",
- "dependsOn": [
- "[concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName'))]"
- ],
- "properties": {
- "addonFeatures": [
- "DnsService"
- ],
- "clientCertificateCommonNames": [],
- "clientCertificateThumbprints": [],
- "clusterCodeVersion": "6.0.232.9494",
- "clusterState": "Default",
- "diagnosticsStorageAccountConfig": {
- "blobEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.blob]",
- "protectedAccountKeyName": "StorageAccountKey1",
- "queueEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.queue]",
- "storageAccountName": "[variables('supportLogStorageAccountName')]",
- "tableEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.table]"
- },
- "fabricSettings": [],
- "managementEndpoint": "[concat('http://',reference(concat(parameters('lbIPName'),'-','0')).dnsSettings.fqdn,':',parameters('nt0fabricHttpGatewayPort'))]",
- "nodeTypes": [
- {
- "name": "[parameters('vmNodeType0Name')]",
- "applicationPorts": {
- "endPort": "[parameters('nt0applicationEndPort')]",
- "startPort": "[parameters('nt0applicationStartPort')]"
- },
- "clientConnectionEndpointPort": "[parameters('nt0fabricTcpGatewayPort')]",
- "durabilityLevel": "Bronze",
- "ephemeralPorts": {
- "endPort": "[parameters('nt0ephemeralEndPort')]",
- "startPort": "[parameters('nt0ephemeralStartPort')]"
- },
- "httpGatewayEndpointPort": "[parameters('nt0fabricHttpGatewayPort')]",
- "isPrimary": true,
- "reverseProxyEndpointPort": "[parameters('nt0reverseProxyEndpointPort')]",
- "vmInstanceCount": "[parameters('nt0InstanceCount')]"
- }
- ],
- "provisioningState": "Default",
- "reliabilityLevel": "None",
- "upgradeMode": "Manual",
- "vmImage": "Windows"
- },
- "tags": {
- "resourceType": "Service Fabric",
- "clusterName": "[variables('clusterName')]"
- }
- }
- ],
- "outputs": {
- "clusterProperties": {
- "value": "[reference(variables('clusterName'))]",
- "type": "object"
- }
- }
- }
|