- fast deployment for business requirement
- infrastructure consistency
- security compliance automation

https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/containers/aks-microservices/aks-microservices
- change request
- stakeholder notification, plan
- IaC modularization for reusable purpose
- version control, branch:
main
, dev
, new_net
, new_db
, stg
, prd
, … - automating testing
- continuous deployment
- update process to related notificatition channel
variable "aks_node_pool" {
description = ""
type = map(object({
vm_size = string
node_count = number
zones = list(string)
os_disk_size_gb = number
os_disk_type = string
}))
default = {
"mqpool" : { vm_size = "Standard_DS4_v2", node_count = 6, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" }
"tbcorepool" : { vm_size = "Standard_DS3_v2", node_count = 3, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" }
"tbrepool" : { vm_size = "Standard_DS3_v2", node_count = 25, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" }
"tbtranspool" : { vm_size = "Standard_DS3_v2", node_count = 12, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" }
"tbjspool" : { vm_size = "Standard_DS2_v2", node_count = 6, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" }
}
}
module "aks" {
source = "../../modules/azure/kubernetes"
resource_group = var.resource_group
location = var.location
vnet_app_name = local.vnet_app_name
subnet_aks_name = var.subnet_aks_name
aks_name = local.aks_name
aks_namespace_admin_group_object_ids = var.aks_namespace_admin_group_object_ids
aks_admin_group_object_ids = var.aks_admin_group_object_ids
apg_id = module.apg.apg_id
acr_id = module.acr.acr_id
aks_tags = var.aks_tags
aks_default_node_pool = var.aks_default_node_pool
aks_node_pool = var.aks_node_pool
vnet_depends_on = [
module.network.vnet_app_name,
module.apg.apg_id,
module.acr.acr_id
]
}
