diff --git a/terraform/modules/k8s/main.tf b/terraform/modules/k8s/main.tf index 862966c8..82ad1755 100644 --- a/terraform/modules/k8s/main.tf +++ b/terraform/modules/k8s/main.tf @@ -21,6 +21,9 @@ resource "azurerm_kubernetes_cluster" "k8s" { vnet_subnet_id = var.vnet_subnet_id node_count = 1 enable_node_public_ip = true # Nodes need a public IP for external resources. FIXME: Switch to NAT Gateway if its available in our subscription + enable_auto_scaling = var.enable_auto_scaling + max_count = var.max_count # FIXME: if auto_scaling disabled, set to 0 + min_count = var.min_count # FIXME: if auto_scaling disabled, set to 0 } lifecycle { diff --git a/terraform/modules/k8s/variables.tf b/terraform/modules/k8s/variables.tf index 7a3663ce..28677ec2 100644 --- a/terraform/modules/k8s/variables.tf +++ b/terraform/modules/k8s/variables.tf @@ -33,3 +33,22 @@ variable "vnet_subnet_id" { description = "Subnet to use for the default k8s pool" type = string } + +variable "enable_auto_scaling" { + default = false + type = string + description = "Enable or disable autoscaling (Default: false)" +} + +variable "max_count" { + default = 1 + type = string + description = "Maximum number of nodes to use in autoscaling. This requires `enable_auto_scaling` to be set to true" + +} + +variable "min_count" { + default = 1 + type = string + description = "Minimum number of nodes to use in autoscaling. This requires `enable_auto_scaling` to be set to true" +} diff --git a/terraform/providers/dev/k8s.tf b/terraform/providers/dev/k8s.tf index 4515f35f..8ea9696b 100644 --- a/terraform/providers/dev/k8s.tf +++ b/terraform/providers/dev/k8s.tf @@ -1,12 +1,15 @@ module "k8s" { - source = "../../modules/k8s" - region = var.region - name = var.name - environment = var.environment - owner = var.owner - k8s_dns_prefix = var.k8s_dns_prefix - k8s_node_size = var.k8s_node_size - vnet_subnet_id = module.vpc.subnets #FIXME - output from module.vpc.subnets should be map + source = "../../modules/k8s" + region = var.region + name = var.name + environment = var.environment + owner = var.owner + k8s_dns_prefix = var.k8s_dns_prefix + k8s_node_size = var.k8s_node_size + vnet_subnet_id = module.vpc.subnets #FIXME - output from module.vpc.subnets should be map + enable_auto_scaling = true + max_count = 5 + min_count = 2 } #module "main_lb" {