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  }