From e4a7a6e1f32aed7d512d490e5d6b013ba8888f85 Mon Sep 17 00:00:00 2001 From: Tom Archer Date: Sat, 5 Mar 2022 11:52:02 -0800 Subject: [PATCH] randomized resource group name for resources --- .../main.tf | 41 +++++++++++-------- .../output.tf | 4 ++ .../readme.md | 10 +++-- .../terraform.tfvars | 6 +-- .../variables.tf | 10 +++-- 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/main.tf b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/main.tf index 21092e64..b3bc6f3a 100644 --- a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/main.tf +++ b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/main.tf @@ -1,3 +1,12 @@ +resource "random_pet" "rg-name" { + prefix = var.resource_group_name_prefix +} + +resource "azurerm_resource_group" "rg" { + name = random_pet.rg-name.id + location = var.resource_group_location +} + # Locals block for hardcoded names locals { backend_address_pool_name = "${azurerm_virtual_network.test.name}-beap" @@ -6,17 +15,13 @@ locals { http_setting_name = "${azurerm_virtual_network.test.name}-be-htst" listener_name = "${azurerm_virtual_network.test.name}-httplstn" request_routing_rule_name = "${azurerm_virtual_network.test.name}-rqrt" - app_gateway_subnet_name = "appgwsubnet" -} - -data "azurerm_resource_group" "rg" { - name = var.resource_group_name + app_gateway_subnet_name = "appgwsubnet" } # User Assigned Identities resource "azurerm_user_assigned_identity" "testIdentity" { - resource_group_name = data.azurerm_resource_group.rg.name - location = data.azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location name = "identity1" @@ -25,8 +30,8 @@ resource "azurerm_user_assigned_identity" "testIdentity" { resource "azurerm_virtual_network" "test" { name = var.virtual_network_name - location = data.azurerm_resource_group.rg.location - resource_group_name = data.azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name address_space = [var.virtual_network_address_prefix] subnet { @@ -45,22 +50,22 @@ resource "azurerm_virtual_network" "test" { data "azurerm_subnet" "kubesubnet" { name = var.aks_subnet_name virtual_network_name = azurerm_virtual_network.test.name - resource_group_name = data.azurerm_resource_group.rg.name + resource_group_name = azurerm_resource_group.rg.name depends_on = [azurerm_virtual_network.test] } data "azurerm_subnet" "appgwsubnet" { name = "appgwsubnet" virtual_network_name = azurerm_virtual_network.test.name - resource_group_name = data.azurerm_resource_group.rg.name + resource_group_name = azurerm_resource_group.rg.name depends_on = [azurerm_virtual_network.test] } # Public Ip resource "azurerm_public_ip" "test" { name = "publicIp1" - location = data.azurerm_resource_group.rg.location - resource_group_name = data.azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name allocation_method = "Static" sku = "Standard" @@ -69,8 +74,8 @@ resource "azurerm_public_ip" "test" { resource "azurerm_application_gateway" "network" { name = var.app_gateway_name - resource_group_name = data.azurerm_resource_group.rg.name - location = data.azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + location = azurerm_resource_group.rg.location sku { name = var.app_gateway_sku @@ -153,7 +158,7 @@ resource "azurerm_role_assignment" "ra3" { } resource "azurerm_role_assignment" "ra4" { - scope = data.azurerm_resource_group.rg.id + scope = azurerm_resource_group.rg.id role_definition_name = "Reader" principal_id = azurerm_user_assigned_identity.testIdentity.principal_id depends_on = [azurerm_user_assigned_identity.testIdentity, azurerm_application_gateway.network] @@ -161,10 +166,10 @@ resource "azurerm_role_assignment" "ra4" { resource "azurerm_kubernetes_cluster" "k8s" { name = var.aks_name - location = data.azurerm_resource_group.rg.location + location = azurerm_resource_group.rg.location dns_prefix = var.aks_dns_prefix - resource_group_name = data.azurerm_resource_group.rg.name + resource_group_name = azurerm_resource_group.rg.name http_application_routing_enabled = false diff --git a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/output.tf b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/output.tf index 2638cc91..0e8532f2 100644 --- a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/output.tf +++ b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/output.tf @@ -1,3 +1,7 @@ +output "resource_group_name" { + value = azurerm_resource_group.rg.name +} + output "client_key" { value = azurerm_kubernetes_cluster.k8s.kube_config.0.client_key } diff --git a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/readme.md b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/readme.md index c81d2218..72315176 100644 --- a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/readme.md +++ b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/readme.md @@ -18,21 +18,23 @@ This template creates an Application Gateway Ingress Controller in Azure Kuberne | Name | Description | Default value | |-|-|-| -| `location` | (Optional) Azure Region in which to deploy these resources.| eastus | + +| `resource_group_name_prefix` | (Optional) Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription. | rg | +| `location` | (Optional) Azure region in which to deploy demo resources.| eastus | | `aks_service_principal_app_id` | Application ID/Client ID of the service principal. Used by AKS to manage AKS related resources on Azure like vms, subnets.| | | `aks_service_principal_client_secret` | Secret of the service principal. Used by AKS to manage Azure. | | | `aks_service_principal_object_id` | Object ID of the service principal. | | | `virtual_network_name` | Virtual network name. | aksVirtualNetwork | | `virtual_network_address_prefix` | VNET address prefix. | 192.168.0.0/16 | | `aks_subnet_name` | Subnet name. | kubesubnet | -| `aks_subnet_address_prefix` | Subnet address prefix. | 192.168.0.0/16 | -| `app_gateway_subnet_address_prefix` | Subnet server IP address. | 192.168.0.0/16 | +| `aks_subnet_address_prefix` | Subnet address prefix. | 192.168.0.0/24 | +| `app_gateway_subnet_address_prefix` | Subnet server IP address. | 192.168.1.0/24 | | `app_gateway_name` | Name of the Application Gateway. | ApplicationGateway1 | | `app_gateway_sku` | Name of the Application Gateway SKU. | Standard_v2 | | `app_gateway_tier` | Tier of the Application Gateway tier. | Standard_v2 | | `aks_name` | AKS cluster name. | aks-cluster1 | | `aks_dns_prefix` | (Optional) DNS prefix to use with hosted Kubernetes API server FQDN. | aks | -| `aks_agent_os_disk_size` | Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Specifying 0 applies the default disk size for that agentVMSize. | 40 | +| `aks_agent_os_disk_size` | Disk size (in GB) to provision for each of the agent pool nodes. This value ranges from 0 to 1023. Value of 0 applies the default disk size for that agentVMSize. | 40 | | `aks_agent_count` | The number of agent nodes for the cluster. | 3 | | `aks_agent_vm_size` | VM size. | Standard_D3_v2 | | `kubernetes_version` | Kubernetes version | 1.11.5 | diff --git a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/terraform.tfvars b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/terraform.tfvars index 1ecbb870..f33de07a 100644 --- a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/terraform.tfvars +++ b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/terraform.tfvars @@ -1,8 +1,4 @@ -resource_group_name = "" - -location = "" - -aks_service_principal_app_id = "" +aks_service_principal_app_id = "" aks_service_principal_client_secret = "" diff --git a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/variables.tf b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/variables.tf index 21ece46a..4ac37760 100644 --- a/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/variables.tf +++ b/quickstart/201-k8s-cluster-with-aks-applicationgateway-ingress/variables.tf @@ -1,9 +1,11 @@ -variable "resource_group_name" { - description = "Name of the resource group." +variable "resource_group_name_prefix" { + default = "rg" + description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." } -variable "location" { - description = "Location of the cluster." +variable "resource_group_location" { + default = "eastus" + description = "Location of the resource group." } variable "aks_service_principal_app_id" {