{
|
|
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
|
|
"contentVersion": "1.0.0.0",
|
|
"parameters": {
|
|
"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
|
|
},
|
|
"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": "Microsoft.Azure.ServiceFabric"
|
|
},
|
|
"vmImageOffer": {
|
|
"type": "string",
|
|
"defaultValue": "UbuntuServer"
|
|
},
|
|
"vmImageSku": {
|
|
"type": "string",
|
|
"defaultValue": "16.04"
|
|
},
|
|
"vmImageVersion": {
|
|
"type": "string",
|
|
"defaultValue": "6.0.12"
|
|
},
|
|
"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_D1_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'))]",
|
|
"wadlogs": "<WadCfg><DiagnosticMonitorConfiguration>",
|
|
"wadperfcounters1": "<PerformanceCounters scheduledTransferPeriod=\"PT1M\"><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\AvailableMemory\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Memory available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentAvailableMemory\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Mem. percent available\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\UsedMemory\" sampleRate=\"PT15S\" unit=\"Bytes\"><annotation displayName=\"Memory used\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentUsedMemory\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Memory percentage\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Memory\\PercentUsedByCache\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"Mem. used by cache\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentIdleTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU idle time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentUserTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU user time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentProcessorTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU percentage guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\Processor\\PercentIOWaitTime\" sampleRate=\"PT15S\" unit=\"Percent\"><annotation displayName=\"CPU IO wait time\" locale=\"en-us\"/></PerformanceCounterConfiguration>",
|
|
"wadperfcounters2": "<PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\BytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk total bytes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\ReadBytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk read guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\WriteBytesPerSecond\" sampleRate=\"PT15S\" unit=\"BytesPerSecond\"><annotation displayName=\"Disk write guest OS\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\TransfersPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk transfers\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\ReadsPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk reads\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\WritesPerSecond\" sampleRate=\"PT15S\" unit=\"CountPerSecond\"><annotation displayName=\"Disk writes\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageReadTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk read time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageWriteTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk write time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageTransferTime\" sampleRate=\"PT15S\" unit=\"Seconds\"><annotation displayName=\"Disk transfer time\" locale=\"en-us\"/></PerformanceCounterConfiguration><PerformanceCounterConfiguration counterSpecifier=\"\\PhysicalDisk\\AverageDiskQueueLength\" sampleRate=\"PT15S\" unit=\"Count\"><annotation displayName=\"Disk queue length\" locale=\"en-us\"/></PerformanceCounterConfiguration></PerformanceCounters>",
|
|
"wadcfgxstart": "[concat(variables('wadlogs'),variables('wadperfcounters1'),variables('wadperfcounters2'),'<Metrics resourceId=\"')]",
|
|
"wadcfgxend": "[concat('\"><MetricAggregation scheduledTransferPeriod=\"PT1H\"/><MetricAggregation scheduledTransferPeriod=\"PT1M\"/></Metrics></DiagnosticMonitorConfiguration></WadCfg>')]",
|
|
"lbID0": "[resourceId('Microsoft.Network/loadBalancers', concat('LB','-', parameters('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' ))]",
|
|
"wadmetricsresourceid0": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',resourceGroup().name ,'/providers/','Microsoft.Compute/virtualMachineScaleSets/', parameters('vmNodeType0Name'))]"
|
|
},
|
|
"resources": [
|
|
{
|
|
"apiVersion": "[variables('storageApiVersion')]",
|
|
"type": "Microsoft.Storage/storageAccounts",
|
|
"name": "[parameters('supportLogStorageAccountName')]",
|
|
"location": "[parameters('computeLocation')]",
|
|
"dependsOn": [],
|
|
"properties": {},
|
|
"kind": "Storage",
|
|
"sku": {
|
|
"name": "[parameters('supportLogStorageAccountType')]"
|
|
},
|
|
"tags": {
|
|
"resourceType": "Service Fabric",
|
|
"clusterName": "[parameters('clusterName')]"
|
|
}
|
|
},
|
|
{
|
|
"apiVersion": "[variables('storageApiVersion')]",
|
|
"type": "Microsoft.Storage/storageAccounts",
|
|
"name": "[parameters('applicationDiagnosticsStorageAccountName')]",
|
|
"location": "[parameters('computeLocation')]",
|
|
"dependsOn": [],
|
|
"properties": {},
|
|
"kind": "Storage",
|
|
"sku": {
|
|
"name": "[parameters('applicationDiagnosticsStorageAccountType')]"
|
|
},
|
|
"tags": {
|
|
"resourceType": "Service Fabric",
|
|
"clusterName": "[parameters('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": "[parameters('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": "[parameters('clusterName')]"
|
|
}
|
|
},
|
|
{
|
|
"apiVersion": "[variables('lbApiVersion')]",
|
|
"type": "Microsoft.Network/loadBalancers",
|
|
"name": "[concat('LB','-', parameters('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": "WebMVCHttpRule",
|
|
"properties": {
|
|
"backendAddressPool": {
|
|
"id": "[variables('lbPoolID0')]"
|
|
},
|
|
"backendPort": "[parameters('webMvcHttpPort')]",
|
|
"enableFloatingIP": "false",
|
|
"frontendIPConfiguration": {
|
|
"id": "[variables('lbIPConfig0')]"
|
|
},
|
|
"frontendPort": "[parameters('webMvcHttpPort')]",
|
|
"idleTimeoutInMinutes": "5",
|
|
"protocol": "tcp"
|
|
}
|
|
},
|
|
{
|
|
"name": "WebSPAHttpRule",
|
|
"properties": {
|
|
"backendAddressPool": {
|
|
"id": "[variables('lbPoolID0')]"
|
|
},
|
|
"backendPort": "[parameters('webSpaHttpPort')]",
|
|
"enableFloatingIP": "false",
|
|
"frontendIPConfiguration": {
|
|
"id": "[variables('lbIPConfig0')]"
|
|
},
|
|
"frontendPort": "[parameters('webSpaHttpPort')]",
|
|
"idleTimeoutInMinutes": "5",
|
|
"protocol": "tcp"
|
|
}
|
|
},
|
|
{
|
|
"name": "WebStatusHttpRule",
|
|
"properties": {
|
|
"backendAddressPool": {
|
|
"id": "[variables('lbPoolID0')]"
|
|
},
|
|
"backendPort": "[parameters('webStatusHttpPort')]",
|
|
"enableFloatingIP": "false",
|
|
"frontendIPConfiguration": {
|
|
"id": "[variables('lbIPConfig0')]"
|
|
},
|
|
"frontendPort": "[parameters('webStatusHttpPort')]",
|
|
"idleTimeoutInMinutes": "5",
|
|
"protocol": "tcp"
|
|
}
|
|
},
|
|
{
|
|
"name": "IdSrvHttpRule",
|
|
"properties": {
|
|
"backendAddressPool": {
|
|
"id": "[variables('lbPoolID0')]"
|
|
},
|
|
"backendPort": "[parameters('IdSrvHttpRule')]",
|
|
"enableFloatingIP": "false",
|
|
"frontendIPConfiguration": {
|
|
"id": "[variables('lbIPConfig0')]"
|
|
},
|
|
"frontendPort": "[parameters('IdSrvHttpRule')]",
|
|
"idleTimeoutInMinutes": "5",
|
|
"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": "22",
|
|
"frontendIPConfiguration": {
|
|
"id": "[variables('lbIPConfig0')]"
|
|
},
|
|
"frontendPortRangeEnd": "4500",
|
|
"frontendPortRangeStart": "3389",
|
|
"protocol": "tcp"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"tags": {
|
|
"resourceType": "Service Fabric",
|
|
"clusterName": "[parameters('clusterName')]"
|
|
}
|
|
},
|
|
{
|
|
"apiVersion": "[variables('vmssApiVersion')]",
|
|
"type": "Microsoft.Compute/virtualMachineScaleSets",
|
|
"name": "[parameters('vmNodeType0Name')]",
|
|
"location": "[parameters('computeLocation')]",
|
|
"dependsOn": [
|
|
"[concat('Microsoft.Network/virtualNetworks/', parameters('virtualNetworkName'))]",
|
|
"[concat('Microsoft.Network/loadBalancers/', concat('LB','-', parameters('clusterName'),'-',parameters('vmNodeType0Name')))]",
|
|
"[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]",
|
|
"[concat('Microsoft.Storage/storageAccounts/', parameters('applicationDiagnosticsStorageAccountName'))]"
|
|
],
|
|
"properties": {
|
|
"overprovision": "[parameters('overProvision')]",
|
|
"upgradePolicy": {
|
|
"mode": "Automatic"
|
|
},
|
|
"virtualMachineProfile": {
|
|
"extensionProfile": {
|
|
"extensions": [
|
|
{
|
|
"name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricLinuxNode')]",
|
|
"properties": {
|
|
"type": "ServiceFabricLinuxNode",
|
|
"autoUpgradeMinorVersion": true,
|
|
"protectedSettings": {
|
|
"StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key1]",
|
|
"StorageAccountKey2": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('supportLogStorageAccountName')),'2015-05-01-preview').key2]"
|
|
},
|
|
"publisher": "Microsoft.Azure.ServiceFabric",
|
|
"settings": {
|
|
"clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
|
|
"nodeTypeRef": "[parameters('vmNodeType0Name')]",
|
|
"durabilityLevel": "Bronze",
|
|
"enableParallelJobs": true,
|
|
"nicPrefixOverride": "[parameters('subnet0Prefix')]"
|
|
},
|
|
"typeHandlerVersion": "1.0"
|
|
}
|
|
},
|
|
{
|
|
"name": "[concat('VMDiagnosticsVmExt','_vmNodeType0Name')]",
|
|
"properties": {
|
|
"type": "LinuxDiagnostic",
|
|
"autoUpgradeMinorVersion": true,
|
|
"protectedSettings": {
|
|
"storageAccountName": "[parameters('applicationDiagnosticsStorageAccountName')]",
|
|
"storageAccountKey": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('applicationDiagnosticsStorageAccountName')),'2015-05-01-preview').key1]",
|
|
"storageAccountEndPoint": "https://core.windows.net/"
|
|
},
|
|
"publisher": "Microsoft.OSTCExtensions",
|
|
"settings": {
|
|
"xmlCfg": "[base64(concat(variables('wadcfgxstart'),variables('wadmetricsresourceid0'),variables('wadcfgxend')))]",
|
|
"StorageAccount": "[parameters('applicationDiagnosticsStorageAccountName')]"
|
|
},
|
|
"typeHandlerVersion": "2.3"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"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",
|
|
"managedDisk": {
|
|
"storageAccountType": "[parameters('storageAccountType')]"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"sku": {
|
|
"name": "[parameters('vmNodeType0Size')]",
|
|
"capacity": "[parameters('nt0InstanceCount')]",
|
|
"tier": "Standard"
|
|
},
|
|
"tags": {
|
|
"resourceType": "Service Fabric",
|
|
"clusterName": "[parameters('clusterName')]"
|
|
}
|
|
},
|
|
{
|
|
"apiVersion": "2017-07-01-preview",
|
|
"type": "Microsoft.ServiceFabric/clusters",
|
|
"name": "[parameters('clusterName')]",
|
|
"location": "[parameters('clusterLocation')]",
|
|
"dependsOn": [
|
|
"[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]"
|
|
],
|
|
"properties": {
|
|
"addonFeatures": [
|
|
"DnsService"
|
|
],
|
|
"clientCertificateCommonNames": [],
|
|
"clientCertificateThumbprints": [],
|
|
"clusterCodeVersion": "6.0.120.1",
|
|
"clusterState": "Default",
|
|
"diagnosticsStorageAccountConfig": {
|
|
"blobEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.blob]",
|
|
"protectedAccountKeyName": "StorageAccountKey1",
|
|
"queueEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName')), variables('storageApiVersion')).primaryEndpoints.queue]",
|
|
"storageAccountName": "[parameters('supportLogStorageAccountName')]",
|
|
"tableEndpoint": "[reference(concat('Microsoft.Storage/storageAccounts/', parameters('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,
|
|
"vmInstanceCount": "[parameters('nt0InstanceCount')]"
|
|
}
|
|
],
|
|
"provisioningState": "Default",
|
|
"reliabilityLevel": "None",
|
|
"upgradeMode": "Manual",
|
|
"vmImage": "Linux"
|
|
},
|
|
"tags": {
|
|
"resourceType": "Service Fabric",
|
|
"clusterName": "[parameters('clusterName')]"
|
|
}
|
|
}
|
|
],
|
|
"outputs": {
|
|
"clusterProperties": {
|
|
"value": "[reference(parameters('clusterName'))]",
|
|
"type": "object"
|
|
}
|
|
}
|
|
}
|