Last active
September 1, 2020 19:05
-
-
Save iandow/ab9204881b2f4161099bb6e468936499 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"handler": "Microsoft.Compute.MultiVm", | |
"version": "0.0.1-preview", | |
"parameters": | |
{ | |
"basics": | |
[ | |
{ | |
"name": "environmentName", | |
"type": "Microsoft.Common.TextBox", | |
"label": "Environment Name", | |
"defaultValue": "", | |
"toolTip": "The environment name. Used as the prefix for resource names created by this template. It cannot be more than 13 characters long.", | |
"constraints": | |
{ | |
"required": true, | |
"regex": "^[a-zA-Z0-9]{1,13}$", | |
"validationMessage": "Only alphanumeric characters are allowed, and the value must be 1-13 characters long." | |
}, | |
"options": {} | |
}, | |
{ | |
"name": "adminUsername", | |
"type": "Microsoft.Compute.UserNameTextBox", | |
"label": "Username", | |
"toolTip": "Admin username for the VMs.", | |
"osPlatform": "Linux" | |
}, | |
{ | |
"name": "adminPassword", | |
"type": "Microsoft.Compute.CredentialsCombo", | |
"label": | |
{ | |
"authenticationType": "Authentication type", | |
"password": "Password", | |
"confirmPassword": "Confirm password", | |
"sshPublicKey": "SSH public key" | |
}, | |
"toolTip": | |
{ | |
"authenticationType": "Select the authentication type.", | |
"password": "Enter the password for 'Password' authentication type.", | |
"sshPublicKey": "Enter the SSH Public Key for 'SSH public key' authentication type." | |
}, | |
"constraints": | |
{ | |
"required": true | |
}, | |
"options": | |
{ | |
"hideConfirmation": false | |
}, | |
"osPlatform": "Linux" | |
} | |
], | |
"steps": | |
[ | |
{ | |
"name": "commonSettings", | |
"label": "Common Settings", | |
"subLabel": | |
{ | |
"preValidation": "Configure common settings", | |
"postValidation": "Done" | |
}, | |
"bladeTitle": "Common Settings", | |
"elements": | |
[ | |
{ | |
"name": "storageAccount", | |
"type": "Microsoft.Storage.StorageAccountSelector", | |
"label": "Storage Account", | |
"defaultValue": | |
{ | |
"name": "appintstorage01", | |
"type": "Standard_LRS" | |
} | |
}, | |
{ | |
"name": "virtualNetwork", | |
"type": "Microsoft.Network.VirtualNetworkCombo", | |
"label": { | |
"virtualNetwork": "Virtual Network", | |
"subnets": "Subnets" | |
}, | |
"toolTip": | |
{ | |
"virtualNetwork": "Virtual network.", | |
"subnets": "Subnets in the selected virtual network." | |
}, | |
"defaultValue": | |
{ | |
"name": "appintvnet01", | |
"addressPrefixSize": "/16" | |
}, | |
"constraints": { | |
"minAddressPrefixSize": "/16" | |
}, | |
"subnets": { | |
"subnet1": { | |
"label": "First Subnet", | |
"defaultValue": { | |
"name": "default", | |
"addressPrefixSize": "/24" | |
}, | |
"constraints": { | |
"minAddressPrefixSize": "/24", | |
"minAddressCount": 0, | |
"requireContiguousAddresses": true | |
} | |
} | |
} | |
} | |
] | |
}, | |
{ | |
"name": "aiConfiguration", | |
"label": "AppInternals Configuration", | |
"subLabel": | |
{ | |
"preValidation": "Configure AppInternals settings", | |
"postValidation": "Done" | |
}, | |
"bladeTitle": "AppInternals Configuration", | |
"elements": | |
[ | |
{ | |
"name": "publicIP", | |
"type": "Microsoft.Network.PublicIpAddressCombo", | |
"label": | |
{ | |
"publicIpAddress": "Public IP Address", | |
"domainNameLabel": "Domain Name Label" | |
}, | |
"toolTip": | |
{ | |
"publicIpAddress": "The name of the Public IP to be assigned to the AppInternals node.", | |
"domainNameLabel": "The domain name label for the AppInternals VM that has a public IP. For example: 'appint01'. If the region selected is 'West US', then the full DNS name for this example would be 'appint01.westus.cloudapp.azure.com'." | |
}, | |
"defaultValue": | |
{ | |
"publicIpAddressName": "appinternals", | |
"domainNameLabel": "appinternals" | |
}, | |
"options": | |
{ | |
"hideNone": true, | |
"hideDomainNameLabel": false | |
} | |
}, | |
{ | |
"name": "aiVMSize", | |
"type": "Microsoft.Compute.SizeSelector", | |
"label": "AppInternals VM Size", | |
"toolTip": "The size of the AppInternals VM.", | |
"recommendedSizes": | |
[ | |
"Standard_A4", | |
"Standard_A5", | |
"Standard_A6" | |
], | |
"osPlatform": "Linux", | |
"imageReference": | |
{ | |
"publisher": "riverbed", | |
"offer": "riverbed-steelcentral-appinternals", | |
"sku": "ai_byol" | |
}, | |
"count": 1 | |
} | |
] | |
}, | |
{ | |
"name": "aiCustomerInformation", | |
"label": "Customer Information", | |
"subLabel": | |
{ | |
"preValidation": "Enter Customer Information", | |
"postValidation": "Done" | |
}, | |
"bladeTitle": "Customer Information", | |
"elements": | |
[ | |
{ | |
"label": "Are you an existing Riverbed customer?", | |
"name": "existingCustomer", | |
"type": "Microsoft.Common.DropDown", | |
"defaultValue": "", | |
"toolTip": "Select 'No' if unsure", | |
"constraints": { | |
"required": true, | |
"allowedValues": [ | |
{ | |
"label": "Yes", | |
"value": "yes" | |
}, | |
{ | |
"label": "No", | |
"value": "no" | |
} | |
] | |
} | |
}, | |
{ | |
"label": "First Name", | |
"name": "firstName", | |
"type": "Microsoft.Common.TextBox", | |
"toolTip": "Enter your first name.", | |
"constraints": | |
{ | |
"required": true, | |
"regex": "^[a-zA-Z'.\\s]{1,100}$", | |
"validationMessage": "Invalid name. Allowed letters are a-z and A-Z. Must be no more than 100 characters long." | |
} | |
}, | |
{ | |
"label": "Last Name", | |
"name": "lastName", | |
"type": "Microsoft.Common.TextBox", | |
"toolTip": "Enter your last name.", | |
"constraints": | |
{ | |
"required": true, | |
"regex": "^[a-zA-Z'.\\s]{1,100}$", | |
"validationMessage": "Invalid name. Allowed letters are a-z and A-Z. Must be no more than 100 characters long." | |
} | |
}, | |
{ | |
"label": "Job Title/Role", | |
"name": "jobTitle", | |
"type": "Microsoft.Common.TextBox", | |
"toolTip": "Enter your job title or role.", | |
"constraints": | |
{ | |
"required": true, | |
"regex": "^[a-zA-Z0-9'.,\\s]{3,100}$", | |
"validationMessage": "Invalid name. Only alphanumeric characters are allowed, and the value must be 3-100 characters long." | |
} | |
}, | |
{ | |
"label": "Email Address", | |
"name": "email", | |
"type": "Microsoft.Common.TextBox", | |
"toolTip": "Enter your email address.", | |
"constraints": | |
{ | |
"required": true, | |
"regex": ".+@.+\\..+", | |
"validationMessage": "Please enter a valid email address." | |
} | |
}, | |
{ | |
"label": "Company Name", | |
"name": "companyName", | |
"type": "Microsoft.Common.TextBox", | |
"toolTip": "Enter company name.", | |
"constraints": | |
{ | |
"required": true, | |
"regex": "^[a-z0-9A-Z',.\\s]{3,100}$", | |
"validationMessage": "Invalid company name. Only alphanumeric characters and periods are allowed, and it must be 3-100 characters long." | |
} | |
}, | |
{ | |
"label": "Company Address", | |
"name": "companyAddress", | |
"type": "Microsoft.Common.TextBox", | |
"toolTip": "Enter your company street, city, state, postal code, and country all on one line.", | |
"constraints": | |
{ | |
"required": true, | |
"regex": "", | |
"validationMessage": "Company address is too long. Please shorten it." | |
} | |
} | |
] | |
} | |
], | |
"outputs": | |
{ | |
"location": "[location()]", | |
"environmentName": "[basics('environmentName')]", | |
"adminUsername": "[basics('adminUsername')]", | |
"adminPassword": "[basics('adminPassword').password]", | |
"authenticationType": "[basics('adminPassword').authenticationType]", | |
"sshPublicKey": "[basics('adminPassword').sshPublicKey]", | |
"storageAccountName": "[steps('commonSettings').storageAccount.name]", | |
"storageAccountNewOrExisting": "[steps('commonSettings').storageAccount.newOrExisting]", | |
"storageAccountType": "[steps('commonSettings').storageAccount.type]", | |
"existingStorageAccountResourceGroup": "[steps('commonSettings').storageAccount.resourceGroup]", | |
"virtualNetworkName": "[steps('commonSettings').virtualNetwork.name]", | |
"virtualNetworkAddressPrefix": "[steps('commonSettings').virtualNetwork.addressPrefix]", | |
"virtualNetworkNewOrExisting": "[steps('commonSettings').virtualNetwork.newOrExisting]", | |
"existingVirtualNetworkResourceGroup": "[steps('commonSettings').virtualNetwork.resourceGroup]", | |
"subnetName": "[steps('commonSettings').virtualNetwork.subnets.subnet1.name]", | |
"subnetAddressSpace": "[steps('commonSettings').virtualNetwork.subnets.subnet1.addressPrefix]", | |
"aiPublicIPName": "[steps('aiConfiguration').publicIP.name]", | |
"aiDomainNameLabel": "[steps('aiConfiguration').publicIP.domainNameLabel]", | |
"aiPublicIPNewOrExisting": "[steps('aiConfiguration').publicIP.newOrExisting]", | |
"existingAiPublicIPResourceGroup": "[steps('aiConfiguration').publicIP.resourceGroup]", | |
"aiVMSize": "[steps('aiConfiguration').aiVMSize]", | |
"existingCustomer": "[steps('aiCustomerInformation').existingCustomer]", | |
"firstName": "[steps('aiCustomerInformation').firstName]", | |
"lastName": "[steps('aiCustomerInformation').lastName]", | |
"jobTitle": "[steps('aiCustomerInformation').jobTitle]", | |
"email": "[steps('aiCustomerInformation').email]", | |
"companyName": "[steps('aiCustomerInformation').companyName]", | |
"companyAddress": "[steps('aiCustomerInformation').companyAddress]" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment