diff --git a/azurerm/modules/azurerm-aks/aks.tf b/azurerm/modules/azurerm-aks/aks.tf index 037b6352..551d7a8f 100644 --- a/azurerm/modules/azurerm-aks/aks.tf +++ b/azurerm/modules/azurerm-aks/aks.tf @@ -92,6 +92,20 @@ resource "azurerm_kubernetes_cluster" "default" { ] } +# Create additional node pools if they have been specified +resource "azurerm_kubernetes_cluster_node_pool" "additional" { + for_each = var.aks_node_pools + + name = each.key + kubernetes_cluster_id = azurerm_kubernetes_cluster.default[0].id + vm_size = each.value.vm_size + + enable_auto_scaling = each.value.auto_scaling + min_count = each.value.min_nodes + max_count = each.value.max_nodes + node_count = each.value.min_nodes +} + # perform lookup on existing ACR for stages where we don't want to create an ACR data "azurerm_container_registry" "acr_registry" { count = var.create_acr ? 0 : 1 diff --git a/azurerm/modules/azurerm-aks/identity.tf b/azurerm/modules/azurerm-aks/identity.tf index 157581f7..b22ad536 100644 --- a/azurerm/modules/azurerm-aks/identity.tf +++ b/azurerm/modules/azurerm-aks/identity.tf @@ -48,7 +48,7 @@ resource "azurerm_key_vault" "default" { } resource "azurerm_user_assigned_identity" "default" { - count = var.create_user_identiy ? 1 : 0 + count = var.create_user_identity ? 1 : 0 location = var.resource_group_location resource_group_name = azurerm_resource_group.default.name name = var.resource_namer diff --git a/azurerm/modules/azurerm-aks/outputs.tf b/azurerm/modules/azurerm-aks/outputs.tf index 19a79d95..e25ee299 100644 --- a/azurerm/modules/azurerm-aks/outputs.tf +++ b/azurerm/modules/azurerm-aks/outputs.tf @@ -67,15 +67,15 @@ output "aks_system_identity_principal_id" { ### used for AAD Pod identity binding ### ######################################### output "aks_default_user_identity_name" { - value = var.create_user_identiy ? azurerm_user_assigned_identity.default.0.name : "" + value = var.create_user_identity ? azurerm_user_assigned_identity.default.0.name : "" } output "aks_default_user_identity_id" { - value = var.create_user_identiy ? azurerm_user_assigned_identity.default.0.id : "" + value = var.create_user_identity ? azurerm_user_assigned_identity.default.0.id : "" } output "aks_default_user_identity_client_id" { - value = var.create_user_identiy ? azurerm_user_assigned_identity.default.0.client_id : "" + value = var.create_user_identity ? azurerm_user_assigned_identity.default.0.client_id : "" } output "aks_ingress_private_ip" { diff --git a/azurerm/modules/azurerm-aks/vars.tf b/azurerm/modules/azurerm-aks/vars.tf index d6b55fa8..0bc8b27a 100644 --- a/azurerm/modules/azurerm-aks/vars.tf +++ b/azurerm/modules/azurerm-aks/vars.tf @@ -67,7 +67,7 @@ variable "resource_group_tags" { ########################### # IDENTITY SETTINGS ########################## -variable "create_user_identiy" { +variable "create_user_identity" { description = "Creates a User Managed Identity - which can be used subsquently with AAD pod identity extensions" type = bool default = true @@ -241,6 +241,17 @@ variable "node_count" { default = 0 } +variable "aks_node_pools" { + type = map(object({ + vm_size = string, + auto_scaling = bool, + min_nodes = number, + max_nodes = number + })) + description = "Additional node pools as required by the platform" + default = {} +} + # DEFAULTS TO 30 if not overwritten variable "os_disk_size" { type = number diff --git a/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/main.tf b/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/main.tf index 9fa4e3a0..2b79c0e8 100644 --- a/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/main.tf +++ b/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/main.tf @@ -44,7 +44,7 @@ module "aks_bootstrap" { subnet_names = ["k8s1"] aks_ingress_private_ip = cidrhost(cidrsubnet(var.vnet_cidr.0, 4, 0), -3) private_cluster_enabled = false - create_user_identiy = var.create_user_identiy + create_user_identity = var.create_user_identity enable_auto_scaling = true log_application_type = var.log_application_type key_vault_name = var.key_vault_name diff --git a/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/outputs.tf b/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/outputs.tf index 4527ab96..06676975 100644 --- a/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/outputs.tf +++ b/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/outputs.tf @@ -37,15 +37,15 @@ output "aks_system_identity_principal_id" { ### Identity ### output "aks_default_user_identity_name" { - value = var.create_user_identiy ? module.aks_bootstrap.aks_default_user_identity_name : "" + value = var.create_user_identity ? module.aks_bootstrap.aks_default_user_identity_name : "" } output "aks_default_user_identity_id" { - value = var.create_user_identiy ? module.aks_bootstrap.aks_default_user_identity_id : "" + value = var.create_user_identity ? module.aks_bootstrap.aks_default_user_identity_id : "" } output "aks_default_user_identity_client_id" { - value = var.create_user_identiy ? module.aks_bootstrap.aks_default_user_identity_client_id : "" + value = var.create_user_identity ? module.aks_bootstrap.aks_default_user_identity_client_id : "" } output "aks_ingress_private_ip" { diff --git a/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/vars.tf b/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/vars.tf index 434e17e1..51f0f223 100644 --- a/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/vars.tf +++ b/azurerm/modules/azurerm-app-gateway/examples/appgateway-entire/vars.tf @@ -100,7 +100,7 @@ variable "create_aksvnet" { default = true } -variable "create_user_identiy" { +variable "create_user_identity" { type = bool default = true } diff --git a/azurerm/modules/azurerm-cosmosdb/examples/existing-rg-cosmosdb/vars.tf b/azurerm/modules/azurerm-cosmosdb/examples/existing-rg-cosmosdb/vars.tf index 7e7ec7b5..2e350ff6 100644 --- a/azurerm/modules/azurerm-cosmosdb/examples/existing-rg-cosmosdb/vars.tf +++ b/azurerm/modules/azurerm-cosmosdb/examples/existing-rg-cosmosdb/vars.tf @@ -103,7 +103,7 @@ variable "create_aksvnet" { default = true } -variable "create_user_identiy" { +variable "create_user_identity" { type = bool default = true }