Last active
November 2, 2017 13:30
-
-
Save hantuzun/2c041732bd888fa3a6d048bbd5b1f375 to your computer and use it in GitHub Desktop.
dcos-artifacts/testing/root/azure/acs-1master.azuredeploy.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"contentVersion": "1.0.0.0", | |
"variables": { | |
"masterStorageAccountName": "[concat(variables('storageAccountBaseName'), 'mstr0')]", | |
"orchestratorName": "dcos", | |
"agentEndpointDNSNamePrefix": "[tolower(parameters('agentEndpointDNSNamePrefix'))]", | |
"agentsPublicLbBackendPoolName": "[concat(variables('orchestratorName'), '-agent-pool-', variables('nameSuffix'))]", | |
"masterCustomScript": "[concat('/bin/bash -c \"/bin/bash /opt/azure/containers/configure-mesos-cluster.sh ',variables('clusterInstallParameters'),' >> /var/log/azure/cluster-bootstrap.log 2>&1\"')]", | |
"enableNewStorageAccountNaming": "[parameters('enableNewStorageAccountNaming')]", | |
"masterSizes": [ | |
"Standard_D2_v2", | |
"Standard_A2" | |
], | |
"vmsPerStorageAccount": "[parameters('vmsPerStorageAccount')]", | |
"agentPublicVMNamePrefix": "[concat(variables('orchestratorName'), '-agent-public-', variables('nameSuffix'))]", | |
"agentPublicAddressPrefix": "10.0.0.0/11", | |
"agentPublicCount": "[variables('agentPublicCountPerMasterCount')[string(variables('masterCount'))]]", | |
"storageAccountBaseNameNewSuffix-false": "", | |
"accountid": "[concat('/subscriptions/',subscription().subscriptionId,'/resourceGroups/',variables('diagnosticsStorageAccountResourceGroup'),'/providers/','Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName'))]", | |
"agentStoragePrivateAccountName": "[concat(variables('storageAccountBaseName'), 'agntpri')]", | |
"storageLocations": [ | |
"[resourceGroup().location]", | |
"East US 2 (Stage)" | |
], | |
"agentPrivateCount": "[parameters('agentCount')]", | |
"agentStoragePublicAccountName": "[concat(variables('storageAccountBaseName'), 'agntpub')]", | |
"clusterInstallParameters": "[concat(variables('masterCount'), ' ',variables('masterVMNamePrefix'), ' ',variables('masterFirstAddr'), ' ',variables('swarmEnabled'),' ',variables('marathonEnabled'),' ',variables('chronosEnabled'),' ',variables('omsStorageAccount'),' ',variables('omsStorageAccountKey'),' ', variables('adminUsername'),' ',variables('postInstallScriptURI'))]", | |
"agentCustomScript": "[concat('/usr/bin/nohup /bin/bash -c \"/bin/bash /opt/azure/containers/configure-mesos-cluster.sh ',variables('clusterInstallParameters'),' >> /var/log/azure/cluster-bootstrap.log 2>&1 &\" &')]", | |
"vmSizesMap": { | |
"Standard_DS13": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_D5_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_GS1": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_DS1": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_D11": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D14": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D14_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A8": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D12": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D2_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D1": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_G4": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A9": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_DS12": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_GS2": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_GS3": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_DS4": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_D13_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A5": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D11_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_DS2": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_A6": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_DS3": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_D4": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A7": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D3_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_G2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A3": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_DS11": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_GS5": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_G5": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D12_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D1_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A10": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D3": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_D4_v2": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_G1": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_DS14": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_GS4": { | |
"storageAccountType": "Premium_LRS" | |
}, | |
"Standard_D13": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A11": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_G3": { | |
"storageAccountType": "Standard_LRS" | |
}, | |
"Standard_A4": { | |
"storageAccountType": "Standard_LRS" | |
} | |
}, | |
"setBrowserFirstTabDefaultSuffix": "0:5050", | |
"masterNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('masterNSGName'))]", | |
"agentsPublicLbID": "[resourceId('Microsoft.Network/loadBalancers',variables('agentsPublicLbName'))]", | |
"agentsPublicLbName": "[concat(variables('orchestratorName'), '-agent-lb-', variables('nameSuffix'))]", | |
"osImageVersion": "[variables('linuxVersion')]", | |
"swarmEnabled": false, | |
"wadcfgxend": "[concat('\"><MetricAggregation scheduledTransferPeriod=\"PT1H\"/><MetricAggregation scheduledTransferPeriod=\"PT1M\"/></Metrics></DiagnosticMonitorConfiguration></WadCfg>')]", | |
"enableVMDiagnostics": "[parameters('enableVMDiagnostics')]", | |
"storageLocation": "[variables('storageLocations')[variables('isValidation')]]", | |
"masterVMNic": [ | |
"[concat(variables('masterVMNamePrefix'), 'nic-0')]", | |
"[concat(variables('masterVMNamePrefix'), 'nic-1')]", | |
"[concat(variables('masterVMNamePrefix'), 'nic-2')]", | |
"[concat(variables('masterVMNamePrefix'), 'nic-3')]", | |
"[concat(variables('masterVMNamePrefix'), 'nic-4')]", | |
"[concat(variables('masterVMNamePrefix'), 'nic-5')]", | |
"[concat(variables('masterVMNamePrefix'), 'nic-6')]" | |
], | |
"masterAddressPrefix": "172.16.0.0/24", | |
"vnetID": "[resourceId('Microsoft.Network/virtualNetworks',variables('virtualNetworkName'))]", | |
"agentPrivateVMSSCount": 1, | |
"agentPublicCountPerMasterCount": { | |
"1": 1, | |
"3": 3, | |
"5": 3 | |
}, | |
"omsStorageAccount": "none", | |
"agentsPublicLbIPConfigID": "[concat(variables('agentsPublicLbID'),'/frontendIPConfigurations/', variables('agentsPublicLbIPConfigName'))]", | |
"agentStorageAccountsCount": 5, | |
"masterLbID": "[resourceId('Microsoft.Network/loadBalancers',variables('masterLbName'))]", | |
"linuxPublisher": "[parameters('linuxPublisher')]", | |
"wadlogs": "<WadCfg><DiagnosticMonitorConfiguration>", | |
"setBrowserFirstTabDefaultPrefix": "powershell.exe -ExecutionPolicy Unrestricted -command \"New-Item -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer' ; New-Item -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\BrowserEmulation' ; New-ItemProperty -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\BrowserEmulation' -Name IntranetCompatibilityMode -Value 0 -Type DWord; New-Item -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\Main' ; New-ItemProperty -Path HKLM:'\\SOFTWARE\\Policies\\Microsoft\\Internet Explorer\\Main' -Name 'Start Page' -Type String -Value http://\"", | |
"masterHttpsPort443InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/HTTPSPort443-',variables('masterVMNamePrefix'),'0')]", | |
"virtualNetworkName": "[concat(variables('orchestratorName'), '-vnet-', variables('nameSuffix'))]", | |
"masterEndpointDNSNamePrefix": "[tolower(parameters('masterEndpointDNSNamePrefix'))]", | |
"diagnosticsStorageAccountResourceGroup": "[resourceGroup().name]", | |
"masterLbInboundNatRules": [ | |
[ | |
{ | |
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'0')]" | |
}, | |
{ | |
"id": "[variables('masterSshPort22InboundNatRuleId')]" | |
}, | |
{ | |
"id": "[variables('masterHttpPort80InboundNatRuleId')]" | |
}, | |
{ | |
"id": "[variables('masterHttpsPort443InboundNatRuleId')]" | |
} | |
], | |
[ | |
{ | |
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'1')]" | |
} | |
], | |
[ | |
{ | |
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'2')]" | |
} | |
], | |
[ | |
{ | |
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'3')]" | |
} | |
], | |
[ | |
{ | |
"id": "[concat(variables('masterSshInboundNatRuleIdPrefix'),'4')]" | |
} | |
] | |
], | |
"storageAccountPrefixes": [ | |
"0", | |
"6", | |
"c", | |
"i", | |
"o", | |
"u", | |
"1", | |
"7", | |
"d", | |
"j", | |
"p", | |
"v", | |
"2", | |
"8", | |
"e", | |
"k", | |
"q", | |
"w", | |
"3", | |
"9", | |
"f", | |
"l", | |
"r", | |
"x", | |
"4", | |
"a", | |
"g", | |
"m", | |
"s", | |
"y", | |
"5", | |
"b", | |
"h", | |
"n", | |
"t", | |
"z" | |
], | |
"masterPublicIPAddressName": "[concat(variables('orchestratorName'), '-master-ip-', variables('masterEndpointDNSNamePrefix'), '-', variables('nameSuffix'))]", | |
"isValidation": "[parameters('isValidation')]", | |
"windowsAdminPassword": "[parameters('windowsAdminPassword')]", | |
"masterFirstAddr": 5, | |
"masterSshInboundNatRuleIdPrefix": "[concat(variables('masterLbID'),'/inboundNatRules/SSH-',variables('masterVMNamePrefix'))]", | |
"wadcfgxstart": "[concat(variables('wadlogs'),variables(concat('wadperfcounters1','-',variables('enableVMDiagnostics'))),variables(concat('wadperfcounters2','-',variables('enableVMDiagnostics'))),'<Metrics resourceId=\"')]", | |
"agentPrivateVMNamePrefix": "[concat(variables('orchestratorName'), '-agent-private-', variables('nameSuffix'))]", | |
"agentPrivateSubnetName": "[concat(variables('orchestratorName'), '-agentPrivateSubnet')]", | |
"wadperfcounters2-true": "<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>", | |
"storageAccountBaseName": "[uniqueString(concat(variables('masterEndpointDNSNamePrefix'),variables(concat('storageAccountBaseNameNewSuffix', '-', variables('enableNewStorageAccountNaming'))), variables('orchestratorName')))]", | |
"apiVersionStorage": "2015-06-15", | |
"linuxConfigurations": [ | |
{}, | |
{ | |
"disablePasswordAuthentication": "[variables('disablePasswordAuthentication')]", | |
"ssh": { | |
"publicKeys": [ | |
{ | |
"keyData": "[variables('sshRSAPublicKey')]", | |
"path": "[variables('sshKeyPath')]" | |
} | |
] | |
} | |
} | |
], | |
"oauthEnabled": "[parameters('oauthEnabled')]", | |
"masterHttpPort80InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/HTTPPort80-',variables('masterVMNamePrefix'),'0')]", | |
"windowsAdminUsername": "[parameters('windowsAdminUsername')]", | |
"masterVMNamePrefix": "[concat(variables('orchestratorName'), '-master-', variables('nameSuffix'), '-')]", | |
"wadperfcounters2-false": "", | |
"omsStorageAccountKey": "none", | |
"adminPassword": "[parameters('linuxAdminPassword')]", | |
"agentPublicNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('agentPublicNSGName'))]", | |
"disablePasswordAuthentication": "[parameters('disablePasswordAuthentication')]", | |
"masterLbName": "[concat(variables('orchestratorName'), '-master-lb-', variables('nameSuffix'))]", | |
"osImageOffer": "[variables('linuxOffer')]", | |
"agentPrivateNSGID": "[resourceId('Microsoft.Network/networkSecurityGroups',variables('agentPrivateNSGName'))]", | |
"linuxConfiguration": "[variables('linuxConfigurations')[variables('setLinuxConfigurationForVMCreate')]]", | |
"masterSshPort22InboundNatRuleName": "[concat(variables('masterLbName'),'/SSHPort22-',variables('masterVMNamePrefix'),'0')]", | |
"masterCount": 1, | |
"masterHttpsPort443InboundNatRuleName": "[concat(variables('masterLbName'),'/HTTPSPort443-',variables('masterVMNamePrefix'),'0')]", | |
"diagnosticsStorageAccountName-true": "[variables('diagnosticsStorageAccountName')]", | |
"setLinuxConfigurationForVMCreate": "[parameters('setLinuxConfigurationForVMCreate')]", | |
"wadperfcounters1-false": "", | |
"nameSuffix": "[parameters('nameSuffix')]", | |
"masterSubnetName": "[concat(variables('orchestratorName'), '-masterSubnet')]", | |
"wadperfcounters1-true": "<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>", | |
"osImageSKU": "[variables('linuxSku')]", | |
"agentPublicSubnetName": "[concat(variables('orchestratorName'), '-agentPublicSubnet')]", | |
"agentPrivateNSGName": "[concat(variables('orchestratorName'), '-agent-private-nsg-', variables('nameSuffix'))]", | |
"storageAccountBaseNameNewSuffix-true": "[resourceGroup().location]", | |
"masterLbBackendPoolName": "[concat(variables('orchestratorName'), '-master-pool-', variables('nameSuffix'))]", | |
"TemplateGenerationDate": "2017-11-02 13:12:31.726150", | |
"postInstallScriptURI": "[parameters('postInstallScriptURI')]", | |
"agentPublicNSGName": "[concat(variables('orchestratorName'), '-agent-public-nsg-', variables('nameSuffix'))]", | |
"chronosEnabled": true, | |
"apiVersionDefault": "2016-03-30", | |
"masterSshInboundNatRuleNamePrefix": "[concat(variables('masterLbName'),'/SSH-',variables('masterVMNamePrefix'))]", | |
"linuxSku": "[parameters('linuxSku')]", | |
"masterVMSize": "[variables('masterSizes')[variables('isValidation')]]", | |
"agentAvailabilitySet": "[concat(variables('orchestratorName'), '-agent-availabilitySet-', variables('nameSuffix'))]", | |
"osImagePublisher": "[variables('linuxPublisher')]", | |
"masterAvailabilitySet": "[concat(variables('orchestratorName'), '-master-availabilitySet-', variables('nameSuffix'))]", | |
"masterHttpPort80InboundNatRuleName": "[concat(variables('masterLbName'),'/HTTPPort80-',variables('masterVMNamePrefix'),'0')]", | |
"masterStorageAccountExhibitorName": "[concat(variables('storageAccountBaseName'), 'exhb0')]", | |
"DcosImageCommit": "fb460ce6c54e36b48a3188aff6fcbe631012f84d", | |
"masterLbIPConfigID": "[concat(variables('masterLbID'),'/frontendIPConfigurations/', variables('masterLbIPConfigName'))]", | |
"marathonEnabled": true, | |
"agentAddressPrefix": "10.0.0.0/8", | |
"agentsPublicLbIPConfigName": "[concat(variables('orchestratorName'), '-agent-lbFrontEnd-', variables('nameSuffix'))]", | |
"diagnosticsStorageAccountName": "[concat(variables('storageAccountBaseName'), 'diag', '0')]", | |
"masterNSGName": "[concat(variables('orchestratorName'), '-master-nsg-', variables('nameSuffix'))]", | |
"agentFirstAddr": 20, | |
"storageAccountPrefixesCount": "[length(variables('storageAccountPrefixes'))]", | |
"agentsPerIPv4Octet": 200, | |
"masterSshPort22InboundNatRuleId": "[concat(variables('masterLbID'),'/inboundNatRules/SSHPort22-',variables('masterVMNamePrefix'),'0')]", | |
"agentPrivateAddressPrefix": "10.32.0.0/11", | |
"sshRSAPublicKey": "[parameters('sshRSAPublicKey')]", | |
"agentVMSize": "[parameters('agentVMSize')]", | |
"sshKeyPath": "[concat('/home/', variables('adminUsername'), '/.ssh/authorized_keys')]", | |
"agentPublicVMSSCount": 1, | |
"masterLbIPConfigName": "[concat(variables('orchestratorName'), '-master-lbFrontEnd-', variables('nameSuffix'))]", | |
"adminUsername": "[parameters('linuxAdminUsername')]", | |
"masterSubnetRef": "[concat(variables('vnetID'),'/subnets/',variables('masterSubnetName'))]", | |
"linuxVersion": "[parameters('linuxVersion')]", | |
"allowMasterHttp": { | |
"true": "Allow", | |
"false": "Deny" | |
}, | |
"linuxOffer": "[parameters('linuxOffer')]", | |
"agentPublicIPAddressName": "[concat(variables('orchestratorName'), '-agent-ip-', variables('agentEndpointDNSNamePrefix'), '-', variables('nameSuffix'))]", | |
"diagnosticsStorageAccountName-false": "" | |
}, | |
"resources": [ | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"properties": { | |
"accountType": "[variables('vmSizesMap')[variables('masterVMSize')].storageAccountType]" | |
}, | |
"location": "[variables('storageLocation')]", | |
"apiVersion": "[variables('apiVersionStorage')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]" | |
], | |
"name": "[variables('masterStorageAccountName')]" | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"properties": { | |
"accountType": "Standard_LRS" | |
}, | |
"location": "[variables('storageLocation')]", | |
"apiVersion": "[variables('apiVersionStorage')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]" | |
], | |
"name": "[variables('masterStorageAccountExhibitorName')]" | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"properties": { | |
"accountType": "Standard_LRS" | |
}, | |
"location": "[variables('storageLocation')]", | |
"apiVersion": "[variables('apiVersionStorage')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]" | |
], | |
"name": "[variables('diagnosticsStorageAccountName')]" | |
}, | |
{ | |
"type": "Microsoft.Network/virtualNetworks", | |
"properties": { | |
"subnets": [ | |
{ | |
"properties": { | |
"addressPrefix": "[variables('masterAddressPrefix')]" | |
}, | |
"name": "[variables('masterSubnetName')]" | |
}, | |
{ | |
"properties": { | |
"addressPrefix": "[variables('agentPublicAddressPrefix')]", | |
"networkSecurityGroup": { | |
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('agentPublicNSGName'))]" | |
} | |
}, | |
"name": "[variables('agentPublicSubnetName')]" | |
}, | |
{ | |
"properties": { | |
"addressPrefix": "[variables('agentPrivateAddressPrefix')]", | |
"networkSecurityGroup": { | |
"id": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('agentPrivateNSGName'))]" | |
} | |
}, | |
"name": "[variables('agentPrivateSubnetName')]" | |
} | |
], | |
"addressSpace": { | |
"addressPrefixes": [ | |
"[variables('masterAddressPrefix')]", | |
"[variables('agentAddressPrefix')]" | |
] | |
} | |
}, | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/networkSecurityGroups/', variables('agentPublicNSGName'))]", | |
"[concat('Microsoft.Network/networkSecurityGroups/', variables('agentPrivateNSGName'))]" | |
], | |
"name": "[variables('virtualNetworkName')]" | |
}, | |
{ | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"type": "Microsoft.Compute/availabilitySets", | |
"properties": {}, | |
"name": "[variables('masterAvailabilitySet')]" | |
}, | |
{ | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"type": "Microsoft.Network/publicIPAddresses", | |
"properties": { | |
"publicIPAllocationMethod": "Dynamic", | |
"dnsSettings": { | |
"domainNameLabel": "[variables('masterEndpointDNSNamePrefix')]" | |
} | |
}, | |
"name": "[variables('masterPublicIPAddressName')]" | |
}, | |
{ | |
"type": "Microsoft.Network/loadBalancers", | |
"properties": { | |
"backendAddressPools": [ | |
{ | |
"name": "[variables('masterLbBackendPoolName')]" | |
} | |
], | |
"frontendIPConfigurations": [ | |
{ | |
"properties": { | |
"publicIPAddress": { | |
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('masterPublicIPAddressName'))]" | |
} | |
}, | |
"name": "[variables('masterLbIPConfigName')]" | |
} | |
] | |
}, | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]" | |
], | |
"name": "[variables('masterLbName')]" | |
}, | |
{ | |
"type": "Microsoft.Network/loadBalancers/inboundNatRules", | |
"properties": { | |
"enableFloatingIP": false, | |
"frontendIPConfiguration": { | |
"id": "[variables('masterLbIPConfigID')]" | |
}, | |
"protocol": "tcp", | |
"frontendPort": "[copyIndex(2200)]", | |
"backendPort": 22 | |
}, | |
"location": "[resourceGroup().location]", | |
"copy": { | |
"count": "[variables('masterCount')]", | |
"name": "masterLbLoopNode" | |
}, | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[variables('masterLbID')]" | |
], | |
"name": "[concat(variables('masterLbName'), '/', 'SSH-', variables('masterVMNamePrefix'), copyIndex())]" | |
}, | |
{ | |
"type": "Microsoft.Network/loadBalancers/inboundNatRules", | |
"properties": { | |
"frontendIPConfiguration": { | |
"id": "[variables('masterLbIPConfigID')]" | |
}, | |
"backendPort": 2222, | |
"protocol": "tcp", | |
"frontendPort": 22, | |
"enableFloatingIP": false | |
}, | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[variables('masterLbID')]" | |
], | |
"name": "[variables('masterSshPort22InboundNatRuleName')]" | |
}, | |
{ | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"type": "Microsoft.Network/networkSecurityGroups", | |
"properties": { | |
"securityRules": [ | |
{ | |
"properties": { | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*", | |
"direction": "Inbound", | |
"priority": 200, | |
"destinationPortRange": 22, | |
"description": "Allow SSH", | |
"protocol": "Tcp", | |
"access": "Allow", | |
"sourceAddressPrefix": "*" | |
}, | |
"name": "ssh" | |
}, | |
{ | |
"properties": { | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*", | |
"direction": "Inbound", | |
"priority": 201, | |
"destinationPortRange": 2222, | |
"description": "Allow SSH", | |
"protocol": "Tcp", | |
"access": "Allow", | |
"sourceAddressPrefix": "*" | |
}, | |
"name": "sshPort22" | |
}, | |
{ | |
"properties": { | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*", | |
"direction": "Inbound", | |
"priority": 202, | |
"destinationPortRange": 80, | |
"description": "HTTP Port 80", | |
"protocol": "Tcp", | |
"access": "[variables('allowMasterHttp')[variables('oauthEnabled')]]", | |
"sourceAddressPrefix": "*" | |
}, | |
"name": "httpPort80" | |
}, | |
{ | |
"properties": { | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*", | |
"direction": "Inbound", | |
"priority": 203, | |
"destinationPortRange": 443, | |
"description": "HTTPS Port 443", | |
"protocol": "Tcp", | |
"access": "[variables('allowMasterHttp')[variables('oauthEnabled')]]", | |
"sourceAddressPrefix": "*" | |
}, | |
"name": "httpsPort443" | |
} | |
] | |
}, | |
"name": "[variables('masterNSGName')]" | |
}, | |
{ | |
"type": "Microsoft.Network/loadBalancers/inboundNatRules", | |
"properties": { | |
"frontendIPConfiguration": { | |
"id": "[variables('masterLbIPConfigID')]" | |
}, | |
"backendPort": 80, | |
"protocol": "tcp", | |
"frontendPort": 80, | |
"enableFloatingIP": false | |
}, | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[variables('masterLbID')]" | |
], | |
"name": "[variables('masterHttpPort80InboundNatRuleName')]" | |
}, | |
{ | |
"type": "Microsoft.Network/loadBalancers/inboundNatRules", | |
"properties": { | |
"frontendIPConfiguration": { | |
"id": "[variables('masterLbIPConfigID')]" | |
}, | |
"backendPort": 443, | |
"protocol": "tcp", | |
"frontendPort": 443, | |
"enableFloatingIP": false | |
}, | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[variables('masterLbID')]" | |
], | |
"name": "[variables('masterHttpsPort443InboundNatRuleName')]" | |
}, | |
{ | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"type": "Microsoft.Network/networkSecurityGroups", | |
"name": "[variables('agentPrivateNSGName')]" | |
}, | |
{ | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"type": "Microsoft.Network/networkSecurityGroups", | |
"properties": { | |
"securityRules": [ | |
{ | |
"properties": { | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*", | |
"direction": "Inbound", | |
"priority": 200, | |
"destinationPortRange": 80, | |
"description": "Allow HTTP traffic from the Internet to Public Agents", | |
"protocol": "*", | |
"access": "Allow", | |
"sourceAddressPrefix": "Internet" | |
}, | |
"name": "Allow_HTTP" | |
}, | |
{ | |
"properties": { | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*", | |
"direction": "Inbound", | |
"priority": 300, | |
"destinationPortRange": 443, | |
"description": "Allow HTTPS traffic from the Internet to Public Agents", | |
"protocol": "*", | |
"access": "Allow", | |
"sourceAddressPrefix": "Internet" | |
}, | |
"name": "Allow_HTTPS" | |
}, | |
{ | |
"properties": { | |
"sourcePortRange": "*", | |
"destinationAddressPrefix": "*", | |
"direction": "Inbound", | |
"priority": 400, | |
"destinationPortRange": 8080, | |
"description": "Allow 8080 traffic from the Internet to Public Agents", | |
"protocol": "*", | |
"access": "Allow", | |
"sourceAddressPrefix": "Internet" | |
}, | |
"name": "Allow_8080" | |
} | |
] | |
}, | |
"name": "[variables('agentPublicNSGName')]" | |
}, | |
{ | |
"type": "Microsoft.Network/networkInterfaces", | |
"properties": { | |
"networkSecurityGroup": { | |
"id": "[variables('masterNSGID')]" | |
}, | |
"ipConfigurations": [ | |
{ | |
"properties": { | |
"privateIPAllocationMethod": "Static", | |
"loadBalancerInboundNatRules": "[variables('masterLbInboundNatRules')[copyIndex()]]", | |
"subnet": { | |
"id": "[variables('masterSubnetRef')]" | |
}, | |
"loadBalancerBackendAddressPools": [ | |
{ | |
"id": "[concat(variables('masterLbID'), '/backendAddressPools/', variables('masterLbBackendPoolName'))]" | |
} | |
], | |
"privateIPAddress": "[concat(split(variables('masterAddressPrefix'),'0/24')[0], copyIndex(variables('masterFirstAddr')))]" | |
}, | |
"name": "ipConfigNode" | |
} | |
] | |
}, | |
"location": "[resourceGroup().location]", | |
"copy": { | |
"count": "[variables('masterCount')]", | |
"name": "nicLoopNode" | |
}, | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[variables('vnetID')]", | |
"[concat(variables('masterLbID'),'/inboundNatRules/SSH-',variables('masterVMNamePrefix'),copyIndex())]", | |
"[variables('masterSshPort22InboundNatRuleId')]", | |
"[variables('masterHttpPort80InboundNatRuleId')]", | |
"[variables('masterHttpsPort443InboundNatRuleId')]", | |
"[variables('masterNSGID')]" | |
], | |
"name": "[concat(variables('masterVMNamePrefix'), 'nic-', copyIndex())]" | |
}, | |
{ | |
"type": "Microsoft.Compute/virtualMachines", | |
"properties": { | |
"diagnosticsProfile": { | |
"bootDiagnostics": { | |
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]", | |
"enabled": "[variables('enableVMDiagnostics')]" | |
} | |
}, | |
"networkProfile": { | |
"networkInterfaces": [ | |
{ | |
"id": "[resourceId('Microsoft.Network/networkInterfaces',concat(variables('masterVMNamePrefix'), 'nic-', copyIndex()))]" | |
} | |
] | |
}, | |
"availabilitySet": { | |
"id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySet'))]" | |
}, | |
"osProfile": { | |
"computername": "[concat(variables('masterVMNamePrefix'), copyIndex())]", | |
"adminPassword": "[variables('adminPassword')]", | |
"adminUsername": "[variables('adminUsername')]", | |
"customData": "[base64(concat('#cloud-config\n\n', '{\"bootcmd\": [\"bash -c \\\"if [ ! -f /var/lib/sdb-gpt ];then echo DCOS-5890;parted -s /dev/sdb mklabel gpt;touch /var/lib/sdb-gpt;fi\\\"\"], \"disk_setup\": {\"ephemeral0\": {\"layout\": [45, 45, 10], \"overwrite\": true, \"table_type\": \"gpt\"}}, \"fs_setup\": [{\"device\": \"ephemeral0.1\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.2\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.3\", \"filesystem\": \"ext4\", \"overwrite\": true}], \"mounts\": [[\"ephemeral0.1\", \"/var/lib/mesos\"], [\"ephemeral0.2\", \"/var/lib/docker\"], [\"ephemeral0.3\", \"/var/tmp\"]], \"runcmd\": [[\"ln\", \"-s\", \"/bin/rm\", \"/usr/bin/rm\"], [\"ln\", \"-s\", \"/bin/mkdir\", \"/usr/bin/mkdir\"], [\"ln\", \"-s\", \"/bin/tar\", \"/usr/bin/tar\"], [\"ln\", \"-s\", \"/bin/ln\", \"/usr/bin/ln\"], [\"ln\", \"-s\", \"/bin/cp\", \"/usr/bin/cp\"], [\"ln\", \"-s\", \"/bin/systemctl\", \"/usr/bin/systemctl\"], [\"ln\", \"-s\", \"/bin/mount\", \"/usr/bin/mount\"], [\"ln\", \"-s\", \"/bin/bash\", \"/usr/bin/bash\"], [\"ln\", \"-s\", \"/usr/sbin/useradd\", \"/usr/bin/useradd\"], [\"systemctl\", \"disable\", \"--now\", \"resolvconf.service\"], [\"systemctl\", \"mask\", \"--now\", \"lxc-net.service\"], [\"systemctl\", \"disable\", \"--now\", \"unscd.service\"], [\"systemctl\", \"stop\", \"--now\", \"unscd.service\"], \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/1.deb https://az837203.vo.msecnd.net/dcos-deps/libipset3_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/2.deb https://az837203.vo.msecnd.net/dcos-deps/ipset_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/3.deb https://az837203.vo.msecnd.net/dcos-deps/unzip_6.0-20ubuntu1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/4.deb https://az837203.vo.msecnd.net/dcos-deps/libltdl7_2.4.6-0.1_amd64.deb\", \"sed -i \\\"s/^Port 22$/Port 22\\\\nPort 2222/1\\\" /etc/ssh/sshd_config\", \"service ssh restart\", \"bash -c \\\"try=1;until dpkg -i /var/tmp/{1,2,3,4}.deb || ((try>9));do echo retry \\\\$((try++));sleep \\\\$((try*try));done\\\"\", [\"cp\", \"-p\", \"/etc/resolv.conf\", \"/tmp/resolv.conf\"], [\"rm\", \"-f\", \"/etc/resolv.conf\"], [\"cp\", \"-p\", \"/tmp/resolv.conf\", \"/etc/resolv.conf\"], [\"systemctl\", \"start\", \"dcos-docker-install.service\"], [\"systemctl\", \"start\", \"dcos-config-writer.service\"], [\"systemctl\", \"restart\", \"systemd-journald.service\"], [\"systemctl\", \"restart\", \"docker.service\"], [\"systemctl\", \"start\", \"dcos-link-env.service\"], [\"systemctl\", \"enable\", \"dcos-setup.service\"], [\"systemctl\", \"--no-block\", \"start\", \"dcos-setup.service\"]], \"write_files\": [{\"content\": \"file:///home/han/dcos-artifacts/testing\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"[\\\"adminrouter--cbcc783426bfa7590ccbb139e279264d67767fb1\\\", \\\"avro-cpp--eb5e3a5a46ecada8ab9e4f8651cb20577453f86f\\\", \\\"boost-libs--2f88af98c228b53e617a427f5b0f347221d7c840\\\", \\\"bootstrap--d45adc8bfd3bc668de1c0d40a58a4c32a753e53e\\\", \\\"boto--c5e8100235e6303caedf630ccef4bb1b1f8f8431\\\", \\\"check-time--948f15b2663b077ea1db65502eabd44c603be20a\\\", \\\"cni--ad8edf651596cb7f67ea3d73e20f95dd0caba1e5\\\", \\\"cosmos--fa7ab42b9a218cecdd080a26e0549277f1bb3b86\\\", \\\"curl--aa99af9bd6c7dda375e4b78b9b27a8d1752c143c\\\", \\\"dcos-checks--7f40f1d77c90f0dedbb9b68e85e808588c157fc9\\\", \\\"dcos-cni--2b9a1e6dff72c4127ce088638498c9a3d681439d\\\", \\\"dcos-config--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-diagnostics--3a01e8f5336b151b2580327dcd9b6c6e8001e1b8\\\", \\\"dcos-history--d443f70ccccc7ccc9ff624e173e023245ad2b272\\\", \\\"dcos-image--b1ef26af36a630c85b3ea1b72bd9c0b8c11cc716\\\", \\\"dcos-image-deps--9e5cd71881382782919bcf97f0cc83c9431d29e0\\\", \\\"dcos-integration-test--adb128bcc0f75a24894eb7eb1cf8173c7a8d9298\\\", \\\"dcos-log--ccefbe47373e2597121155e86337c01fb8bdda8a\\\", \\\"dcos-metadata--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-metrics--63f96229b73e595c294954b961005bedaf25654f\\\", \\\"dcos-oauth--00d6677bbc0f6a82f83da98614f430aaab42f787\\\", \\\"dcos-signal--2a63143c2b44cc81639bcfa9008d774d86d9faa2\\\", \\\"dcos-test-utils--d551873c0cbfde0ed5e92300a5d0858440cddfad\\\", \\\"dcos-ui--cc2e3d26537ea190efacd6f899dd4cc2210d45b7\\\", \\\"dnspython--0241016f3bf1fdd7e43cde67856d2128c9323fdf\\\", \\\"docker-gc--74a4e6a1cd21833fd1a897d9dacaf36200be2d3f\\\", \\\"dvdcli--ee85411e3cb9f0988ed54b5cc0789172b887f12f\\\", \\\"erlang--0861859fe5fbf2419ea8ea642eb5bd489c8ce8f4\\\", \\\"exhibitor--5c1f80c3f502eb19a7ff34ba1049c835e7c89745\\\", \\\"flask--5f8e4dca26dce54e9694d0d9277c19c354b80089\\\", \\\"java--557408224206ff613ca8edec15adc6bb799a43de\\\", \\\"libevent--278aa5fab41ae40d3570b978648c3db3dc70d3b5\\\", \\\"libffi--d6953b348a0dd1af27dc63e847c34c19dd80fc89\\\", \\\"libsodium--d73b59dd3a3358185b5fea355f99ce811d517b8a\\\", \\\"logrotate--92edcfe65c77d675f96dc1dfae1b176e0399f312\\\", \\\"marathon--13360033dd6b5216d0093ec1150bce6b79d9e7e2\\\", \\\"mesos--8fcb46f072de3c42fb7b7dfd0e1a864b3753dd11\\\", \\\"mesos-dns--600da87080b7634f2380594499004a7ff0b34662\\\", \\\"mesos-modules--9eff953b785f921c4e1419b9d5feb9bbd022e1fb\\\", \\\"metronome--a1915935680f1ac59a6dd823c8b9e4c828529b47\\\", \\\"navstar--28db3ac87dc6dc1b0bd398ef26d19dadff0f06f2\\\", \\\"ncurses--a4d7f789e38cae7507d14073a66746d177540d59\\\", \\\"octarine--4e37c062d2f145f9c2ce01d30dadf72c2aac5c4a\\\", \\\"openssl--68a61d031ffb58932c09c3cb9a263246324c9eda\\\", \\\"pkgpanda-api--dafcee8593f6b727fc41447adb1eebc1d8983a1a\\\", \\\"pkgpanda-role--9d8e5111235ab331698045e9451946a32754df67\\\", \\\"pytest--771e3dbc784cd72812ffbaef726fb07065d56bf7\\\", \\\"python--955da518f02d7cf29d663741fdabb01a1c1996c6\\\", \\\"python-azure-mgmt-resource--1f70b4387fc5122ce485c125af783b690c61577e\\\", \\\"python-cryptography--c63062028a7235a6eb1166856f2a69da223d2d14\\\", \\\"python-dateutil--83a5ffb68a3b1331d428bc4ceec36f5e6c94d9d8\\\", \\\"python-docopt--69d6958de1e08429158ec8351fd4ae81232aaa24\\\", \\\"python-gunicorn--a58ae272e7a51110b14dad6768c2178783362e96\\\", \\\"python-isodate--cf30adec6a7a83dc07c4d9796470a6a9aad38460\\\", \\\"python-jinja2--c0eadbfd2b19dead679d27c46de58545c365935d\\\", \\\"python-kazoo--252c8c7a908b5a634ffbc6df3d3943bf26c879c5\\\", \\\"python-markupsafe--215a21c08e29eb804ecbe7bf61b103a58f30728b\\\", \\\"python-passlib--bc298e4968d738f2f1e6e87d317e7c73de73f471\\\", \\\"python-pyyaml--c12dac01b6cc0f0554a7af660e9b34d4edceea00\\\", \\\"python-requests--8f2c590a86d38aecdda8689585f9a615fe06d7ba\\\", \\\"python-retrying--b564870447691f62ee5e795ceef8476ba6498d43\\\", \\\"python-tox--ed630faec944a7e5a26887b9112f0a3791c7c977\\\", \\\"rexray--da7f17f8a4b772c0bac3f8d289a08abd4ff272b4\\\", \\\"six--070835068ef97ddc1d92a3b38f2771c6ea3a598b\\\", \\\"spartan--071db9b9a6351be51a6ba15db628c1c5476e4da0\\\", \\\"strace--34b42788d979e1a59519090c37554b037c8b2125\\\", \\\"teamcity-messages--b3464920ac571959e3595f09ceda3db47b9cecea\\\", \\\"toybox--97c5d0bbfef600fad9fa41ee8d60d9be9122fd42\\\"]\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-packages.json\", \"permissions\": \"0644\"}, {\"content\": \"[Journal]\\nMaxLevelConsole=warning\\nRateLimitInterval=1s\\nRateLimitBurst=20000\\n\", \"owner\": \"root\", \"path\": \"/etc/systemd/journald.conf.d/dcos.conf\", \"permissions\": \"0644\"}, {\"content\": \"rexray:\\n loglevel: info\\n modules:\\n default-docker:\\n disabled: true\\n service: vfs\\n\", \"path\": \"/etc/rexray/config.yml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nType=oneshot\\nEnvironment=DEBIAN_FRONTEND=noninteractive\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/d.deb https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb\\nExecStart=/usr/bin/bash -c \\\"try=1;until dpkg -D3 -i /var/tmp/d.deb || ((try>9));do echo retry $((try++));sleep $((try*try));done;systemctl --now start docker;systemctl restart docker.socket\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-docker-install.service\", \"permissions\": \"0644\"}, {\"content\": \"[Service]\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=15\\nExecStartPre=-/sbin/ip link del docker0\\nExecStart=\\nExecStart=/usr/bin/dockerd --storage-driver=overlay\\n\", \"path\": \"/etc/systemd/system/docker.service.d/execstart.conf\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nPartOf=docker.service\\n[Socket]\\nListenStream=/var/run/docker.sock\\nSocketMode=0660\\nSocketUser=root\\nSocketGroup=docker\\nListenStream=2375\\nBindIPv6Only=both\\n[Install]\\nWantedBy=sockets.target\\n\", \"path\": \"/etc/systemd/system/docker.socket\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nRequires=dcos-setup.service\\nAfter=dcos-setup.service\\n[Service]\\nType=oneshot\\nEnvironmentFile=/etc/environment\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/usr/bin/bash -c \\\"echo $(detect_ip) $(hostname) > /etc/hosts\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-config-writer.service\", \"permissions\": \"0644\"}, {\"content\": \"\\\"bound_values\\\":\\n \\\"adminrouter_auth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n \\\"cluster_name\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"exhibitor_azure_account_key\\\": |-\\n ', listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('masterStorageAccountExhibitorName')), '2015-06-15').key1, '\\n \\\"exhibitor_azure_account_name\\\": |-\\n ', variables('masterStorageAccountExhibitorName'), '\\n \\\"exhibitor_azure_prefix\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"master_list\\\": |-\\n [\\\"', reference(variables('masterVMNic')[0]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-09af16449dc7076a197431a3c5130ab7bdf01b22-azure--setup\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/late-config.yaml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nBefore=dcos.target\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/mkdir -p /etc/profile.d\\nExecStart=/usr/bin/ln -sf /opt/mesosphere/bin/add_dcos_path.sh /etc/profile.d/dcos.sh\\n\", \"path\": \"/etc/systemd/system/dcos-link-env.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Download DC/OS to this host.\\nAfter=network-online.target\\nWants=network-online.target\\nConditionPathExists=!/opt/mesosphere/\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl --keepalive-time 2 -fLsSv --retry 20 -Y 100000 -y 60 -o //var/tmp/bootstrap.tar.xz file:///home/han/dcos-artifacts/testing/bootstrap/c4c36e552cfc13589c5d9fbff87aa17bdf3dad0c.bootstrap.tar.xz\\nExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\\nExecStart=/usr/bin/tar -axf //var/tmp/bootstrap.tar.xz -C /opt/mesosphere\\nExecStartPost=-/usr/bin/rm -f //var/tmp/bootstrap.tar.xz\\n\", \"path\": \"/etc/systemd/system/dcos-download.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Specialize DC/OS for this host.\\nRequires=dcos-download.service\\nAfter=dcos-download.service\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\\n[Install]\\nWantedBy=multi-user.target\\n\", \"path\": \"/etc/systemd/system/dcos-setup.service\", \"permissions\": \"0644\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/master\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure_master\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure\"}]}'))]", | |
"linuxConfiguration": "[variables('linuxConfiguration')]" | |
}, | |
"hardwareProfile": { | |
"vmSize": "[variables('masterVMSize')]" | |
}, | |
"storageProfile": { | |
"osDisk": { | |
"createOption": "FromImage", | |
"vhd": { | |
"uri": "[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('masterStorageAccountName')),variables('apiVersionStorage')).primaryEndpoints.blob,'vhds/',variables('masterVMNamePrefix'),copyIndex(),'-osdisk.vhd')]" | |
}, | |
"caching": "ReadWrite", | |
"name": "[concat(variables('masterVMNamePrefix'), copyIndex(),'-osdisk')]" | |
}, | |
"imageReference": { | |
"offer": "[variables('osImageOffer')]", | |
"version": "[variables('osImageVersion')]", | |
"publisher": "[variables('osImagePublisher')]", | |
"sku": "[variables('osImageSKU')]" | |
} | |
} | |
}, | |
"location": "[resourceGroup().location]", | |
"copy": { | |
"count": "[variables('masterCount')]", | |
"name": "vmLoopNode" | |
}, | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/networkInterfaces/', variables('masterVMNamePrefix'), 'nic-', copyIndex())]", | |
"[concat('Microsoft.Compute/availabilitySets/',variables('masterAvailabilitySet'))]", | |
"[variables('masterStorageAccountName')]", | |
"[variables('masterStorageAccountExhibitorName')]", | |
"[variables('diagnosticsStorageAccountName')]" | |
], | |
"name": "[concat(variables('masterVMNamePrefix'), copyIndex())]" | |
}, | |
{ | |
"type": "Microsoft.Compute/virtualMachines/extensions", | |
"properties": { | |
"type": "CustomScriptForLinux", | |
"typeHandlerVersion": "1.4", | |
"publisher": "Microsoft.OSTCExtensions", | |
"settings": { | |
"commandToExecute": "sh -c 'until ping -c1 leader.mesos;do echo waiting for leader.mesos;sleep 15;done;echo leader.mesos up'" | |
}, | |
"autoUpgradeMinorVersion": true | |
}, | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Compute/virtualMachines/', variables('masterVMNamePrefix'), sub(variables('masterCount'), 1))]" | |
], | |
"name": "[concat(variables('masterVMNamePrefix'), sub(variables('masterCount'), 1), '/waitforleader')]" | |
}, | |
{ | |
"type": "Microsoft.Compute/virtualMachines/extensions", | |
"properties": { | |
"typeHandlerVersion": "2.3", | |
"type": "LinuxDiagnostic", | |
"autoUpgradeMinorVersion": true, | |
"publisher": "Microsoft.OSTCExtensions", | |
"settings": { | |
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('masterVMNamePrefix'), copyIndex(), variables('wadcfgxend')))]", | |
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]" | |
}, | |
"protectedSettings": { | |
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]", | |
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]" | |
} | |
}, | |
"location": "[resourceGroup().location]", | |
"copy": { | |
"name": "vmLoopNode", | |
"count": "[variables('masterCount')]" | |
}, | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Compute/virtualMachines/', concat(variables('masterVMNamePrefix'), copyIndex()))]" | |
], | |
"name": "[concat(variables('masterVMNamePrefix'), copyIndex(), '/linuxdiagnostic')]" | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"properties": { | |
"accountType": "[variables('vmSizesMap')[variables('agentVMSize')].storageAccountType]" | |
}, | |
"location": "[variables('storageLocation')]", | |
"apiVersion": "[variables('apiVersionStorage')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]" | |
], | |
"name": "[variables('agentStoragePublicAccountName')]" | |
}, | |
{ | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"type": "Microsoft.Network/publicIPAddresses", | |
"properties": { | |
"publicIPAllocationMethod": "Dynamic", | |
"dnsSettings": { | |
"domainNameLabel": "[variables('agentEndpointDNSNamePrefix')]" | |
} | |
}, | |
"name": "[variables('agentPublicIPAddressName')]" | |
}, | |
{ | |
"type": "Microsoft.Network/loadBalancers", | |
"properties": { | |
"backendAddressPools": [ | |
{ | |
"name": "[variables('agentsPublicLbBackendPoolName')]" | |
} | |
], | |
"loadBalancingRules": [ | |
{ | |
"properties": { | |
"frontendIPConfiguration": { | |
"id": "[variables('agentsPublicLbIPConfigID')]" | |
}, | |
"frontendPort": 80, | |
"loadDistribution": "Default", | |
"backendPort": 80, | |
"probe": { | |
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpHTTPProbe')]" | |
}, | |
"backendAddressPool": { | |
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]" | |
}, | |
"protocol": "tcp", | |
"idleTimeoutInMinutes": 5, | |
"enableFloatingIP": false | |
}, | |
"name": "LBRuleHTTP" | |
}, | |
{ | |
"properties": { | |
"frontendIPConfiguration": { | |
"id": "[variables('agentsPublicLbIPConfigID')]" | |
}, | |
"frontendPort": 443, | |
"loadDistribution": "Default", | |
"backendPort": 443, | |
"probe": { | |
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpHTTPSProbe')]" | |
}, | |
"backendAddressPool": { | |
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]" | |
}, | |
"protocol": "tcp", | |
"idleTimeoutInMinutes": 5, | |
"enableFloatingIP": false | |
}, | |
"name": "LBRuleHTTPS" | |
}, | |
{ | |
"properties": { | |
"frontendIPConfiguration": { | |
"id": "[variables('agentsPublicLbIPConfigID')]" | |
}, | |
"frontendPort": 8080, | |
"loadDistribution": "Default", | |
"backendPort": 8080, | |
"probe": { | |
"id": "[concat(variables('agentsPublicLbID'),'/probes/tcpPort8080Probe')]" | |
}, | |
"backendAddressPool": { | |
"id": "[concat(variables('agentsPublicLbID'), '/backendAddressPools/', variables('agentsPublicLbBackendPoolName'))]" | |
}, | |
"protocol": "tcp", | |
"idleTimeoutInMinutes": 5, | |
"enableFloatingIP": false | |
}, | |
"name": "LBRulePort8080" | |
} | |
], | |
"inboundNatRules": [], | |
"frontendIPConfigurations": [ | |
{ | |
"properties": { | |
"publicIPAddress": { | |
"id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('agentPublicIPAddressName'))]" | |
} | |
}, | |
"name": "[variables('agentsPublicLbIPConfigName')]" | |
} | |
], | |
"probes": [ | |
{ | |
"properties": { | |
"intervalInSeconds": "5", | |
"port": 80, | |
"protocol": "tcp", | |
"numberOfProbes": "2" | |
}, | |
"name": "tcpHTTPProbe" | |
}, | |
{ | |
"properties": { | |
"intervalInSeconds": "5", | |
"port": 443, | |
"protocol": "tcp", | |
"numberOfProbes": "2" | |
}, | |
"name": "tcpHTTPSProbe" | |
}, | |
{ | |
"properties": { | |
"intervalInSeconds": "5", | |
"port": 8080, | |
"protocol": "tcp", | |
"numberOfProbes": "2" | |
}, | |
"name": "tcpPort8080Probe" | |
} | |
] | |
}, | |
"location": "[resourceGroup().location]", | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIPAddresses/', variables('agentPublicIPAddressName'))]" | |
], | |
"name": "[variables('agentsPublicLbName')]" | |
}, | |
{ | |
"sku": { | |
"capacity": "[variables('agentPublicCount')]", | |
"tier": "Standard", | |
"name": "[variables('agentVMSize')]" | |
}, | |
"type": "Microsoft.Compute/virtualMachineScaleSets", | |
"properties": { | |
"virtualMachineProfile": { | |
"extensionProfile": { | |
"extensions": [ | |
{ | |
"properties": { | |
"typeHandlerVersion": "2.3", | |
"type": "LinuxDiagnostic", | |
"autoUpgradeMinorVersion": true, | |
"publisher": "Microsoft.OSTCExtensions", | |
"settings": { | |
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('agentPublicVMNamePrefix'), variables('wadcfgxend')))]", | |
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]" | |
}, | |
"protectedSettings": { | |
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]", | |
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]" | |
} | |
}, | |
"name": "LinuxDiagnostic" | |
} | |
] | |
}, | |
"diagnosticsProfile": { | |
"bootDiagnostics": { | |
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]", | |
"enabled": "[variables('enableVMDiagnostics')]" | |
} | |
}, | |
"osProfile": { | |
"customData": "[base64(concat('#cloud-config\n\n', '{\"bootcmd\": [\"bash -c \\\"if [ ! -f /var/lib/sdb-gpt ];then echo DCOS-5890;parted -s /dev/sdb mklabel gpt;touch /var/lib/sdb-gpt;fi\\\"\"], \"disk_setup\": {\"ephemeral0\": {\"layout\": [45, 45, 10], \"overwrite\": true, \"table_type\": \"gpt\"}}, \"fs_setup\": [{\"device\": \"ephemeral0.1\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.2\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.3\", \"filesystem\": \"ext4\", \"overwrite\": true}], \"mounts\": [[\"ephemeral0.1\", \"/var/lib/mesos\"], [\"ephemeral0.2\", \"/var/lib/docker\"], [\"ephemeral0.3\", \"/var/tmp\"]], \"runcmd\": [[\"ln\", \"-s\", \"/bin/rm\", \"/usr/bin/rm\"], [\"ln\", \"-s\", \"/bin/mkdir\", \"/usr/bin/mkdir\"], [\"ln\", \"-s\", \"/bin/tar\", \"/usr/bin/tar\"], [\"ln\", \"-s\", \"/bin/ln\", \"/usr/bin/ln\"], [\"ln\", \"-s\", \"/bin/cp\", \"/usr/bin/cp\"], [\"ln\", \"-s\", \"/bin/systemctl\", \"/usr/bin/systemctl\"], [\"ln\", \"-s\", \"/bin/mount\", \"/usr/bin/mount\"], [\"ln\", \"-s\", \"/bin/bash\", \"/usr/bin/bash\"], [\"ln\", \"-s\", \"/usr/sbin/useradd\", \"/usr/bin/useradd\"], [\"systemctl\", \"disable\", \"--now\", \"resolvconf.service\"], [\"systemctl\", \"mask\", \"--now\", \"lxc-net.service\"], [\"systemctl\", \"disable\", \"--now\", \"unscd.service\"], [\"systemctl\", \"stop\", \"--now\", \"unscd.service\"], \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/1.deb https://az837203.vo.msecnd.net/dcos-deps/libipset3_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/2.deb https://az837203.vo.msecnd.net/dcos-deps/ipset_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/3.deb https://az837203.vo.msecnd.net/dcos-deps/unzip_6.0-20ubuntu1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/4.deb https://az837203.vo.msecnd.net/dcos-deps/libltdl7_2.4.6-0.1_amd64.deb\", \"sed -i \\\"s/^Port 22$/Port 22\\\\nPort 2222/1\\\" /etc/ssh/sshd_config\", \"service ssh restart\", \"bash -c \\\"try=1;until dpkg -i /var/tmp/{1,2,3,4}.deb || ((try>9));do echo retry \\\\$((try++));sleep \\\\$((try*try));done\\\"\", [\"cp\", \"-p\", \"/etc/resolv.conf\", \"/tmp/resolv.conf\"], [\"rm\", \"-f\", \"/etc/resolv.conf\"], [\"cp\", \"-p\", \"/tmp/resolv.conf\", \"/etc/resolv.conf\"], [\"systemctl\", \"start\", \"dcos-docker-install.service\"], [\"systemctl\", \"start\", \"dcos-config-writer.service\"], [\"systemctl\", \"restart\", \"systemd-journald.service\"], [\"systemctl\", \"restart\", \"docker.service\"], [\"systemctl\", \"start\", \"dcos-link-env.service\"], [\"systemctl\", \"enable\", \"dcos-setup.service\"], [\"systemctl\", \"--no-block\", \"start\", \"dcos-setup.service\"]], \"write_files\": [{\"content\": \"file:///home/han/dcos-artifacts/testing\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"[\\\"adminrouter--cbcc783426bfa7590ccbb139e279264d67767fb1\\\", \\\"avro-cpp--eb5e3a5a46ecada8ab9e4f8651cb20577453f86f\\\", \\\"boost-libs--2f88af98c228b53e617a427f5b0f347221d7c840\\\", \\\"bootstrap--d45adc8bfd3bc668de1c0d40a58a4c32a753e53e\\\", \\\"boto--c5e8100235e6303caedf630ccef4bb1b1f8f8431\\\", \\\"check-time--948f15b2663b077ea1db65502eabd44c603be20a\\\", \\\"cni--ad8edf651596cb7f67ea3d73e20f95dd0caba1e5\\\", \\\"cosmos--fa7ab42b9a218cecdd080a26e0549277f1bb3b86\\\", \\\"curl--aa99af9bd6c7dda375e4b78b9b27a8d1752c143c\\\", \\\"dcos-checks--7f40f1d77c90f0dedbb9b68e85e808588c157fc9\\\", \\\"dcos-cni--2b9a1e6dff72c4127ce088638498c9a3d681439d\\\", \\\"dcos-config--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-diagnostics--3a01e8f5336b151b2580327dcd9b6c6e8001e1b8\\\", \\\"dcos-history--d443f70ccccc7ccc9ff624e173e023245ad2b272\\\", \\\"dcos-image--b1ef26af36a630c85b3ea1b72bd9c0b8c11cc716\\\", \\\"dcos-image-deps--9e5cd71881382782919bcf97f0cc83c9431d29e0\\\", \\\"dcos-integration-test--adb128bcc0f75a24894eb7eb1cf8173c7a8d9298\\\", \\\"dcos-log--ccefbe47373e2597121155e86337c01fb8bdda8a\\\", \\\"dcos-metadata--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-metrics--63f96229b73e595c294954b961005bedaf25654f\\\", \\\"dcos-oauth--00d6677bbc0f6a82f83da98614f430aaab42f787\\\", \\\"dcos-signal--2a63143c2b44cc81639bcfa9008d774d86d9faa2\\\", \\\"dcos-test-utils--d551873c0cbfde0ed5e92300a5d0858440cddfad\\\", \\\"dcos-ui--cc2e3d26537ea190efacd6f899dd4cc2210d45b7\\\", \\\"dnspython--0241016f3bf1fdd7e43cde67856d2128c9323fdf\\\", \\\"docker-gc--74a4e6a1cd21833fd1a897d9dacaf36200be2d3f\\\", \\\"dvdcli--ee85411e3cb9f0988ed54b5cc0789172b887f12f\\\", \\\"erlang--0861859fe5fbf2419ea8ea642eb5bd489c8ce8f4\\\", \\\"exhibitor--5c1f80c3f502eb19a7ff34ba1049c835e7c89745\\\", \\\"flask--5f8e4dca26dce54e9694d0d9277c19c354b80089\\\", \\\"java--557408224206ff613ca8edec15adc6bb799a43de\\\", \\\"libevent--278aa5fab41ae40d3570b978648c3db3dc70d3b5\\\", \\\"libffi--d6953b348a0dd1af27dc63e847c34c19dd80fc89\\\", \\\"libsodium--d73b59dd3a3358185b5fea355f99ce811d517b8a\\\", \\\"logrotate--92edcfe65c77d675f96dc1dfae1b176e0399f312\\\", \\\"marathon--13360033dd6b5216d0093ec1150bce6b79d9e7e2\\\", \\\"mesos--8fcb46f072de3c42fb7b7dfd0e1a864b3753dd11\\\", \\\"mesos-dns--600da87080b7634f2380594499004a7ff0b34662\\\", \\\"mesos-modules--9eff953b785f921c4e1419b9d5feb9bbd022e1fb\\\", \\\"metronome--a1915935680f1ac59a6dd823c8b9e4c828529b47\\\", \\\"navstar--28db3ac87dc6dc1b0bd398ef26d19dadff0f06f2\\\", \\\"ncurses--a4d7f789e38cae7507d14073a66746d177540d59\\\", \\\"octarine--4e37c062d2f145f9c2ce01d30dadf72c2aac5c4a\\\", \\\"openssl--68a61d031ffb58932c09c3cb9a263246324c9eda\\\", \\\"pkgpanda-api--dafcee8593f6b727fc41447adb1eebc1d8983a1a\\\", \\\"pkgpanda-role--9d8e5111235ab331698045e9451946a32754df67\\\", \\\"pytest--771e3dbc784cd72812ffbaef726fb07065d56bf7\\\", \\\"python--955da518f02d7cf29d663741fdabb01a1c1996c6\\\", \\\"python-azure-mgmt-resource--1f70b4387fc5122ce485c125af783b690c61577e\\\", \\\"python-cryptography--c63062028a7235a6eb1166856f2a69da223d2d14\\\", \\\"python-dateutil--83a5ffb68a3b1331d428bc4ceec36f5e6c94d9d8\\\", \\\"python-docopt--69d6958de1e08429158ec8351fd4ae81232aaa24\\\", \\\"python-gunicorn--a58ae272e7a51110b14dad6768c2178783362e96\\\", \\\"python-isodate--cf30adec6a7a83dc07c4d9796470a6a9aad38460\\\", \\\"python-jinja2--c0eadbfd2b19dead679d27c46de58545c365935d\\\", \\\"python-kazoo--252c8c7a908b5a634ffbc6df3d3943bf26c879c5\\\", \\\"python-markupsafe--215a21c08e29eb804ecbe7bf61b103a58f30728b\\\", \\\"python-passlib--bc298e4968d738f2f1e6e87d317e7c73de73f471\\\", \\\"python-pyyaml--c12dac01b6cc0f0554a7af660e9b34d4edceea00\\\", \\\"python-requests--8f2c590a86d38aecdda8689585f9a615fe06d7ba\\\", \\\"python-retrying--b564870447691f62ee5e795ceef8476ba6498d43\\\", \\\"python-tox--ed630faec944a7e5a26887b9112f0a3791c7c977\\\", \\\"rexray--da7f17f8a4b772c0bac3f8d289a08abd4ff272b4\\\", \\\"six--070835068ef97ddc1d92a3b38f2771c6ea3a598b\\\", \\\"spartan--071db9b9a6351be51a6ba15db628c1c5476e4da0\\\", \\\"strace--34b42788d979e1a59519090c37554b037c8b2125\\\", \\\"teamcity-messages--b3464920ac571959e3595f09ceda3db47b9cecea\\\", \\\"toybox--97c5d0bbfef600fad9fa41ee8d60d9be9122fd42\\\"]\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-packages.json\", \"permissions\": \"0644\"}, {\"content\": \"[Journal]\\nMaxLevelConsole=warning\\nRateLimitInterval=1s\\nRateLimitBurst=20000\\n\", \"owner\": \"root\", \"path\": \"/etc/systemd/journald.conf.d/dcos.conf\", \"permissions\": \"0644\"}, {\"content\": \"rexray:\\n loglevel: info\\n modules:\\n default-docker:\\n disabled: true\\n service: vfs\\n\", \"path\": \"/etc/rexray/config.yml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nType=oneshot\\nEnvironment=DEBIAN_FRONTEND=noninteractive\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/d.deb https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb\\nExecStart=/usr/bin/bash -c \\\"try=1;until dpkg -D3 -i /var/tmp/d.deb || ((try>9));do echo retry $((try++));sleep $((try*try));done;systemctl --now start docker;systemctl restart docker.socket\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-docker-install.service\", \"permissions\": \"0644\"}, {\"content\": \"[Service]\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=15\\nExecStartPre=-/sbin/ip link del docker0\\nExecStart=\\nExecStart=/usr/bin/dockerd --storage-driver=overlay\\n\", \"path\": \"/etc/systemd/system/docker.service.d/execstart.conf\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nPartOf=docker.service\\n[Socket]\\nListenStream=/var/run/docker.sock\\nSocketMode=0660\\nSocketUser=root\\nSocketGroup=docker\\nListenStream=2375\\nBindIPv6Only=both\\n[Install]\\nWantedBy=sockets.target\\n\", \"path\": \"/etc/systemd/system/docker.socket\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nRequires=dcos-setup.service\\nAfter=dcos-setup.service\\n[Service]\\nType=oneshot\\nEnvironmentFile=/etc/environment\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/usr/bin/bash -c \\\"echo $(detect_ip) $(hostname) > /etc/hosts\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-config-writer.service\", \"permissions\": \"0644\"}, {\"content\": \"\\\"bound_values\\\":\\n \\\"adminrouter_auth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n \\\"cluster_name\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"exhibitor_azure_account_key\\\": |-\\n ', listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('masterStorageAccountExhibitorName')), '2015-06-15').key1, '\\n \\\"exhibitor_azure_account_name\\\": |-\\n ', variables('masterStorageAccountExhibitorName'), '\\n \\\"exhibitor_azure_prefix\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"master_list\\\": |-\\n [\\\"', reference(variables('masterVMNic')[0]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-09af16449dc7076a197431a3c5130ab7bdf01b22-azure--setup\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/late-config.yaml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nBefore=dcos.target\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/mkdir -p /etc/profile.d\\nExecStart=/usr/bin/ln -sf /opt/mesosphere/bin/add_dcos_path.sh /etc/profile.d/dcos.sh\\n\", \"path\": \"/etc/systemd/system/dcos-link-env.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Download DC/OS to this host.\\nAfter=network-online.target\\nWants=network-online.target\\nConditionPathExists=!/opt/mesosphere/\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl --keepalive-time 2 -fLsSv --retry 20 -Y 100000 -y 60 -o //var/tmp/bootstrap.tar.xz file:///home/han/dcos-artifacts/testing/bootstrap/c4c36e552cfc13589c5d9fbff87aa17bdf3dad0c.bootstrap.tar.xz\\nExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\\nExecStart=/usr/bin/tar -axf //var/tmp/bootstrap.tar.xz -C /opt/mesosphere\\nExecStartPost=-/usr/bin/rm -f //var/tmp/bootstrap.tar.xz\\n\", \"path\": \"/etc/systemd/system/dcos-download.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Specialize DC/OS for this host.\\nRequires=dcos-download.service\\nAfter=dcos-download.service\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\\n[Install]\\nWantedBy=multi-user.target\\n\", \"path\": \"/etc/systemd/system/dcos-setup.service\", \"permissions\": \"0644\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/slave_public\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure\"}]}'))]", | |
"computerNamePrefix": "[variables('agentPublicVMNamePrefix')]", | |
"adminUsername": "[variables('adminUsername')]", | |
"linuxConfiguration": { | |
"disablePasswordAuthentication": "true", | |
"ssh": { | |
"publicKeys": [ | |
{ | |
"keyData": "[parameters('sshRSAPublicKey')]", | |
"path": "[variables('sshKeyPath')]" | |
} | |
] | |
} | |
} | |
}, | |
"networkProfile": { | |
"networkInterfaceConfigurations": [ | |
{ | |
"properties": { | |
"primary": "true", | |
"ipConfigurations": [ | |
{ | |
"properties": { | |
"subnet": { | |
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('agentPublicSubnetName'))]" | |
}, | |
"loadBalancerBackendAddressPools": [ | |
{ | |
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('agentsPublicLbName'), '/backendAddressPools/',variables('agentsPublicLbBackendPoolName'))]" | |
} | |
] | |
}, | |
"name": "nicipconfig" | |
} | |
] | |
}, | |
"name": "agentNodeNic" | |
} | |
] | |
}, | |
"storageProfile": { | |
"osDisk": { | |
"createOption": "FromImage", | |
"caching": "ReadOnly", | |
"vhdContainers": [ | |
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('agentStoragePublicAccountName')),variables('apiVersionStorage')).primaryEndpoints.blob, 'osdisk')]" | |
], | |
"name": "vmssosdisk" | |
}, | |
"imageReference": { | |
"offer": "[variables('osImageOffer')]", | |
"version": "[variables('osImageVersion')]", | |
"publisher": "[variables('osImagePublisher')]", | |
"sku": "[variables('osImageSKU')]" | |
} | |
} | |
}, | |
"upgradePolicy": { | |
"mode": "Manual" | |
} | |
}, | |
"location": "[resourceGroup().location]", | |
"copy": { | |
"count": "[variables('agentPublicVMSSCount')]", | |
"name": "masterLbLoopNode" | |
}, | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Storage/storageAccounts/', variables('agentStoragePublicAccountName'))]", | |
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]", | |
"[concat('Microsoft.Network/loadBalancers/', variables('agentsPublicLbName'))]", | |
"[variables('diagnosticsStorageAccountName')]" | |
], | |
"name": "[concat(variables('agentPublicVMNamePrefix'), '-vmss', copyIndex())]" | |
}, | |
{ | |
"type": "Microsoft.Storage/storageAccounts", | |
"properties": { | |
"accountType": "[variables('vmSizesMap')[variables('agentVMSize')].storageAccountType]" | |
}, | |
"location": "[variables('storageLocation')]", | |
"copy": { | |
"count": "[variables('agentStorageAccountsCount')]", | |
"name": "agentPrivateLoopNode" | |
}, | |
"apiVersion": "[variables('apiVersionStorage')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))]" | |
], | |
"name": "[concat(variables('storageAccountPrefixes')[mod(copyIndex(),variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(copyIndex(),variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),copyIndex())]" | |
}, | |
{ | |
"sku": { | |
"capacity": "[variables('agentPrivateCount')]", | |
"tier": "Standard", | |
"name": "[variables('agentVMSize')]" | |
}, | |
"type": "Microsoft.Compute/virtualMachineScaleSets", | |
"properties": { | |
"virtualMachineProfile": { | |
"extensionProfile": { | |
"extensions": [ | |
{ | |
"properties": { | |
"typeHandlerVersion": "2.3", | |
"type": "LinuxDiagnostic", | |
"autoUpgradeMinorVersion": true, | |
"publisher": "Microsoft.OSTCExtensions", | |
"settings": { | |
"xmlCfg": "[base64(concat(variables('wadcfgxstart'), variables('agentPrivateVMNamePrefix'), variables('wadcfgxend')))]", | |
"StorageAccount": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]" | |
}, | |
"protectedSettings": { | |
"storageAccountName": "[variables(concat('diagnosticsStorageAccountName', '-', variables('enableVMDiagnostics')))]", | |
"storageAccountKey": "[listKeys(variables('accountid'),variables('apiVersionStorage')).key1]" | |
} | |
}, | |
"name": "LinuxDiagnostic" | |
} | |
] | |
}, | |
"diagnosticsProfile": { | |
"bootDiagnostics": { | |
"storageUri": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]", | |
"enabled": "[variables('enableVMDiagnostics')]" | |
} | |
}, | |
"osProfile": { | |
"customData": "[base64(concat('#cloud-config\n\n', '{\"bootcmd\": [\"bash -c \\\"if [ ! -f /var/lib/sdb-gpt ];then echo DCOS-5890;parted -s /dev/sdb mklabel gpt;touch /var/lib/sdb-gpt;fi\\\"\"], \"disk_setup\": {\"ephemeral0\": {\"layout\": [45, 45, 10], \"overwrite\": true, \"table_type\": \"gpt\"}}, \"fs_setup\": [{\"device\": \"ephemeral0.1\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.2\", \"filesystem\": \"ext4\", \"overwrite\": true}, {\"device\": \"ephemeral0.3\", \"filesystem\": \"ext4\", \"overwrite\": true}], \"mounts\": [[\"ephemeral0.1\", \"/var/lib/mesos\"], [\"ephemeral0.2\", \"/var/lib/docker\"], [\"ephemeral0.3\", \"/var/tmp\"]], \"runcmd\": [[\"ln\", \"-s\", \"/bin/rm\", \"/usr/bin/rm\"], [\"ln\", \"-s\", \"/bin/mkdir\", \"/usr/bin/mkdir\"], [\"ln\", \"-s\", \"/bin/tar\", \"/usr/bin/tar\"], [\"ln\", \"-s\", \"/bin/ln\", \"/usr/bin/ln\"], [\"ln\", \"-s\", \"/bin/cp\", \"/usr/bin/cp\"], [\"ln\", \"-s\", \"/bin/systemctl\", \"/usr/bin/systemctl\"], [\"ln\", \"-s\", \"/bin/mount\", \"/usr/bin/mount\"], [\"ln\", \"-s\", \"/bin/bash\", \"/usr/bin/bash\"], [\"ln\", \"-s\", \"/usr/sbin/useradd\", \"/usr/bin/useradd\"], [\"systemctl\", \"disable\", \"--now\", \"resolvconf.service\"], [\"systemctl\", \"mask\", \"--now\", \"lxc-net.service\"], [\"systemctl\", \"disable\", \"--now\", \"unscd.service\"], [\"systemctl\", \"stop\", \"--now\", \"unscd.service\"], \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/1.deb https://az837203.vo.msecnd.net/dcos-deps/libipset3_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/2.deb https://az837203.vo.msecnd.net/dcos-deps/ipset_6.29-1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/3.deb https://az837203.vo.msecnd.net/dcos-deps/unzip_6.0-20ubuntu1_amd64.deb\", \"curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/4.deb https://az837203.vo.msecnd.net/dcos-deps/libltdl7_2.4.6-0.1_amd64.deb\", \"sed -i \\\"s/^Port 22$/Port 22\\\\nPort 2222/1\\\" /etc/ssh/sshd_config\", \"service ssh restart\", \"bash -c \\\"try=1;until dpkg -i /var/tmp/{1,2,3,4}.deb || ((try>9));do echo retry \\\\$((try++));sleep \\\\$((try*try));done\\\"\", [\"cp\", \"-p\", \"/etc/resolv.conf\", \"/tmp/resolv.conf\"], [\"rm\", \"-f\", \"/etc/resolv.conf\"], [\"cp\", \"-p\", \"/tmp/resolv.conf\", \"/etc/resolv.conf\"], [\"systemctl\", \"start\", \"dcos-docker-install.service\"], [\"systemctl\", \"start\", \"dcos-config-writer.service\"], [\"systemctl\", \"restart\", \"systemd-journald.service\"], [\"systemctl\", \"restart\", \"docker.service\"], [\"systemctl\", \"start\", \"dcos-link-env.service\"], [\"systemctl\", \"enable\", \"dcos-setup.service\"], [\"systemctl\", \"--no-block\", \"start\", \"dcos-setup.service\"]], \"write_files\": [{\"content\": \"file:///home/han/dcos-artifacts/testing\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/repository-url\", \"permissions\": \"0644\"}, {\"content\": \"[\\\"adminrouter--cbcc783426bfa7590ccbb139e279264d67767fb1\\\", \\\"avro-cpp--eb5e3a5a46ecada8ab9e4f8651cb20577453f86f\\\", \\\"boost-libs--2f88af98c228b53e617a427f5b0f347221d7c840\\\", \\\"bootstrap--d45adc8bfd3bc668de1c0d40a58a4c32a753e53e\\\", \\\"boto--c5e8100235e6303caedf630ccef4bb1b1f8f8431\\\", \\\"check-time--948f15b2663b077ea1db65502eabd44c603be20a\\\", \\\"cni--ad8edf651596cb7f67ea3d73e20f95dd0caba1e5\\\", \\\"cosmos--fa7ab42b9a218cecdd080a26e0549277f1bb3b86\\\", \\\"curl--aa99af9bd6c7dda375e4b78b9b27a8d1752c143c\\\", \\\"dcos-checks--7f40f1d77c90f0dedbb9b68e85e808588c157fc9\\\", \\\"dcos-cni--2b9a1e6dff72c4127ce088638498c9a3d681439d\\\", \\\"dcos-config--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-diagnostics--3a01e8f5336b151b2580327dcd9b6c6e8001e1b8\\\", \\\"dcos-history--d443f70ccccc7ccc9ff624e173e023245ad2b272\\\", \\\"dcos-image--b1ef26af36a630c85b3ea1b72bd9c0b8c11cc716\\\", \\\"dcos-image-deps--9e5cd71881382782919bcf97f0cc83c9431d29e0\\\", \\\"dcos-integration-test--adb128bcc0f75a24894eb7eb1cf8173c7a8d9298\\\", \\\"dcos-log--ccefbe47373e2597121155e86337c01fb8bdda8a\\\", \\\"dcos-metadata--setup_09af16449dc7076a197431a3c5130ab7bdf01b22\\\", \\\"dcos-metrics--63f96229b73e595c294954b961005bedaf25654f\\\", \\\"dcos-oauth--00d6677bbc0f6a82f83da98614f430aaab42f787\\\", \\\"dcos-signal--2a63143c2b44cc81639bcfa9008d774d86d9faa2\\\", \\\"dcos-test-utils--d551873c0cbfde0ed5e92300a5d0858440cddfad\\\", \\\"dcos-ui--cc2e3d26537ea190efacd6f899dd4cc2210d45b7\\\", \\\"dnspython--0241016f3bf1fdd7e43cde67856d2128c9323fdf\\\", \\\"docker-gc--74a4e6a1cd21833fd1a897d9dacaf36200be2d3f\\\", \\\"dvdcli--ee85411e3cb9f0988ed54b5cc0789172b887f12f\\\", \\\"erlang--0861859fe5fbf2419ea8ea642eb5bd489c8ce8f4\\\", \\\"exhibitor--5c1f80c3f502eb19a7ff34ba1049c835e7c89745\\\", \\\"flask--5f8e4dca26dce54e9694d0d9277c19c354b80089\\\", \\\"java--557408224206ff613ca8edec15adc6bb799a43de\\\", \\\"libevent--278aa5fab41ae40d3570b978648c3db3dc70d3b5\\\", \\\"libffi--d6953b348a0dd1af27dc63e847c34c19dd80fc89\\\", \\\"libsodium--d73b59dd3a3358185b5fea355f99ce811d517b8a\\\", \\\"logrotate--92edcfe65c77d675f96dc1dfae1b176e0399f312\\\", \\\"marathon--13360033dd6b5216d0093ec1150bce6b79d9e7e2\\\", \\\"mesos--8fcb46f072de3c42fb7b7dfd0e1a864b3753dd11\\\", \\\"mesos-dns--600da87080b7634f2380594499004a7ff0b34662\\\", \\\"mesos-modules--9eff953b785f921c4e1419b9d5feb9bbd022e1fb\\\", \\\"metronome--a1915935680f1ac59a6dd823c8b9e4c828529b47\\\", \\\"navstar--28db3ac87dc6dc1b0bd398ef26d19dadff0f06f2\\\", \\\"ncurses--a4d7f789e38cae7507d14073a66746d177540d59\\\", \\\"octarine--4e37c062d2f145f9c2ce01d30dadf72c2aac5c4a\\\", \\\"openssl--68a61d031ffb58932c09c3cb9a263246324c9eda\\\", \\\"pkgpanda-api--dafcee8593f6b727fc41447adb1eebc1d8983a1a\\\", \\\"pkgpanda-role--9d8e5111235ab331698045e9451946a32754df67\\\", \\\"pytest--771e3dbc784cd72812ffbaef726fb07065d56bf7\\\", \\\"python--955da518f02d7cf29d663741fdabb01a1c1996c6\\\", \\\"python-azure-mgmt-resource--1f70b4387fc5122ce485c125af783b690c61577e\\\", \\\"python-cryptography--c63062028a7235a6eb1166856f2a69da223d2d14\\\", \\\"python-dateutil--83a5ffb68a3b1331d428bc4ceec36f5e6c94d9d8\\\", \\\"python-docopt--69d6958de1e08429158ec8351fd4ae81232aaa24\\\", \\\"python-gunicorn--a58ae272e7a51110b14dad6768c2178783362e96\\\", \\\"python-isodate--cf30adec6a7a83dc07c4d9796470a6a9aad38460\\\", \\\"python-jinja2--c0eadbfd2b19dead679d27c46de58545c365935d\\\", \\\"python-kazoo--252c8c7a908b5a634ffbc6df3d3943bf26c879c5\\\", \\\"python-markupsafe--215a21c08e29eb804ecbe7bf61b103a58f30728b\\\", \\\"python-passlib--bc298e4968d738f2f1e6e87d317e7c73de73f471\\\", \\\"python-pyyaml--c12dac01b6cc0f0554a7af660e9b34d4edceea00\\\", \\\"python-requests--8f2c590a86d38aecdda8689585f9a615fe06d7ba\\\", \\\"python-retrying--b564870447691f62ee5e795ceef8476ba6498d43\\\", \\\"python-tox--ed630faec944a7e5a26887b9112f0a3791c7c977\\\", \\\"rexray--da7f17f8a4b772c0bac3f8d289a08abd4ff272b4\\\", \\\"six--070835068ef97ddc1d92a3b38f2771c6ea3a598b\\\", \\\"spartan--071db9b9a6351be51a6ba15db628c1c5476e4da0\\\", \\\"strace--34b42788d979e1a59519090c37554b037c8b2125\\\", \\\"teamcity-messages--b3464920ac571959e3595f09ceda3db47b9cecea\\\", \\\"toybox--97c5d0bbfef600fad9fa41ee8d60d9be9122fd42\\\"]\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/cluster-packages.json\", \"permissions\": \"0644\"}, {\"content\": \"[Journal]\\nMaxLevelConsole=warning\\nRateLimitInterval=1s\\nRateLimitBurst=20000\\n\", \"owner\": \"root\", \"path\": \"/etc/systemd/journald.conf.d/dcos.conf\", \"permissions\": \"0644\"}, {\"content\": \"rexray:\\n loglevel: info\\n modules:\\n default-docker:\\n disabled: true\\n service: vfs\\n\", \"path\": \"/etc/rexray/config.yml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nAfter=network-online.target\\nWants=network-online.target\\n[Service]\\nType=oneshot\\nEnvironment=DEBIAN_FRONTEND=noninteractive\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl -fLsSv --retry 20 -Y 100000 -y 60 -o /var/tmp/d.deb https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/docker-ce_17.09.0~ce-0~ubuntu_amd64.deb\\nExecStart=/usr/bin/bash -c \\\"try=1;until dpkg -D3 -i /var/tmp/d.deb || ((try>9));do echo retry $((try++));sleep $((try*try));done;systemctl --now start docker;systemctl restart docker.socket\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-docker-install.service\", \"permissions\": \"0644\"}, {\"content\": \"[Service]\\nRestart=always\\nStartLimitInterval=0\\nRestartSec=15\\nExecStartPre=-/sbin/ip link del docker0\\nExecStart=\\nExecStart=/usr/bin/dockerd --storage-driver=overlay\\n\", \"path\": \"/etc/systemd/system/docker.service.d/execstart.conf\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nPartOf=docker.service\\n[Socket]\\nListenStream=/var/run/docker.sock\\nSocketMode=0660\\nSocketUser=root\\nSocketGroup=docker\\nListenStream=2375\\nBindIPv6Only=both\\n[Install]\\nWantedBy=sockets.target\\n\", \"path\": \"/etc/systemd/system/docker.socket\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nRequires=dcos-setup.service\\nAfter=dcos-setup.service\\n[Service]\\nType=oneshot\\nEnvironmentFile=/etc/environment\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/usr/bin/bash -c \\\"echo $(detect_ip) $(hostname) > /etc/hosts\\\"\\n\", \"path\": \"/etc/systemd/system/dcos-config-writer.service\", \"permissions\": \"0644\"}, {\"content\": \"\\\"bound_values\\\":\\n \\\"adminrouter_auth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n \\\"cluster_name\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"exhibitor_azure_account_key\\\": |-\\n ', listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('masterStorageAccountExhibitorName')), '2015-06-15').key1, '\\n \\\"exhibitor_azure_account_name\\\": |-\\n ', variables('masterStorageAccountExhibitorName'), '\\n \\\"exhibitor_azure_prefix\\\": |-\\n ', variables('masterPublicIPAddressName'), '\\n \\\"master_list\\\": |-\\n [\\\"', reference(variables('masterVMNic')[0]).ipConfigurations[0].properties.privateIPAddress, '\\\"]\\n \\\"oauth_enabled\\\": |-\\n ', variables('oauthEnabled'), '\\n\\\"late_bound_package_id\\\": |-\\n dcos-provider-09af16449dc7076a197431a3c5130ab7bdf01b22-azure--setup\\n\", \"owner\": \"root\", \"path\": \"/etc/mesosphere/setup-flags/late-config.yaml\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nBefore=dcos.target\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/mkdir -p /etc/profile.d\\nExecStart=/usr/bin/ln -sf /opt/mesosphere/bin/add_dcos_path.sh /etc/profile.d/dcos.sh\\n\", \"path\": \"/etc/systemd/system/dcos-link-env.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Download DC/OS to this host.\\nAfter=network-online.target\\nWants=network-online.target\\nConditionPathExists=!/opt/mesosphere/\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nExecStartPre=/usr/bin/curl --keepalive-time 2 -fLsSv --retry 20 -Y 100000 -y 60 -o //var/tmp/bootstrap.tar.xz file:///home/han/dcos-artifacts/testing/bootstrap/c4c36e552cfc13589c5d9fbff87aa17bdf3dad0c.bootstrap.tar.xz\\nExecStartPre=/usr/bin/mkdir -p /opt/mesosphere\\nExecStart=/usr/bin/tar -axf //var/tmp/bootstrap.tar.xz -C /opt/mesosphere\\nExecStartPost=-/usr/bin/rm -f //var/tmp/bootstrap.tar.xz\\n\", \"path\": \"/etc/systemd/system/dcos-download.service\", \"permissions\": \"0644\"}, {\"content\": \"[Unit]\\nDescription=Pkgpanda: Specialize DC/OS for this host.\\nRequires=dcos-download.service\\nAfter=dcos-download.service\\n[Service]\\nType=oneshot\\nStandardOutput=journal+console\\nStandardError=journal+console\\nEnvironmentFile=/opt/mesosphere/environment\\nExecStart=/opt/mesosphere/bin/pkgpanda setup --no-block-systemd\\n[Install]\\nWantedBy=multi-user.target\\n\", \"path\": \"/etc/systemd/system/dcos-setup.service\", \"permissions\": \"0644\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/slave\"}, {\"content\": \"\", \"path\": \"/etc/mesosphere/roles/azure\"}]}'))]", | |
"computerNamePrefix": "[variables('agentPrivateVMNamePrefix')]", | |
"adminUsername": "[variables('adminUsername')]", | |
"linuxConfiguration": { | |
"disablePasswordAuthentication": "true", | |
"ssh": { | |
"publicKeys": [ | |
{ | |
"keyData": "[parameters('sshRSAPublicKey')]", | |
"path": "[variables('sshKeyPath')]" | |
} | |
] | |
} | |
} | |
}, | |
"networkProfile": { | |
"networkInterfaceConfigurations": [ | |
{ | |
"properties": { | |
"primary": "true", | |
"ipConfigurations": [ | |
{ | |
"properties": { | |
"subnet": { | |
"id": "[concat('/subscriptions/', subscription().subscriptionId,'/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'), '/subnets/', variables('agentPrivateSubnetName'))]" | |
} | |
}, | |
"name": "nicipconfig" | |
} | |
] | |
}, | |
"name": "agentPrivateNodeNic" | |
} | |
] | |
}, | |
"storageProfile": { | |
"osDisk": { | |
"createOption": "FromImage", | |
"caching": "ReadOnly", | |
"vhdContainers": [ | |
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(0,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(0,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),0),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]", | |
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(1,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(1,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),1),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]", | |
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(2,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(2,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),2),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]", | |
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(3,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(3,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),3),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]", | |
"[concat(reference(concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(4,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(4,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),4),variables('apiVersionStorage')).primaryEndpoints.blob,'osdisk')]" | |
], | |
"name": "vmssosdisk" | |
}, | |
"imageReference": { | |
"offer": "[variables('osImageOffer')]", | |
"version": "[variables('osImageVersion')]", | |
"publisher": "[variables('osImagePublisher')]", | |
"sku": "[variables('osImageSKU')]" | |
} | |
} | |
}, | |
"upgradePolicy": { | |
"mode": "Manual" | |
} | |
}, | |
"location": "[resourceGroup().location]", | |
"copy": { | |
"count": "[variables('agentPrivateVMSSCount')]", | |
"name": "masterLbLoopNode" | |
}, | |
"apiVersion": "[variables('apiVersionDefault')]", | |
"dependsOn": [ | |
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(0,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(0,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),0)]", | |
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(1,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(1,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),1)]", | |
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(2,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(2,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),2)]", | |
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(3,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(3,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),3)]", | |
"[concat('Microsoft.Storage/storageAccounts/',variables('storageAccountPrefixes')[mod(4,variables('storageAccountPrefixesCount'))],variables('storageAccountPrefixes')[div(4,variables('storageAccountPrefixesCount'))],variables('agentStoragePrivateAccountName'),4)]", | |
"[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]", | |
"[variables('diagnosticsStorageAccountName')]" | |
], | |
"name": "[concat(variables('agentPrivateVMNamePrefix'), '-vmss', copyIndex())]" | |
} | |
], | |
"outputs": { | |
"diagnosticsStorageAccountUri": { | |
"type": "string", | |
"value": "[reference(concat('Microsoft.Storage/storageAccounts/', variables('diagnosticsStorageAccountName')), variables('apiVersionStorage')).primaryEndpoints.blob]" | |
}, | |
"jumpboxFQDN": { | |
"type": "string", | |
"value": "" | |
}, | |
"masterFQDN": { | |
"type": "string", | |
"value": "[reference(concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIPAddressName'))).dnsSettings.fqdn]" | |
}, | |
"agentFQDN": { | |
"type": "string", | |
"value": "[reference(concat('Microsoft.Network/publicIPAddresses/', variables('agentPublicIPAddressName'))).dnsSettings.fqdn]" | |
} | |
}, | |
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", | |
"parameters": { | |
"jumpboxEndpointDNSNamePrefix": { | |
"metadata": { | |
"description": "Sets the Domain name label for the jumpbox. The concatenation of the domain name label and the regionalized DNS zone make up the fully qualified domain name associated with the public IP address." | |
}, | |
"defaultValue": "", | |
"type": "string" | |
}, | |
"windowsJumpboxPublisher": { | |
"metadata": { | |
"description": "This is the windows publisher used by the windows" | |
}, | |
"defaultValue": "MicrosoftVisualStudio", | |
"type": "string" | |
}, | |
"enableVMDiagnostics": { | |
"metadata": { | |
"description": "Allows user to enable/disable boot & vm diagnostics." | |
}, | |
"defaultValue": true, | |
"type": "bool" | |
}, | |
"agentEndpointDNSNamePrefix": { | |
"metadata": { | |
"description": "Sets the Domain name label for the agent pool IP Address. The concatenation of the domain name label and the regional DNS zone make up the fully qualified domain name associated with the public IP address." | |
}, | |
"type": "string" | |
}, | |
"linuxSku": { | |
"metadata": { | |
"description": "This is the linux sku used by the linux cluster" | |
}, | |
"defaultValue": "16.04.0-LTS", | |
"type": "string" | |
}, | |
"windowsAdminUsername": { | |
"metadata": { | |
"description": "User name for the Windows Virtual Machine (Password Only Supported)." | |
}, | |
"defaultValue": "azureuser", | |
"type": "string" | |
}, | |
"nameSuffix": { | |
"metadata": { | |
"description": "A string to include in the names of resources created. Defaults to 0. Can not be blank." | |
}, | |
"defaultValue": "01234567", | |
"type": "string" | |
}, | |
"enableNewStorageAccountNaming": { | |
"metadata": { | |
"description": "If true: uses DNS name prefix + Orchestrator name + Region to create storage account name to reduce name collision probability. If false: uses DNS name prefix + Orchestrator name to create storage account name to maintain template idempotency." | |
}, | |
"defaultValue": true, | |
"type": "bool" | |
}, | |
"linuxAdminPassword": { | |
"metadata": { | |
"description": "Password for the Linux Virtual Machine. Not Required. If not set, you must provide a SSH key." | |
}, | |
"defaultValue": "", | |
"type": "securestring" | |
}, | |
"disablePasswordAuthentication": { | |
"metadata": { | |
"description": "This setting controls whether password auth is disabled for Linux VMs provisioned by this template. Default is true which disables password and makes SSH key required." | |
}, | |
"defaultValue": true, | |
"type": "bool" | |
}, | |
"oauthEnabled": { | |
"allowedValues": [ | |
"true", | |
"false" | |
], | |
"defaultValue": "false", | |
"type": "string", | |
"metadata": { | |
"description": "Enable OAuth authentication" | |
} | |
}, | |
"linuxAdminUsername": { | |
"metadata": { | |
"description": "User name for the Linux Virtual Machines (SSH or Password)." | |
}, | |
"defaultValue": "azureuser", | |
"type": "string" | |
}, | |
"agentCount": { | |
"metadata": { | |
"description": "The number of Mesos agents for the cluster. This value can be from 1 to 100" | |
}, | |
"defaultValue": 1, | |
"type": "int", | |
"allowedValues": [ | |
1, | |
2, | |
3, | |
4, | |
5, | |
6, | |
7, | |
8, | |
9, | |
10, | |
11, | |
12, | |
13, | |
14, | |
15, | |
16, | |
17, | |
18, | |
19, | |
20, | |
21, | |
22, | |
23, | |
24, | |
25, | |
26, | |
27, | |
28, | |
29, | |
30, | |
31, | |
32, | |
33, | |
34, | |
35, | |
36, | |
37, | |
38, | |
39, | |
40, | |
41, | |
42, | |
43, | |
44, | |
45, | |
46, | |
47, | |
48, | |
49, | |
50, | |
51, | |
52, | |
53, | |
54, | |
55, | |
56, | |
57, | |
58, | |
59, | |
60, | |
61, | |
62, | |
63, | |
64, | |
65, | |
66, | |
67, | |
68, | |
69, | |
70, | |
71, | |
72, | |
73, | |
74, | |
75, | |
76, | |
77, | |
78, | |
79, | |
80, | |
81, | |
82, | |
83, | |
84, | |
85, | |
86, | |
87, | |
88, | |
89, | |
90, | |
91, | |
92, | |
93, | |
94, | |
95, | |
96, | |
97, | |
98, | |
99, | |
100 | |
] | |
}, | |
"linuxPublisher": { | |
"metadata": { | |
"description": "This is the publisher of the image used by the linux cluster" | |
}, | |
"defaultValue": "Canonical", | |
"type": "string" | |
}, | |
"agentVMSize": { | |
"allowedValues": [ | |
"Standard_A2", | |
"Standard_A3", | |
"Standard_A4", | |
"Standard_A5", | |
"Standard_A6", | |
"Standard_A7", | |
"Standard_A8", | |
"Standard_A9", | |
"Standard_A10", | |
"Standard_A11", | |
"Standard_D1", | |
"Standard_D2", | |
"Standard_D3", | |
"Standard_D4", | |
"Standard_D11", | |
"Standard_D12", | |
"Standard_D13", | |
"Standard_D14", | |
"Standard_D1_v2", | |
"Standard_D2_v2", | |
"Standard_D3_v2", | |
"Standard_D4_v2", | |
"Standard_D5_v2", | |
"Standard_D11_v2", | |
"Standard_D12_v2", | |
"Standard_D13_v2", | |
"Standard_D14_v2", | |
"Standard_G1", | |
"Standard_G2", | |
"Standard_G3", | |
"Standard_G4", | |
"Standard_G5", | |
"Standard_DS1", | |
"Standard_DS2", | |
"Standard_DS3", | |
"Standard_DS4", | |
"Standard_DS11", | |
"Standard_DS12", | |
"Standard_DS13", | |
"Standard_DS14", | |
"Standard_GS1", | |
"Standard_GS2", | |
"Standard_GS3", | |
"Standard_GS4", | |
"Standard_GS5" | |
], | |
"defaultValue": "Standard_D2_v2", | |
"type": "string", | |
"metadata": { | |
"description": "The size of the Virtual Machine." | |
} | |
}, | |
"masterCount": { | |
"allowedValues": [ | |
1, | |
3, | |
5 | |
], | |
"defaultValue": 1, | |
"type": "int", | |
"metadata": { | |
"description": "The number of Mesos masters for the cluster." | |
} | |
}, | |
"masterEndpointDNSNamePrefix": { | |
"metadata": { | |
"description": "Sets the Domain name label for the master IP Address. The concatenation of the domain name label and the regional DNS zone make up the fully qualified domain name associated with the public IP address." | |
}, | |
"type": "string" | |
}, | |
"setLinuxConfigurationForVMCreate": { | |
"allowedValues": [ | |
0, | |
1 | |
], | |
"defaultValue": 1, | |
"type": "int", | |
"metadata": { | |
"description": "This setting controls whether Linux configuration with SSH Key is passed in VM PUT Payload. Defaults to 1. If SSH Key is blank, this must be set to 0." | |
} | |
}, | |
"windowsJumpboxSku": { | |
"metadata": { | |
"description": "This is the windows sku used by the windows" | |
}, | |
"defaultValue": "VS-2015-Enterprise-AzureSDK-2.7-WS2012R2", | |
"type": "string" | |
}, | |
"sshRSAPublicKey": { | |
"metadata": { | |
"description": "SSH public key used for auth to all Linux machines. Not Required. If not set, you must provide a password key." | |
}, | |
"defaultValue": "", | |
"type": "string" | |
}, | |
"postInstallScriptURI": { | |
"metadata": { | |
"description": "After installation, this specifies a script to download and install. To disabled, set value to 'disabled'." | |
}, | |
"defaultValue": "disabled", | |
"type": "string" | |
}, | |
"isValidation": { | |
"allowedValues": [ | |
0, | |
1 | |
], | |
"defaultValue": 0, | |
"type": "int", | |
"metadata": { | |
"description": "This is testing in the validation region" | |
} | |
}, | |
"windowsAdminPassword": { | |
"metadata": { | |
"description": "Password for the Windows Virtual Machine." | |
}, | |
"defaultValue": "", | |
"type": "securestring" | |
}, | |
"linuxVersion": { | |
"metadata": { | |
"description": "This is the linux version used by the linux cluster" | |
}, | |
"defaultValue": "16.04.201606270", | |
"type": "string" | |
}, | |
"linuxOffer": { | |
"metadata": { | |
"description": "This is the offer of the image used by the linux cluster" | |
}, | |
"defaultValue": "UbuntuServer", | |
"type": "string" | |
}, | |
"windowsJumpboxOffer": { | |
"metadata": { | |
"description": "This is the windows offer used by the windows" | |
}, | |
"defaultValue": "VisualStudio", | |
"type": "string" | |
}, | |
"vmsPerStorageAccount": { | |
"metadata": { | |
"description": "This specifies the number of VMs per storage accounts" | |
}, | |
"defaultValue": 5, | |
"type": "int" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment