github.com/openshift/installer@v1.4.17/upi/azurestack/04_bootstrap.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 "bootstrapIgnition" : { 13 "type" : "string", 14 "minLength" : 1, 15 "metadata" : { 16 "description" : "Bootstrap ignition content for the bootstrap cluster" 17 } 18 }, 19 "sshKeyData" : { 20 "type" : "securestring", 21 "metadata" : { 22 "description" : "SSH RSA public key file as a string." 23 } 24 }, 25 "diagnosticsStorageAccountName": { 26 "type": "string" 27 }, 28 "bootstrapVMSize" : { 29 "type" : "string", 30 "defaultValue" : "Standard_DS4_v2", 31 "metadata" : { 32 "description" : "The size of the Bootstrap Virtual Machine" 33 } 34 } 35 }, 36 "variables" : { 37 "location" : "[resourceGroup().location]", 38 "virtualNetworkName" : "[concat(parameters('baseName'), '-vnet')]", 39 "virtualNetworkID" : "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]", 40 "masterSubnetName" : "[concat(parameters('baseName'), '-master-subnet')]", 41 "masterSubnetRef" : "[concat(variables('virtualNetworkID'), '/subnets/', variables('masterSubnetName'))]", 42 "masterLoadBalancerName" : "[concat(parameters('baseName'))]", 43 "masterAvailabilitySetName" : "[concat(parameters('baseName'), '-cluster')]", 44 "internalLoadBalancerName" : "[concat(parameters('baseName'), '-internal')]", 45 "sshKeyPath" : "/home/core/.ssh/authorized_keys", 46 "vmName" : "[concat(parameters('baseName'), '-bootstrap')]", 47 "nicName" : "[concat(variables('vmName'), '-nic')]", 48 "imageName" : "[parameters('baseName')]", 49 "clusterNsgName" : "[concat(parameters('baseName'), '-nsg')]", 50 "sshPublicIpAddressName" : "[concat(variables('vmName'), '-ssh-pip')]" 51 }, 52 "resources" : [ 53 { 54 "apiVersion" : "2017-10-01", 55 "type" : "Microsoft.Network/publicIPAddresses", 56 "name" : "[variables('sshPublicIpAddressName')]", 57 "location" : "[variables('location')]", 58 "sku": { 59 "name": "Basic" 60 }, 61 "properties" : { 62 "publicIPAllocationMethod" : "Static", 63 "dnsSettings" : { 64 "domainNameLabel" : "[variables('sshPublicIpAddressName')]" 65 } 66 } 67 }, 68 { 69 "apiVersion" : "2017-10-01", 70 "type" : "Microsoft.Network/networkInterfaces", 71 "name" : "[variables('nicName')]", 72 "location" : "[variables('location')]", 73 "dependsOn" : [ 74 "[resourceId('Microsoft.Network/publicIPAddresses', variables('sshPublicIpAddressName'))]" 75 ], 76 "properties" : { 77 "securityRules": [ 78 { 79 "properties": { 80 "description": "ssh-in-nic", 81 "protocol": "Tcp", 82 "sourcePortRange": "*", 83 "destinationPortRange": "22" 84 }}], 85 "ipConfigurations" : [ 86 { 87 "name" : "pipConfig", 88 "properties" : { 89 "privateIPAllocationMethod" : "Dynamic", 90 "publicIPAddress": { 91 "id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('sshPublicIpAddressName'))]" 92 }, 93 "subnet" : { 94 "id" : "[variables('masterSubnetRef')]" 95 }, 96 "loadBalancerBackendAddressPools" : [ 97 { 98 "id" : "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('masterLoadBalancerName'), '/backendAddressPools/', variables('masterLoadBalancerName'))]" 99 }, 100 { 101 "id" : "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('internalLoadBalancerName'), '/backendAddressPools/', variables('internalLoadBalancerName'))]" 102 } 103 ] 104 } 105 } 106 ] 107 } 108 }, 109 { 110 "name": "[parameters('diagnosticsStorageAccountName')]", 111 "type": "Microsoft.Storage/storageAccounts", 112 "apiVersion": "2017-10-01", 113 "location": "[variables('location')]", 114 "properties": {}, 115 "kind": "Storage", 116 "sku": { 117 "name": "Standard_LRS" 118 } 119 }, 120 { 121 "apiVersion" : "2017-12-01", 122 "type" : "Microsoft.Compute/virtualMachines", 123 "name" : "[variables('vmName')]", 124 "location" : "[variables('location')]", 125 "dependsOn" : [ 126 "[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]", 127 "[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]" 128 ], 129 "properties" : { 130 "availabilitySet": { 131 "id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySetName'))]" 132 }, 133 "hardwareProfile" : { 134 "vmSize" : "[parameters('bootstrapVMSize')]" 135 }, 136 "osProfile" : { 137 "computerName" : "[variables('vmName')]", 138 "adminUsername" : "core", 139 "customData" : "[parameters('bootstrapIgnition')]", 140 "linuxConfiguration" : { 141 "disablePasswordAuthentication" : true, 142 "ssh" : { 143 "publicKeys" : [ 144 { 145 "path" : "[variables('sshKeyPath')]", 146 "keyData" : "[parameters('sshKeyData')]" 147 } 148 ] 149 } 150 } 151 }, 152 "storageProfile" : { 153 "imageReference": { 154 "id": "[resourceId('Microsoft.Compute/images', variables('imageName'))]" 155 }, 156 "osDisk" : { 157 "name": "[concat(variables('vmName'),'_OSDisk')]", 158 "osType" : "Linux", 159 "createOption" : "FromImage", 160 "managedDisk": { 161 "storageAccountType": "Standard_LRS" 162 }, 163 "diskSizeGB" : 100 164 } 165 }, 166 "networkProfile" : { 167 "networkInterfaces" : [ 168 { 169 "id" : "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]" 170 } 171 ] 172 }, 173 "diagnosticsProfile": { 174 "bootDiagnostics": { 175 "enabled": true, 176 "storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName'))).primaryEndpoints.blob]" 177 } 178 } 179 } 180 }, 181 { 182 "apiVersion" : "2017-10-01", 183 "type": "Microsoft.Network/networkSecurityGroups/securityRules", 184 "name" : "[concat(variables('clusterNsgName'), '/bootstrap_ssh_in')]", 185 "location" : "[variables('location')]", 186 "dependsOn" : [ 187 "[resourceId('Microsoft.Compute/virtualMachines', variables('vmName'))]" 188 ], 189 "properties": { 190 "protocol" : "Tcp", 191 "sourcePortRange" : "*", 192 "destinationPortRange" : "22", 193 "sourceAddressPrefix" : "*", 194 "destinationAddressPrefix" : "*", 195 "access" : "Allow", 196 "priority" : 100, 197 "direction" : "Inbound" 198 } 199 } 200 ] 201 }