diff --git a/quickstart/101-aks-standard-lb-and-vmss/README.md b/quickstart/101-aks-standard-lb-and-vmss/README.md new file mode 100644 index 000000000..7a331e6de --- /dev/null +++ b/quickstart/101-aks-standard-lb-and-vmss/README.md @@ -0,0 +1,19 @@ +# Aure Kubernetes Service (AKS) with standard load balancer and Virtual Machine Scale Sets (VMSS) + +This template deploys an AKS cluster a standard load balancer and Virtual Machine Scale Sets (VMSS) + +## Terraform resource types + +- [random_pet](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/pet) +- [azurerm_resource_group](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) +- [random_string](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/string) +- [azurerm_kubernetes_cluster](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster) + +## Variables + +| Name | Description | Default | +|-|-|-| +| `resource_group_name_prefix` | Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription. | rg | +| `resource_group_location` | Location of the resource group. | eastus | + +## Example diff --git a/quickstart/101-aks-standard-lb-and-vmss/main.tf b/quickstart/101-aks-standard-lb-and-vmss/main.tf new file mode 100644 index 000000000..831d3c48f --- /dev/null +++ b/quickstart/101-aks-standard-lb-and-vmss/main.tf @@ -0,0 +1,43 @@ +resource "random_pet" "rg_name" { + prefix = var.resource_group_name_prefix +} + +resource "azurerm_resource_group" "rg" { + location = var.resource_group_location + name = random_pet.rg_name.id +} + +resource "random_string" "aks_cluster_name" { + length = 12 + special = false +} + +resource "azurerm_kubernetes_cluster" "aks_cluster" { + name = random_string.aks_cluster_name.result + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + dns_prefix = "myakscluster" + + default_node_pool { + type = "VirtualMachineScaleSets" + name = "default" + node_count = 1 + max_count = 3 + min_count = 1 + vm_size = "Standard_DS2_v2" + enable_auto_scaling = true + } + + network_profile { + network_plugin = "azure" + load_balancer_sku = "standard" + } + + identity { + type = "SystemAssigned" + } + + tags = { + Environment = "Production" + } +} \ No newline at end of file diff --git a/quickstart/101-aks-standard-lb-and-vmss/outputs.tf b/quickstart/101-aks-standard-lb-and-vmss/outputs.tf new file mode 100644 index 000000000..720116722 --- /dev/null +++ b/quickstart/101-aks-standard-lb-and-vmss/outputs.tf @@ -0,0 +1,7 @@ +output "resource_group_name" { + value = azurerm_resource_group.rg.name +} + +output "aks_cluster_name" { + value = azurerm_kubernetes_cluster.aks_cluster.name +} \ No newline at end of file diff --git a/quickstart/101-aks-standard-lb-and-vmss/providers.tf b/quickstart/101-aks-standard-lb-and-vmss/providers.tf new file mode 100644 index 000000000..7261b1fb4 --- /dev/null +++ b/quickstart/101-aks-standard-lb-and-vmss/providers.tf @@ -0,0 +1,16 @@ +terraform { + required_providers { + azurerm = { + source = "hashicorp/azurerm" + version = "~>3.0" + } + random = { + source = "hashicorp/random" + version = "~>3.0" + } + } +} + +provider "azurerm" { + features {} +} \ No newline at end of file diff --git a/quickstart/101-aks-standard-lb-and-vmss/variables.tf b/quickstart/101-aks-standard-lb-and-vmss/variables.tf new file mode 100644 index 000000000..1a8c6abba --- /dev/null +++ b/quickstart/101-aks-standard-lb-and-vmss/variables.tf @@ -0,0 +1,11 @@ +variable "resource_group_location" { + type = string + default = "eastus" + description = "Location of the resource group." +} + +variable "resource_group_name_prefix" { + type = string + default = "rg" + description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." +} \ No newline at end of file