mirror of
https://github.com/openshift/installer.git
synced 2026-02-05 15:47:14 +01:00
Azure Stack UPI: Add Initial ARM Templates
Create the initial ARM templates for an Azure Stack Hub UPI cluster. Co-authored-by: John Hixson <jhixson@redhat.com> Co-authored-by: Patrick Dillon <padillon@redhat.com>
This commit is contained in:
99
upi/azurestack/01_vnet.json
Normal file
99
upi/azurestack/01_vnet.json
Normal file
@@ -0,0 +1,99 @@
|
||||
{
|
||||
"$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion" : "1.0.0.0",
|
||||
"parameters" : {
|
||||
"baseName" : {
|
||||
"type" : "string",
|
||||
"minLength" : 1,
|
||||
"metadata" : {
|
||||
"description" : "Base name to be used in resource names (usually the cluster's Infra ID)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables" : {
|
||||
"location" : "[resourceGroup().location]",
|
||||
"virtualNetworkName" : "[concat(parameters('baseName'), '-vnet')]",
|
||||
"addressPrefix" : "10.0.0.0/16",
|
||||
"masterSubnetName" : "[concat(parameters('baseName'), '-master-subnet')]",
|
||||
"masterSubnetPrefix" : "10.0.0.0/24",
|
||||
"nodeSubnetName" : "[concat(parameters('baseName'), '-worker-subnet')]",
|
||||
"nodeSubnetPrefix" : "10.0.1.0/24",
|
||||
"clusterNsgName" : "[concat(parameters('baseName'), '-nsg')]"
|
||||
},
|
||||
"resources" : [
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type" : "Microsoft.Network/virtualNetworks",
|
||||
"name" : "[variables('virtualNetworkName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"dependsOn" : [
|
||||
"[concat('Microsoft.Network/networkSecurityGroups/', variables('clusterNsgName'))]"
|
||||
],
|
||||
"properties" : {
|
||||
"addressSpace" : {
|
||||
"addressPrefixes" : [
|
||||
"[variables('addressPrefix')]"
|
||||
]
|
||||
},
|
||||
"subnets" : [
|
||||
{
|
||||
"name" : "[variables('masterSubnetName')]",
|
||||
"properties" : {
|
||||
"addressPrefix" : "[variables('masterSubnetPrefix')]",
|
||||
"serviceEndpoints": [],
|
||||
"networkSecurityGroup" : {
|
||||
"id" : "[resourceId('Microsoft.Network/networkSecurityGroups', variables('clusterNsgName'))]"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "[variables('nodeSubnetName')]",
|
||||
"properties" : {
|
||||
"addressPrefix" : "[variables('nodeSubnetPrefix')]",
|
||||
"serviceEndpoints": [],
|
||||
"networkSecurityGroup" : {
|
||||
"id" : "[resourceId('Microsoft.Network/networkSecurityGroups', variables('clusterNsgName'))]"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type" : "Microsoft.Network/networkSecurityGroups",
|
||||
"name" : "[variables('clusterNsgName')]",
|
||||
"apiVersion" : "2017-10-01",
|
||||
"location" : "[variables('location')]",
|
||||
"properties" : {
|
||||
"securityRules" : [
|
||||
{
|
||||
"name" : "apiserver_in",
|
||||
"properties" : {
|
||||
"protocol" : "Tcp",
|
||||
"sourcePortRange" : "*",
|
||||
"destinationPortRange" : "6443",
|
||||
"sourceAddressPrefix" : "*",
|
||||
"destinationAddressPrefix" : "*",
|
||||
"access" : "Allow",
|
||||
"priority" : 101,
|
||||
"direction" : "Inbound"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "ign_in",
|
||||
"properties" : {
|
||||
"protocol" : "*",
|
||||
"sourcePortRange" : "*",
|
||||
"destinationPortRange" : "22623",
|
||||
"sourceAddressPrefix" : "*",
|
||||
"destinationAddressPrefix" : "*",
|
||||
"access" : "Allow",
|
||||
"priority" : 102,
|
||||
"direction" : "Inbound"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
41
upi/azurestack/02_storage.json
Normal file
41
upi/azurestack/02_storage.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion" : "1.0.0.0",
|
||||
"parameters" : {
|
||||
"baseName" : {
|
||||
"type" : "string",
|
||||
"minLength" : 1,
|
||||
"metadata" : {
|
||||
"description" : "Base name to be used in resource names (usually the cluster's Infra ID)"
|
||||
}
|
||||
},
|
||||
"vhdBlobURL" : {
|
||||
"type" : "string",
|
||||
"metadata" : {
|
||||
"description" : "URL pointing to the blob where the VHD to be used to create master and worker machines is located"
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables" : {
|
||||
"location" : "[resourceGroup().location]",
|
||||
"imageName" : "[concat(parameters('baseName'), '-image')]"
|
||||
},
|
||||
"resources" : [
|
||||
{
|
||||
"apiVersion" : "2017-12-01",
|
||||
"type": "Microsoft.Compute/images",
|
||||
"name": "[variables('imageName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"properties": {
|
||||
"storageProfile": {
|
||||
"osDisk": {
|
||||
"osType": "Linux",
|
||||
"osState": "Generalized",
|
||||
"blobUri": "[parameters('vhdBlobURL')]",
|
||||
"storageAccountType": "Standard_LRS"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
149
upi/azurestack/03_infra.json
Normal file
149
upi/azurestack/03_infra.json
Normal file
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion" : "1.0.0.0",
|
||||
"parameters" : {
|
||||
"baseName" : {
|
||||
"type" : "string",
|
||||
"minLength" : 1,
|
||||
"metadata" : {
|
||||
"description" : "Base name to be used in resource names (usually the cluster's Infra ID)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables" : {
|
||||
"location" : "[resourceGroup().location]",
|
||||
"virtualNetworkName" : "[concat(parameters('baseName'), '-vnet')]",
|
||||
"virtualNetworkID" : "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
|
||||
"masterSubnetName" : "[concat(parameters('baseName'), '-master-subnet')]",
|
||||
"masterSubnetRef" : "[concat(variables('virtualNetworkID'), '/subnets/', variables('masterSubnetName'))]",
|
||||
"masterPublicIpAddressName" : "[concat(parameters('baseName'), '-master-pip')]",
|
||||
"masterPublicIpAddressID" : "[resourceId('Microsoft.Network/publicIPAddresses', variables('masterPublicIpAddressName'))]",
|
||||
"masterLoadBalancerName" : "[concat(parameters('baseName'))]",
|
||||
"masterLoadBalancerID" : "[resourceId('Microsoft.Network/loadBalancers', variables('masterLoadBalancerName'))]",
|
||||
"masterAvailabilitySetName" : "[concat(parameters('baseName'), '-avset')]",
|
||||
"internalLoadBalancerName" : "[concat(parameters('baseName'), '-internal-lb')]",
|
||||
"internalLoadBalancerID" : "[resourceId('Microsoft.Network/loadBalancers', variables('internalLoadBalancerName'))]",
|
||||
"skuName": "Basic"
|
||||
},
|
||||
"resources" : [
|
||||
{
|
||||
"apiVersion": "2017-03-30",
|
||||
"type" : "Microsoft.Compute/availabilitySets",
|
||||
"name" : "[variables('masterAvailabilitySetName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"properties": {
|
||||
"platformFaultDomainCount": "2",
|
||||
"platformUpdateDomainCount": "5"
|
||||
},
|
||||
"sku": {
|
||||
"name": "Aligned"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type" : "Microsoft.Network/publicIPAddresses",
|
||||
"name" : "[variables('masterPublicIpAddressName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"sku": {
|
||||
"name": "[variables('skuName')]"
|
||||
},
|
||||
"properties" : {
|
||||
"publicIPAllocationMethod" : "Static",
|
||||
"dnsSettings" : {
|
||||
"domainNameLabel" : "[variables('masterPublicIpAddressName')]"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type" : "Microsoft.Network/loadBalancers",
|
||||
"name" : "[variables('masterLoadBalancerName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"sku": {
|
||||
"name": "[variables('skuName')]"
|
||||
},
|
||||
"dependsOn" : [
|
||||
"[concat('Microsoft.Network/publicIPAddresses/', variables('masterPublicIpAddressName'))]"
|
||||
],
|
||||
"properties" : {
|
||||
"frontendIPConfigurations" : [
|
||||
{
|
||||
"name" : "public-lb-ip",
|
||||
"properties" : {
|
||||
"publicIPAddress" : {
|
||||
"id" : "[variables('masterPublicIpAddressID')]"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"backendAddressPools" : [
|
||||
{
|
||||
"name" : "[variables('masterLoadBalancerName')]"
|
||||
}
|
||||
],
|
||||
"loadBalancingRules" : [
|
||||
{
|
||||
"name" : "api-internal",
|
||||
"properties" : {
|
||||
"frontendIPConfiguration" : {
|
||||
"id" :"[concat(variables('masterLoadBalancerID'), '/frontendIPConfigurations/public-lb-ip')]"
|
||||
},
|
||||
"backendAddressPool" : {
|
||||
"id" : "[concat(variables('masterLoadBalancerID'), '/backendAddressPools/', variables('masterLoadBalancerName'))]"
|
||||
},
|
||||
"protocol" : "Tcp",
|
||||
"loadDistribution" : "Default",
|
||||
"idleTimeoutInMinutes" : 30,
|
||||
"frontendPort" : 6443,
|
||||
"backendPort" : 6443,
|
||||
"probe" : {
|
||||
"id" : "[concat(variables('masterLoadBalancerID'), '/probes/api-internal-probe')]"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "sint",
|
||||
"properties" : {
|
||||
"frontendIPConfiguration" : {
|
||||
"id" : "[concat(variables('masterLoadBalancerID'), '/frontendIPConfigurations/public-lb-ip')]"
|
||||
},
|
||||
"frontendPort" : 22623,
|
||||
"backendPort" : 22623,
|
||||
"enableFloatingIP" : false,
|
||||
"idleTimeoutInMinutes" : 30,
|
||||
"protocol" : "Tcp",
|
||||
"enableTcpReset" : false,
|
||||
"loadDistribution" : "Default",
|
||||
"backendAddressPool" : {
|
||||
"id" : "[concat(variables('masterLoadBalancerID'), '/backendAddressPools/', variables('masterLoadBalancerName'))]"
|
||||
},
|
||||
"probe" : {
|
||||
"id" : "[concat(variables('masterLoadBalancerID'), '/probes/sint-probe')]"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"probes" : [
|
||||
{
|
||||
"name" : "api-internal-probe",
|
||||
"properties" : {
|
||||
"protocol" : "Tcp",
|
||||
"port" : 6443,
|
||||
"intervalInSeconds" : 10,
|
||||
"numberOfProbes" : 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"name" : "sint-probe",
|
||||
"properties" : {
|
||||
"protocol" : "Tcp",
|
||||
"port" : 22623,
|
||||
"intervalInSeconds" : 10,
|
||||
"numberOfProbes" : 3
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
198
upi/azurestack/04_bootstrap.json
Normal file
198
upi/azurestack/04_bootstrap.json
Normal file
@@ -0,0 +1,198 @@
|
||||
{
|
||||
"$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion" : "1.0.0.0",
|
||||
"parameters" : {
|
||||
"baseName" : {
|
||||
"type" : "string",
|
||||
"minLength" : 1,
|
||||
"metadata" : {
|
||||
"description" : "Base name to be used in resource names (usually the cluster's Infra ID)"
|
||||
}
|
||||
},
|
||||
"bootstrapIgnition" : {
|
||||
"type" : "string",
|
||||
"minLength" : 1,
|
||||
"metadata" : {
|
||||
"description" : "Bootstrap ignition content for the bootstrap cluster"
|
||||
}
|
||||
},
|
||||
"sshKeyData" : {
|
||||
"type" : "securestring",
|
||||
"metadata" : {
|
||||
"description" : "SSH RSA public key file as a string."
|
||||
}
|
||||
},
|
||||
"diagnosticsStorageAccountName": {
|
||||
"type": "string"
|
||||
},
|
||||
"bootstrapVMSize" : {
|
||||
"type" : "string",
|
||||
"defaultValue" : "Standard_DS4_v2",
|
||||
"metadata" : {
|
||||
"description" : "The size of the Bootstrap Virtual Machine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables" : {
|
||||
"location" : "[resourceGroup().location]",
|
||||
"virtualNetworkName" : "[concat(parameters('baseName'), '-vnet')]",
|
||||
"virtualNetworkID" : "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
|
||||
"masterSubnetName" : "[concat(parameters('baseName'), '-master-subnet')]",
|
||||
"masterSubnetRef" : "[concat(variables('virtualNetworkID'), '/subnets/', variables('masterSubnetName'))]",
|
||||
"masterLoadBalancerName" : "[concat(parameters('baseName'))]",
|
||||
"masterAvailabilitySetName" : "[concat(parameters('baseName'), '-avset')]",
|
||||
"internalLoadBalancerName" : "[concat(parameters('baseName'), '-internal-lb')]",
|
||||
"sshKeyPath" : "/home/core/.ssh/authorized_keys",
|
||||
"vmName" : "[concat(parameters('baseName'), '-bootstrap')]",
|
||||
"nicName" : "[concat(variables('vmName'), '-nic')]",
|
||||
"imageName" : "[concat(parameters('baseName'), '-image')]",
|
||||
"clusterNsgName" : "[concat(parameters('baseName'), '-nsg')]",
|
||||
"sshPublicIpAddressName" : "[concat(variables('vmName'), '-ssh-pip')]"
|
||||
},
|
||||
"resources" : [
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type" : "Microsoft.Network/publicIPAddresses",
|
||||
"name" : "[variables('sshPublicIpAddressName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"sku": {
|
||||
"name": "Basic"
|
||||
},
|
||||
"properties" : {
|
||||
"publicIPAllocationMethod" : "Static",
|
||||
"dnsSettings" : {
|
||||
"domainNameLabel" : "[variables('sshPublicIpAddressName')]"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type" : "Microsoft.Network/networkInterfaces",
|
||||
"name" : "[variables('nicName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"dependsOn" : [
|
||||
"[resourceId('Microsoft.Network/publicIPAddresses', variables('sshPublicIpAddressName'))]"
|
||||
],
|
||||
"properties" : {
|
||||
"securityRules": [
|
||||
{
|
||||
"properties": {
|
||||
"description": "ssh-in-nic",
|
||||
"protocol": "Tcp",
|
||||
"sourcePortRange": "*",
|
||||
"destinationPortRange": "22"
|
||||
}}],
|
||||
"ipConfigurations" : [
|
||||
{
|
||||
"name" : "pipConfig",
|
||||
"properties" : {
|
||||
"privateIPAllocationMethod" : "Dynamic",
|
||||
"publicIPAddress": {
|
||||
"id": "[resourceId('Microsoft.Network/publicIPAddresses', variables('sshPublicIpAddressName'))]"
|
||||
},
|
||||
"subnet" : {
|
||||
"id" : "[variables('masterSubnetRef')]"
|
||||
},
|
||||
"loadBalancerBackendAddressPools" : [
|
||||
{
|
||||
"id" : "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('masterLoadBalancerName'), '/backendAddressPools/', variables('masterLoadBalancerName'))]"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "[parameters('diagnosticsStorageAccountName')]",
|
||||
"type": "Microsoft.Storage/storageAccounts",
|
||||
"apiVersion": "2017-10-01",
|
||||
"location": "[variables('location')]",
|
||||
"properties": {},
|
||||
"kind": "Storage",
|
||||
"sku": {
|
||||
"name": "Standard_LRS"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-12-01",
|
||||
"type" : "Microsoft.Compute/virtualMachines",
|
||||
"name" : "[variables('vmName')]",
|
||||
"location" : "[variables('location')]",
|
||||
"dependsOn" : [
|
||||
"[concat('Microsoft.Network/networkInterfaces/', variables('nicName'))]",
|
||||
"[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]"
|
||||
],
|
||||
"properties" : {
|
||||
"availabilitySet": {
|
||||
"id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySetName'))]"
|
||||
},
|
||||
"hardwareProfile" : {
|
||||
"vmSize" : "[parameters('bootstrapVMSize')]"
|
||||
},
|
||||
"osProfile" : {
|
||||
"computerName" : "[variables('vmName')]",
|
||||
"adminUsername" : "core",
|
||||
"customData" : "[parameters('bootstrapIgnition')]",
|
||||
"linuxConfiguration" : {
|
||||
"disablePasswordAuthentication" : true,
|
||||
"ssh" : {
|
||||
"publicKeys" : [
|
||||
{
|
||||
"path" : "[variables('sshKeyPath')]",
|
||||
"keyData" : "[parameters('sshKeyData')]"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"storageProfile" : {
|
||||
"imageReference": {
|
||||
"id": "[resourceId('Microsoft.Compute/images', variables('imageName'))]"
|
||||
},
|
||||
"osDisk" : {
|
||||
"name": "[concat(variables('vmName'),'_OSDisk')]",
|
||||
"osType" : "Linux",
|
||||
"createOption" : "FromImage",
|
||||
"managedDisk": {
|
||||
"storageAccountType": "Standard_LRS"
|
||||
},
|
||||
"diskSizeGB" : 100
|
||||
}
|
||||
},
|
||||
"networkProfile" : {
|
||||
"networkInterfaces" : [
|
||||
{
|
||||
"id" : "[resourceId('Microsoft.Network/networkInterfaces', variables('nicName'))]"
|
||||
}
|
||||
]
|
||||
},
|
||||
"diagnosticsProfile": {
|
||||
"bootDiagnostics": {
|
||||
"enabled": true,
|
||||
"storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName'))).primaryEndpoints.blob]"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type": "Microsoft.Network/networkSecurityGroups/securityRules",
|
||||
"name" : "[concat(variables('clusterNsgName'), '/bootstrap_ssh_in')]",
|
||||
"location" : "[variables('location')]",
|
||||
"dependsOn" : [
|
||||
"[resourceId('Microsoft.Compute/virtualMachines', variables('vmName'))]"
|
||||
],
|
||||
"properties": {
|
||||
"protocol" : "Tcp",
|
||||
"sourcePortRange" : "*",
|
||||
"destinationPortRange" : "22",
|
||||
"sourceAddressPrefix" : "*",
|
||||
"destinationAddressPrefix" : "*",
|
||||
"access" : "Allow",
|
||||
"priority" : 100,
|
||||
"direction" : "Inbound"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
177
upi/azurestack/05_masters.json
Normal file
177
upi/azurestack/05_masters.json
Normal file
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion" : "1.0.0.0",
|
||||
"parameters" : {
|
||||
"baseName" : {
|
||||
"type" : "string",
|
||||
"minLength" : 1,
|
||||
"metadata" : {
|
||||
"description" : "Base name to be used in resource names (usually the cluster's Infra ID)"
|
||||
}
|
||||
},
|
||||
"masterIgnition" : {
|
||||
"type" : "string",
|
||||
"metadata" : {
|
||||
"description" : "Ignition content for the master nodes"
|
||||
}
|
||||
},
|
||||
"sshKeyData" : {
|
||||
"type" : "securestring",
|
||||
"metadata" : {
|
||||
"description" : "SSH RSA public key file as a string"
|
||||
}
|
||||
},
|
||||
"diagnosticsStorageAccountName": {
|
||||
"type": "string"
|
||||
},
|
||||
"masterVMSize" : {
|
||||
"type" : "string",
|
||||
"defaultValue" : "Standard_DS4_v2",
|
||||
"metadata" : {
|
||||
"description" : "The size of the Master Virtual Machines"
|
||||
}
|
||||
},
|
||||
"diskSizeGB" : {
|
||||
"type" : "int",
|
||||
"defaultValue" : 1023,
|
||||
"metadata" : {
|
||||
"description" : "Size of the Master VM OS disk, in GB"
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables" : {
|
||||
"location" : "[resourceGroup().location]",
|
||||
"virtualNetworkName" : "[concat(parameters('baseName'), '-vnet')]",
|
||||
"virtualNetworkID" : "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
|
||||
"masterSubnetName" : "[concat(parameters('baseName'), '-master-subnet')]",
|
||||
"masterSubnetRef" : "[concat(variables('virtualNetworkID'), '/subnets/', variables('masterSubnetName'))]",
|
||||
"masterLoadBalancerName" : "[concat(parameters('baseName'))]",
|
||||
"masterAvailabilitySetName" : "[concat(parameters('baseName'), '-avset')]",
|
||||
"internalLoadBalancerName" : "[concat(parameters('baseName'), '-internal-lb')]",
|
||||
"sshKeyPath" : "/home/core/.ssh/authorized_keys",
|
||||
"clusterNsgName" : "[concat(parameters('baseName'), '-nsg')]",
|
||||
"imageName" : "[concat(parameters('baseName'), '-image')]",
|
||||
"numberOfMasters" : 3,
|
||||
"vms" : {
|
||||
"copy" : [
|
||||
{
|
||||
"name" : "vmNames",
|
||||
"count" : "[variables('numberOfMasters')]",
|
||||
"input" : {
|
||||
"name" : "[concat(parameters('baseName'), string('-master-'), string(copyIndex('vmNames')))]"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"resources" : [
|
||||
{
|
||||
"name": "[parameters('diagnosticsStorageAccountName')]",
|
||||
"type": "Microsoft.Storage/storageAccounts",
|
||||
"apiVersion": "2017-10-01",
|
||||
"location": "[variables('location')]",
|
||||
"properties": {},
|
||||
"kind": "Storage",
|
||||
"sku": {
|
||||
"name": "Standard_LRS"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type" : "Microsoft.Network/networkInterfaces",
|
||||
"location": "[variables('location')]",
|
||||
"copy" : {
|
||||
"name" : "nicCopy",
|
||||
"count" : "[variables('numberOfMasters')]"
|
||||
},
|
||||
"name" : "[concat(variables('vms').vmNames[copyIndex()].name, '-nic')]",
|
||||
"properties" : {
|
||||
"ipConfigurations" : [
|
||||
{
|
||||
"name" : "pipConfig",
|
||||
"properties" : {
|
||||
"privateIPAllocationMethod" : "Dynamic",
|
||||
"subnet" : {
|
||||
"id" : "[variables('masterSubnetRef')]"
|
||||
},
|
||||
"loadBalancerBackendAddressPools" : [
|
||||
{
|
||||
"id" : "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', resourceGroup().name, '/providers/Microsoft.Network/loadBalancers/', variables('masterLoadBalancerName'), '/backendAddressPools/', variables('masterLoadBalancerName'))]"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-12-01",
|
||||
"type" : "Microsoft.Compute/virtualMachines",
|
||||
"location" : "[variables('location')]",
|
||||
"copy" : {
|
||||
"name" : "vmCopy",
|
||||
"count" : "[variables('numberOfMasters')]"
|
||||
},
|
||||
"name" : "[variables('vms').vmNames[copyIndex()].name]",
|
||||
"dependsOn" : [
|
||||
"[concat('Microsoft.Network/networkInterfaces/', concat(variables('vms').vmNames[copyIndex()].name, '-nic'))]",
|
||||
"[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]"
|
||||
],
|
||||
"properties" : {
|
||||
"availabilitySet": {
|
||||
"id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySetName'))]"
|
||||
},
|
||||
"hardwareProfile" : {
|
||||
"vmSize" : "[parameters('masterVMSize')]"
|
||||
},
|
||||
"osProfile" : {
|
||||
"computerName" : "[variables('vms').vmNames[copyIndex()].name]",
|
||||
"adminUsername" : "core",
|
||||
"customData" : "[parameters('masterIgnition')]",
|
||||
"linuxConfiguration" : {
|
||||
"disablePasswordAuthentication" : true,
|
||||
"ssh" : {
|
||||
"publicKeys" : [
|
||||
{
|
||||
"path" : "[variables('sshKeyPath')]",
|
||||
"keyData" : "[parameters('sshKeyData')]"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"storageProfile" : {
|
||||
"imageReference": {
|
||||
"id": "[resourceId('Microsoft.Compute/images', variables('imageName'))]"
|
||||
},
|
||||
"osDisk" : {
|
||||
"name": "[concat(variables('vms').vmNames[copyIndex()].name, '_OSDisk')]",
|
||||
"osType" : "Linux",
|
||||
"createOption" : "FromImage",
|
||||
"writeAcceleratorEnabled": false,
|
||||
"managedDisk": {
|
||||
"storageAccountType": "Standard_LRS"
|
||||
},
|
||||
"diskSizeGB" : "[parameters('diskSizeGB')]"
|
||||
}
|
||||
},
|
||||
"networkProfile" : {
|
||||
"networkInterfaces" : [
|
||||
{
|
||||
"id" : "[resourceId('Microsoft.Network/networkInterfaces', concat(variables('vms').vmNames[copyIndex()].name, '-nic'))]",
|
||||
"properties": {
|
||||
"primary": false
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"diagnosticsProfile": {
|
||||
"bootDiagnostics": {
|
||||
"enabled": true,
|
||||
"storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName'))).primaryEndpoints.blob]"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
172
upi/azurestack/06_workers.json
Normal file
172
upi/azurestack/06_workers.json
Normal file
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"$schema" : "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion" : "1.0.0.0",
|
||||
"parameters" : {
|
||||
"baseName" : {
|
||||
"type" : "string",
|
||||
"minLength" : 1,
|
||||
"metadata" : {
|
||||
"description" : "Base name to be used in resource names (usually the cluster's Infra ID)"
|
||||
}
|
||||
},
|
||||
"workerIgnition" : {
|
||||
"type" : "string",
|
||||
"metadata" : {
|
||||
"description" : "Ignition content for the worker nodes"
|
||||
}
|
||||
},
|
||||
"numberOfNodes" : {
|
||||
"type" : "int",
|
||||
"defaultValue" : 3,
|
||||
"minValue" : 2,
|
||||
"maxValue" : 30,
|
||||
"metadata" : {
|
||||
"description" : "Number of OpenShift compute nodes to deploy"
|
||||
}
|
||||
},
|
||||
"sshKeyData" : {
|
||||
"type" : "securestring",
|
||||
"metadata" : {
|
||||
"description" : "SSH RSA public key file as a string"
|
||||
}
|
||||
},
|
||||
"diagnosticsStorageAccountName": {
|
||||
"type": "string"
|
||||
},
|
||||
"nodeVMSize" : {
|
||||
"type" : "string",
|
||||
"defaultValue" : "Standard_DS4_v2",
|
||||
"metadata" : {
|
||||
"description" : "The size of the each Node Virtual Machine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables" : {
|
||||
"location" : "[resourceGroup().location]",
|
||||
"virtualNetworkName" : "[concat(parameters('baseName'), '-vnet')]",
|
||||
"virtualNetworkID" : "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
|
||||
"nodeSubnetName" : "[concat(parameters('baseName'), '-worker-subnet')]",
|
||||
"nodeSubnetRef" : "[concat(variables('virtualNetworkID'), '/subnets/', variables('nodeSubnetName'))]",
|
||||
"infraLoadBalancerName" : "[parameters('baseName')]",
|
||||
"sshKeyPath" : "/home/core/.ssh/authorized_keys",
|
||||
"identityName" : "[concat(parameters('baseName'), '-identity')]",
|
||||
"imageName" : "[concat(parameters('baseName'), '-image')]",
|
||||
"masterAvailabilitySetName" : "[concat(parameters('baseName'), '-avset')]",
|
||||
"numberOfNodes" : "[parameters('numberOfNodes')]",
|
||||
"vms" : {
|
||||
"copy" : [
|
||||
{
|
||||
"name" : "vmNames",
|
||||
"count" : "[parameters('numberOfNodes')]",
|
||||
"input" : {
|
||||
"name" : "[concat(parameters('baseName'), string('-worker-'), string(copyIndex('vmNames')))]"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"resources" : [
|
||||
{
|
||||
"name": "[parameters('diagnosticsStorageAccountName')]",
|
||||
"type": "Microsoft.Storage/storageAccounts",
|
||||
"apiVersion": "2017-10-01",
|
||||
"location": "[variables('location')]",
|
||||
"properties": {},
|
||||
"kind": "Storage",
|
||||
"sku": {
|
||||
"name": "Standard_LRS"
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-10-01",
|
||||
"type" : "Microsoft.Network/networkInterfaces",
|
||||
"location": "[variables('location')]",
|
||||
"copy" : {
|
||||
"name" : "nicCopy",
|
||||
"count" : "[variables('numberOfNodes')]"
|
||||
},
|
||||
"name" : "[concat(variables('vms').vmNames[copyIndex()].name, '-nic')]",
|
||||
"properties" : {
|
||||
"ipConfigurations" : [
|
||||
{
|
||||
"name" : "pipConfig",
|
||||
"properties" : {
|
||||
"privateIPAllocationMethod" : "Dynamic",
|
||||
"subnet" : {
|
||||
"id" : "[variables('nodeSubnetRef')]"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"apiVersion" : "2017-12-01",
|
||||
"type" : "Microsoft.Compute/virtualMachines",
|
||||
"location" : "[variables('location')]",
|
||||
"copy" : {
|
||||
"name" : "vmCopy",
|
||||
"count" : "[variables('numberOfNodes')]"
|
||||
},
|
||||
"name" : "[variables('vms').vmNames[copyIndex()].name]",
|
||||
"dependsOn" : [
|
||||
"[concat('Microsoft.Network/networkInterfaces/', concat(variables('vms').vmNames[copyIndex()].name, '-nic'))]",
|
||||
"[concat('Microsoft.Storage/storageAccounts/', parameters('diagnosticsStorageAccountName'))]"
|
||||
],
|
||||
"properties" : {
|
||||
"availabilitySet": {
|
||||
"id": "[resourceId('Microsoft.Compute/availabilitySets',variables('masterAvailabilitySetName'))]"
|
||||
},
|
||||
"hardwareProfile" : {
|
||||
"vmSize" : "[parameters('nodeVMSize')]"
|
||||
},
|
||||
"osProfile" : {
|
||||
"computerName" : "[variables('vms').vmNames[copyIndex()].name]",
|
||||
"adminUsername" : "core",
|
||||
"customData" : "[parameters('workerIgnition')]",
|
||||
"linuxConfiguration" : {
|
||||
"disablePasswordAuthentication" : true,
|
||||
"ssh" : {
|
||||
"publicKeys" : [
|
||||
{
|
||||
"path" : "[variables('sshKeyPath')]",
|
||||
"keyData" : "[parameters('sshKeyData')]"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"storageProfile" : {
|
||||
"imageReference": {
|
||||
"id": "[resourceId('Microsoft.Compute/images', variables('imageName'))]"
|
||||
},
|
||||
"osDisk" : {
|
||||
"name": "[concat(variables('vms').vmNames[copyIndex()].name,'_OSDisk')]",
|
||||
"osType" : "Linux",
|
||||
"createOption" : "FromImage",
|
||||
"managedDisk": {
|
||||
"storageAccountType": "Standard_LRS"
|
||||
},
|
||||
"diskSizeGB": 128
|
||||
}
|
||||
},
|
||||
"networkProfile" : {
|
||||
"networkInterfaces" : [
|
||||
{
|
||||
"id" : "[resourceId('Microsoft.Network/networkInterfaces', concat(variables('vms').vmNames[copyIndex()].name, '-nic'))]",
|
||||
"properties": {
|
||||
"primary": true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"diagnosticsProfile": {
|
||||
"bootDiagnostics": {
|
||||
"enabled": true,
|
||||
"storageUri": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('diagnosticsStorageAccountName'))).primaryEndpoints.blob]"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user