aks
Azure/aks/azurerm
Terraform Module for deploying an AKS cluster
terraform-azurerm-aks Deploys a Kubernetes cluster (AKS) on Azure with monitoring support through Azure Log Analytics This Terraform module deploys a Kubernetes cluster on Azure using AKS (Azure Kubernetes Service) and adds support for monitoring with Log Analytics. -> NOTE: If you have not assigned client_id or client_secret, A SystemAssigned identity will be created. -> NOTE: If you're using AzureRM v4, you can use this module by setting source to Azure/aks/azurerm//v4. Notice on breaking changes Please be aware that major version(e.g., from 6.8.0 to 7.0.0) update contains breaking changes that may impact your infrastructure. It is crucial to review these changes with caution before proceeding with the upgrade. In most cases, you will need to adjust your Terraform code to accommodate the
| Name | Type | Description | Default |
|---|---|---|---|
| resource_group_name | string | The existing resource group name to use | required |
| agents_availability_zones | list(string) | (Optional) A list of Availability Zones across which the Node Pool should be spr | null |
| agents_min_count | number | Minimum number of nodes in a pool | null |
| agents_pool_local_dns_config | object({ mode = string | (Optional) Configuration for LocalDNS feature in AKS cluster for agent pool. Thi | null |
| load_balancer_profile_idle_timeout_in_minutes | number | (Optional) Desired outbound flow idle timeout in minutes for the cluster load ba | 30 |
| log_analytics_workspace_enabled | bool | Enable the integration of azurerm_log_analytics_workspace and azurerm_log_analyt | true |
| secret_rotation_interval | string | The interval to poll for secret rotation. This attribute is only set when `secre | "2m" |
| auto_scaler_profile_scale_down_delay_after_delete | string | How long after node deletion that scale down evaluation resumes. Defaults to the | null |
| auto_scaler_profile_scale_down_utilization_threshold | string | Node utilization level, defined as sum of requested resources divided by capacit | "0.5" |
| monitor_data_collection_rule_extensions_streams | list(any) | An array of container insights table streams. See documentation in DCR for a lis | [
"Microsoft-ContainerLog",
"Microso |
| node_network_profile | object({ node_public_ip_ta | - `node_public_ip_tags`: (Optional) Specifies a mapping of tags to the instance | null |
| node_pools | map(object({ name | A map of node pools that need to be created and attached on the Kubernetes clust | {} |
| private_cluster_public_fqdn_enabled | bool | (Optional) Specifies whether a Public FQDN for this Private Cluster should be ad | false |
| tags | map(string) | Any tags that should be present on the AKS cluster resources | {} |
| image_cleaner_enabled | bool | (Optional) Specifies whether Image Cleaner is enabled. | false |
| rbac_aad_tenant_id | string | (Optional) The Tenant ID used for Azure Active Directory Application. If this is | null |
| agents_pool_linux_os_configs | list(object({ sysctl_confi | list(object({ sysctl_configs = optional(list(object({ fs_aio_max_nr | [] |
| data_collection_settings | object({ data_collection_i | `data_collection_interval` - Determines how often the agent collects data. Vali | {
"container_log_v2_enabled": true,
|
| maintenance_window_node_os | object({ day_of_month = op | - `day_of_month` - - `day_of_week` - (Optional) The day of the week for the main | null |
| public_ssh_key | string | A custom ssh key to control access to the AKS cluster. Changing this forces a ne | "" |
| workload_autoscaler_profile | object({ keda_enabled | `keda_enabled` - (Optional) Specifies whether KEDA Autoscaler can be used for wo | null |
| … and 10 more inputs | |||
key_vault_secrets_provider_enabled — Has the `azurerm_kubernetes_cluster` turned on `key_vault_secrets_provider` block?kube_admin_config_raw — The `azurerm_kubernetes_cluster`'s `kube_admin_config_raw` argument. Raw Kubernetes config for the anode_resource_group — The auto-generated Resource Group which contains the resources for this Managed Kubernetes Cluster.oms_agent_enabled — Has the `azurerm_kubernetes_cluster` turned on `oms_agent` block?password — The `password` in the `azurerm_kubernetes_cluster`'s `kube_config` block. A password or token used tcluster_identity — The `azurerm_kubernetes_cluster`'s `identity` block.oidc_issuer_url — The OIDC issuer URL that is associated with the cluster.open_service_mesh_enabled — (Optional) Is Open Service Mesh enabled? For more details, please visit [Open Service Mesh for AKS](aci_connector_linux_enabled — Has `aci_connector_linux` been enabled on the `azurerm_kubernetes_cluster` resource?admin_client_certificate — The `client_certificate` in the `azurerm_kubernetes_cluster`'s `kube_admin_config` block. Base64 engenerated_cluster_private_ssh_key — The cluster will use this generated private key as ssh key when `var.public_ssh_key` is empty or nulhost — The `host` in the `azurerm_kubernetes_cluster`'s `kube_config` block. The Kubernetes cluster server kube_config_raw — The `azurerm_kubernetes_cluster`'s `kube_config_raw` argument. Raw Kubernetes config to be used by [oms_agent — The `azurerm_kubernetes_cluster`'s `oms_agent` argument.admin_client_key — The `client_key` in the `azurerm_kubernetes_cluster`'s `kube_admin_config` block. Base64 encoded prikey_vault_secrets_provider — The `azurerm_kubernetes_cluster`'s `key_vault_secrets_provider` block.location — The `azurerm_kubernetes_cluster`'s `location` argument. (Required) The location where the Managed Kuweb_app_routing_identity — The `azurerm_kubernetes_cluster`'s `web_app_routing_identity` block, it's type is a list of object.admin_host — The `host` in the `azurerm_kubernetes_cluster`'s `kube_admin_config` block. The Kubernetes cluster sazurerm_log_analytics_workspace_name — The name of the created Log Analytics workspaceclient_certificate — The `client_certificate` in the `azurerm_kubernetes_cluster`'s `kube_config` block. Base64 encoded pclient_key — The `client_key` in the `azurerm_kubernetes_cluster`'s `kube_config` block. Base64 encoded private kcluster_portal_fqdn — The FQDN for the Azure Portal resources when private link has been enabled, which is only resolvablenetwork_profile — The `azurerm_kubernetes_cluster`'s `network_profile` blocknode_resource_group_id — The ID of the Resource Group containing the resources for this Managed Kubernetes Cluster.username — The `username` in the `azurerm_kubernetes_cluster`'s `kube_config` block. A username used to authentlocal_dns_config — The LocalDNS configuration applied to the AKS cluster.admin_password — The `password` in the `azurerm_kubernetes_cluster`'s `kube_admin_config` block. A password or token aks_id — The `azurerm_kubernetes_cluster`'s id.generated_cluster_public_ssh_key — The cluster will use this generated public key as ssh key when `var.public_ssh_key` is empty or null