github.com/openshift/installer@v1.4.17/upi/azurestack/05_masters.json (about) 1 { 2 "$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", 3 "contentVersion" : "1.0.0.0", 4 "parameters" : { 5 "baseName" : { 6 "type" : "string", 7 "minLength" : 1, 8 "metadata" : { 9 "description" : "Base name to be used in resource names (usually the cluster's Infra ID)" 10 } 11 }, 12 "masterIgnition" : { 13 "type" : "string", 14 "metadata" : { 15 "description" : "Ignition content for the master nodes" 16 } 17 }, 18 "sshKeyData" : { 19 "type" : "securestring", 20 "metadata" : { 21 "description" : "SSH RSA public key file as a string" 22 } 23 }, 24 "diagnosticsStorageAccountName": { 25 "type": "string" 26 }, 27 "masterVMSize" : { 28 "type" : "string", 29 "defaultValue" : "Standard_DS4_v2", 30 "metadata" : { 31 "description" : "The size of the Master Virtual Machines" 32 } 33 }, 34 "diskSizeGB" : { 35 "type" : "int", 36 "defaultValue" : 1023, 37 "metadata" : { 38 "description" : "Size of the Master VM OS disk, in GB" 39 } 40 } 41 }, 42 "variables" : { 43 "location" : "[resourceGroup().location]", 44 "virtualNetworkName" : "[concat(parameters('baseName'), '-vnet')]", 45 "virtualNetworkID" : "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]", 46 "masterSubnetName" : "[concat(parameters('baseName'), '-master-subnet')]", 47 "masterSubnetRef" : "[concat(variables('virtualNetworkID'), '/subnets/', variables('masterSubnetName'))]", 48 "masterLoadBalancerName" : "[concat(parameters('baseName'))]", 49 "masterAvailabilitySetName" : "[concat(parameters('baseName'), '-cluster')]", 50 "internalLoadBalancerName" : "[concat(parameters('baseName'), '-internal')]", 51 "sshKeyPath" : "/home/core/.ssh/authorized_keys", 52 "clusterNsgName" : "[concat(parameters('baseName'), '-nsg')]", 53 "imageName" : "[parameters('baseName')]", 54 "numberOfMasters" : 3, 55 "vms" : { 56 "copy" : [ 57 { 58 "name" : "vmNames", 59 "count" : "[variables('numberOfMasters')]", 60 "input" : { 61 "name" : "[concat(parameters('baseName'), string('-master-'), string(copyIndex('vmNames')))]" 62 } 63 } 64 ] 65 } 66 }, 67 "resources" : [ 68 { 69 "name": "[parameters('diagnosticsStorageAccountName')]", 70 "type": "Microsoft.Storage/storageAccounts", 71 "apiVersion": "2017-10-01", 72 "location": "[variables('location')]", 73 "properties": {}, 74 "kind": "Storage", 75 "sku": { 76 "name": "Standard_LRS" 77 } 78 }, 79 { 80 "apiVersion" : "2017-10-01", 81 "type" : "Microsoft.Network/networkInterfaces", 82 "location": "[variables('location')]", 83 "copy" : { 84 "name" : "nicCopy", 85 "count" : "[variables('numberOfMasters')]" 86 }, 87 "name" : "[concat(variables('vms').vmNames[copyIndex()].name, '-nic')]", 88 "properties" : { 89 "ipConfigurations" : [ 90 { 91 "name" : "pipConfig", 92 "properties" : { 93 "privateIPAllocationMethod" : "Dynamic", 94 "subnet" : { 95 "id" : "[variables('masterSubnetRef')]" 96 }, 97 "loadBalancerBackendAddressPools" : [ 98 { 99 "id" : "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('masterLoadBalancerName'), '/backendAddressPools/', variables('masterLoadBalancerName'))]" 100 }, 101 { 102 "id" : "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('internalLoadBalancerName'), '/backendAddressPools/', variables('internalLoadBalancerName'))]" 103 } 104 ] 105 } 106 } 107 ] 108 } 109 }, 110 { 111 "apiVersion" : "2017-12-01", 112 "type" : "Microsoft.Compute/virtualMachines", 113 "location" : "[variables('location')]", 114 "copy" : { 115 "name" : "vmCopy", 116 "count" : "[variables('numberOfMasters')]" 117 }, 118 "name" : "[variables('vms').vmNames[copyIndex()].name]", 119 "dependsOn" : [ 120 "[concat('Microsoft.Network/networkInterfaces/', concat(variables('vms').vmNames[copyIndex()].name, '-nic'))]", 121 "[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]" 122 ], 123 "properties" : { 124 "availabilitySet": { 125 "id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySetName'))]" 126 }, 127 "hardwareProfile" : { 128 "vmSize" : "[parameters('masterVMSize')]" 129 }, 130 "osProfile" : { 131 "computerName" : "[variables('vms').vmNames[copyIndex()].name]", 132 "adminUsername" : "core", 133 "customData" : "[parameters('masterIgnition')]", 134 "linuxConfiguration" : { 135 "disablePasswordAuthentication" : true, 136 "ssh" : { 137 "publicKeys" : [ 138 { 139 "path" : "[variables('sshKeyPath')]", 140 "keyData" : "[parameters('sshKeyData')]" 141 } 142 ] 143 } 144 } 145 }, 146 "storageProfile" : { 147 "imageReference": { 148 "id": "[resourceId('Microsoft.Compute/images', variables('imageName'))]" 149 }, 150 "osDisk" : { 151 "name": "[concat(variables('vms').vmNames[copyIndex()].name, '_OSDisk')]", 152 "osType" : "Linux", 153 "createOption" : "FromImage", 154 "writeAcceleratorEnabled": false, 155 "managedDisk": { 156 "storageAccountType": "Standard_LRS" 157 }, 158 "diskSizeGB" : "[parameters('diskSizeGB')]" 159 } 160 }, 161 "networkProfile" : { 162 "networkInterfaces" : [ 163 { 164 "id" : "[resourceId('Microsoft.Network/networkInterfaces', concat(variables('vms').vmNames[copyIndex()].name, '-nic'))]", 165 "properties": { 166 "primary": false 167 } 168 } 169 ] 170 }, 171 "diagnosticsProfile": { 172 "bootDiagnostics": { 173 "enabled": true, 174 "storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName'))).primaryEndpoints.blob]" 175 } 176 } 177 } 178 } 179 ] 180 }