Created
May 25, 2018 16:28
-
-
Save tomconte/a4d245f383023e211288e5053f8c693b to your computer and use it in GitHub Desktop.
This file contains 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
{ | |
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", | |
"contentVersion": "1.0.0.0", | |
"parameters": { | |
"resourceName": { | |
"type": "String", | |
"metadata": { | |
"description": "The name of the Managed Cluster resource." | |
} | |
}, | |
"dnsPrefix": { | |
"type": "String", | |
"metadata": { | |
"description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN." | |
} | |
}, | |
"osDiskSizeGB": { | |
"defaultValue": 0, | |
"minValue": 0, | |
"maxValue": 1023, | |
"type": "Int", | |
"metadata": { | |
"description": "Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 will apply the default disk size for that agentVMSize." | |
} | |
}, | |
"agentCount": { | |
"defaultValue": 3, | |
"minValue": 1, | |
"maxValue": 50, | |
"type": "Int", | |
"metadata": { | |
"description": "The number of nodes for the cluster." | |
} | |
}, | |
"agentVMSize": { | |
"defaultValue": "Standard_D2_v2", | |
"allowedValues": [ | |
"Standard_A10", | |
"Standard_A11", | |
"Standard_A2", | |
"Standard_A2_v2", | |
"Standard_A2m_v2", | |
"Standard_A3", | |
"Standard_A4", | |
"Standard_A4_v2", | |
"Standard_A4m_v2", | |
"Standard_A5", | |
"Standard_A6", | |
"Standard_A7", | |
"Standard_A8", | |
"Standard_A8_v2", | |
"Standard_A8m_v2", | |
"Standard_A9", | |
"Standard_D11", | |
"Standard_D11_v2", | |
"Standard_D12", | |
"Standard_D12_v2", | |
"Standard_D13", | |
"Standard_D13_v2", | |
"Standard_D14", | |
"Standard_D14_v2", | |
"Standard_D15_v2", | |
"Standard_D2", | |
"Standard_D2_v2", | |
"Standard_D3", | |
"Standard_D3_v2", | |
"Standard_D4", | |
"Standard_D4_v2", | |
"Standard_D5_v2", | |
"Standard_DS11", | |
"Standard_DS11_v2", | |
"Standard_DS12", | |
"Standard_DS12_v2", | |
"Standard_DS13", | |
"Standard_DS13_v2", | |
"Standard_DS14", | |
"Standard_DS14_v2", | |
"Standard_DS15_v2", | |
"Standard_DS2", | |
"Standard_DS2_v2", | |
"Standard_DS3", | |
"Standard_DS3_v2", | |
"Standard_DS4", | |
"Standard_DS4_v2", | |
"Standard_DS5_v2", | |
"Standard_F16", | |
"Standard_F16s", | |
"Standard_F2", | |
"Standard_F2s", | |
"Standard_F4", | |
"Standard_F4s", | |
"Standard_F8", | |
"Standard_F8s", | |
"Standard_G1", | |
"Standard_G2", | |
"Standard_NC6", | |
"Standard_NC12", | |
"Standard_NC24", | |
"Standard_NC24r", | |
"Standard_NV6", | |
"Standard_NV12", | |
"Standard_NV24", | |
"Standard_B1s", | |
"Standard_B1ms", | |
"Standard_B2s", | |
"Standard_B2ms", | |
"Standard_B4ms", | |
"Standard_B8ms" | |
], | |
"type": "String", | |
"metadata": { | |
"description": "The size of the Virtual Machine." | |
} | |
}, | |
"linuxAdminUsername": { | |
"defaultValue": "azureuser", | |
"type": "String", | |
"metadata": { | |
"description": "User name for the Linux Virtual Machines." | |
} | |
}, | |
"sshRSAPublicKey": { | |
"type": "String", | |
"metadata": { | |
"description": "Configure all linux machines with the SSH RSA public key string. Your key should include three parts, for example 'ssh-rsa AAAAB...snip...UcyupgH azureuser@linuxvm'" | |
} | |
}, | |
"servicePrincipalClientId": { | |
"defaultValue": "n/a", | |
"type": "SecureString", | |
"metadata": { | |
"description": "Client ID (used by cloudprovider)" | |
} | |
}, | |
"servicePrincipalClientSecret": { | |
"defaultValue": "n/a", | |
"type": "SecureString", | |
"metadata": { | |
"description": "The Service Principal Client Secret." | |
} | |
}, | |
"osType": { | |
"defaultValue": "Linux", | |
"allowedValues": [ | |
"Linux" | |
], | |
"type": "String", | |
"metadata": { | |
"description": "The type of operating system." | |
} | |
}, | |
"kubernetesVersion": { | |
"defaultValue": "1.8.7", | |
"allowedValues": [ | |
"1.8.7", | |
"1.7.12" | |
], | |
"type": "String", | |
"metadata": { | |
"description": "The version of Kubernetes." | |
} | |
}, | |
"TFRPlocation": { | |
"type": "String", | |
"defaultValue": "westcentralus", | |
"metadata": { | |
"description": "The location of the TFRP." | |
} | |
} | |
}, | |
"variables": { | |
"resourceName": "[parameters('resourceName')]", | |
"adminUsername": "[parameters('linuxAdminUsername')]", | |
"osDiskSizeGB": "[parameters('osDiskSizeGB')]", | |
"agentCount": "[parameters('agentCount')]", | |
"agentVMSize": "[parameters('agentVMSize')]", | |
"dnsPrefix": "[parameters('dnsPrefix')]", | |
"sshRSAPublicKey": "[parameters('sshRSAPublicKey')]", | |
"servicePrincipalClientId": "[parameters('servicePrincipalClientId')]", | |
"servicePrincipalClientSecret": "[parameters('servicePrincipalClientSecret')]", | |
"osType": "[parameters('osType')]", | |
"kubernetesVersion": "[parameters('kubernetesVersion')]" | |
}, | |
"resources": [ | |
{ | |
"type": "Microsoft.ContainerService/managedClusters", | |
"name": "[variables('resourceName')]", | |
"apiVersion": "2017-08-31", | |
"location": "[resourceGroup().location]", | |
"properties": { | |
"kubernetesVersion": "[variables('kubernetesVersion')]", | |
"dnsPrefix": "[variables('dnsPrefix')]", | |
"agentPoolProfiles": [ | |
{ | |
"name": "agentpool", | |
"osDiskSizeGB": "[variables('osDiskSizeGB')]", | |
"count": "[variables('agentCount')]", | |
"vmSize": "[variables('agentVMSize')]", | |
"osType": "[variables('osType')]", | |
"storageProfile": "ManagedDisks" | |
} | |
], | |
"linuxProfile": { | |
"adminUsername": "[variables('adminUsername')]", | |
"ssh": { | |
"publicKeys": [ | |
{ | |
"keyData": "[variables('sshRSAPublicKey')]" | |
} | |
] | |
} | |
}, | |
"servicePrincipalProfile": { | |
"ClientId": "[parameters('servicePrincipalClientId')]", | |
"Secret": "[parameters('servicePrincipalClientSecret')]" | |
} | |
} | |
}, | |
{ | |
"type": "Microsoft.TerraformOSS/providerregistrations", | |
"name": "[parameters('resourceName')]", | |
"apiVersion": "2018-05-01-preview", | |
"location": "[parameters('TFRPlocation')]", | |
"properties": { | |
"providertype": "kubernetes", | |
"settings": { | |
"inline_config": "[Base64ToString(ListCredential(resourceId('Microsoft.ContainerService/managedClusters/accessProfiles', parameters('resourceName'),'clusterAdmin'), '2017-08-31').properties.kubeConfig)]" | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.ContainerService/managedClusters', parameters('resourceName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.TerraformOSS/resources", | |
"name": "mysql-pass", | |
"apiVersion": "2018-05-01-preview", | |
"location": "[parameters('TFRPlocation')]", | |
"properties": { | |
"providerId": "[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]", | |
"resourcetype": "kubernetes_secret", | |
"settings": { | |
"metadata": [ | |
{ | |
"name": "mysql-pass" | |
} | |
], | |
"data": [ | |
{ | |
"password": "MySQL123" | |
} | |
], | |
"type": "Opaque" | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.TerraformOSS/resources", | |
"name": "mysql-pv-claim", | |
"apiVersion": "2018-05-01-preview", | |
"location": "[parameters('TFRPlocation')]", | |
"properties": { | |
"providerId": "[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]", | |
"resourcetype": "kubernetes_persistent_volume_claim", | |
"settings": { | |
"metadata": [ | |
{ | |
"name": "mysql-pv-claim", | |
"labels": { | |
"app": "wordpress" | |
} | |
} | |
], | |
"spec": [ | |
{ | |
"access_modes": [ | |
"ReadWriteOnce" | |
], | |
"resources": { | |
"requests": { | |
"storage": "20Gi" | |
} | |
} | |
} | |
] | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.TerraformOSS/resources", | |
"name": "wordpress-mysql-rc", | |
"apiVersion": "2018-05-01-preview", | |
"location": "[parameters('TFRPlocation')]", | |
"properties": { | |
"providerId": "[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]", | |
"resourcetype": "kubernetes_replication_controller", | |
"settings": { | |
"metadata": [ | |
{ | |
"name": "wordpress-mysql", | |
"labels": { | |
"app": "wordpress" | |
} | |
} | |
], | |
"spec": [ | |
{ | |
"selector": { | |
"app": "wordpress", | |
"tier": "mysql" | |
}, | |
"template": [ | |
{ | |
"container": [ | |
{ | |
"image": "mysql:5.6", | |
"name": "mysql", | |
"env": [ | |
{ | |
"name": "MYSQL_ROOT_PASSWORD", | |
"value_from": { | |
"secret_key_ref": { | |
"name": "mysql-pass", | |
"key": "password" | |
} | |
} | |
} | |
], | |
"port": [ | |
{ | |
"container_port": 3306, | |
"name": "mysql" | |
} | |
], | |
"volume_mount": [ | |
{ | |
"name": "mysql-persistent-storage", | |
"mount_path": "/var/lib/mysql" | |
} | |
] | |
} | |
], | |
"volume": [ | |
{ | |
"name": "mysql-persistent-storage", | |
"persistent_volume_claim": { | |
"claim_name": "mysql-pv-claim" | |
} | |
} | |
] | |
} | |
] | |
} | |
] | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]" | |
] | |
}, | |
{ | |
"type": "Microsoft.TerraformOSS/resources", | |
"name": "wordpress-mysql-svc", | |
"apiVersion": "2018-05-01-preview", | |
"location": "[parameters('TFRPlocation')]", | |
"properties": { | |
"providerId": "[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]", | |
"resourcetype": "kubernetes_service", | |
"settings": { | |
"metadata": [ | |
{ | |
"name": "wordpress-mysql", | |
"labels": { | |
"app": "wordpress" | |
} | |
} | |
], | |
"spec": [ | |
{ | |
"port": [ | |
{ | |
"port": 3306, | |
"target_port": 3306 | |
} | |
], | |
"selector": { | |
"app": "wordpress", | |
"tier": "mysql" | |
}, | |
"cluster_ip": "None" | |
} | |
] | |
} | |
}, | |
"dependsOn": [ | |
"[resourceId('Microsoft.TerraformOSS/providerregistrations', parameters('resourceName'))]" | |
] | |
} | |
], | |
"outputs": { | |
"controlPlaneFQDN": { | |
"type": "String", | |
"value": "[reference(concat('Microsoft.ContainerService/managedClusters/', variables('resourceName'))).fqdn]" | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment