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  }