# Terraform: control-core/azure/cluster-infra

## Requirements

| Name | Version |
|------|---------|
| <a name="requirement_terraform"></a> [terraform](#requirement\_terraform) | >= 1.9.0 |
| <a name="requirement_azurerm"></a> [azurerm](#requirement\_azurerm) | ~> 4.0 |
| <a name="requirement_helm"></a> [helm](#requirement\_helm) | ~> 2.17 |
| <a name="requirement_kubernetes"></a> [kubernetes](#requirement\_kubernetes) | ~> 2.30 |

## Providers

| Name | Version |
|------|---------|
| <a name="provider_azurerm"></a> [azurerm](#provider\_azurerm) | 4.26.0 |

## Modules

No modules.

## Resources

| Name | Type |
|------|------|
| [azurerm_kubernetes_cluster.aks](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kubernetes_cluster) | resource |
| [azurerm_log_analytics_solution.aks_solution](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/log_analytics_solution) | resource |
| [azurerm_log_analytics_workspace.aks_logs](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/log_analytics_workspace) | resource |
| [azurerm_resource_group.aks_rg](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group) | resource |
| [azurerm_role_assignment.aks_subnet_network_contributor](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment) | resource |
| [azurerm_subnet.aks_subnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet) | resource |
| [azurerm_virtual_network.aks_vnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| <a name="input_aks_sku_tier"></a> [aks\_sku\_tier](#input\_aks\_sku\_tier) | The SKU tier for the AKS cluster. Options: Free, Standard, Premium. | `string` | `"Standard"` | no |
| <a name="input_aks_subnet_address_prefixes"></a> [aks\_subnet\_address\_prefixes](#input\_aks\_subnet\_address\_prefixes) | Address prefixes for the AKS Subnet. | `list(string)` | <pre>[<br/>  "10.100.1.0/24"<br/>]</pre> | no |
| <a name="input_aks_subnet_name"></a> [aks\_subnet\_name](#input\_aks\_subnet\_name) | Name of the Subnet for AKS nodes. | `string` | `"snet-aksnodes"` | no |
| <a name="input_availability_zones"></a> [availability\_zones](#input\_availability\_zones) | List of Availability Zones to spread the default node pool across (e.g., ["1", "2", "3"]). Set to null or empty list for regional deployment (non-zonal). | `list(string)` | `null` | no |
| <a name="input_cluster_name"></a> [cluster\_name](#input\_cluster\_name) | The name for the AKS cluster. | `string` | `"aks-dedicated-vnet-demo"` | no |
| <a name="input_enable_azure_monitor"></a> [enable\_azure\_monitor](#input\_enable\_azure\_monitor) | Enable Azure Monitor for Containers. | `bool` | `true` | no |
| <a name="input_kubernetes_version"></a> [kubernetes\_version](#input\_kubernetes\_version) | The version of Kubernetes to use for the AKS cluster. | `string` | `"1.28.5"` | no |
| <a name="input_location"></a> [location](#input\_location) | The Azure region where resources will be created. | `string` | `"East US"` | no |
| <a name="input_resource_group_name"></a> [resource\_group\_name](#input\_resource\_group\_name) | The name of the resource group to create. | `string` | `"rg-aks-dedicated-vnet-demo"` | no |
| <a name="input_system_node_pool_maxcount"></a> [system\_node\_pool\_maxcount](#input\_system\_node\_pool\_maxcount) | The initial number of nodes for the system node pool. | `number` | `3` | no |
| <a name="input_system_node_pool_mincount"></a> [system\_node\_pool\_mincount](#input\_system\_node\_pool\_mincount) | The initial number of nodes for the system node pool. | `number` | `1` | no |
| <a name="input_system_node_pool_vm_size"></a> [system\_node\_pool\_vm\_size](#input\_system\_node\_pool\_vm\_size) | The VM size for the system node pool. | `string` | `"Standard_DS2_v2"` | no |
| <a name="input_tags"></a> [tags](#input\_tags) | A map of tags to assign to the resources. | `map(string)` | <pre>{<br/>  "environment": "development",<br/>  "project": "aks-workload-identity-dedicated-vnet"<br/>}</pre> | no |
| <a name="input_vnet_address_space"></a> [vnet\_address\_space](#input\_vnet\_address\_space) | Address space for the Virtual Network. | `list(string)` | <pre>[<br/>  "10.100.0.0/16"<br/>]</pre> | no |
| <a name="input_vnet_name"></a> [vnet\_name](#input\_vnet\_name) | Name of the Virtual Network to create. | `string` | `"vnet-aks"` | no |

## Outputs

| Name | Description |
|------|-------------|
| <a name="output_aks_cluster_id"></a> [aks\_cluster\_id](#output\_aks\_cluster\_id) | The ID of the deployed AKS cluster. |
| <a name="output_aks_cluster_name"></a> [aks\_cluster\_name](#output\_aks\_cluster\_name) | The name of the deployed AKS cluster. |
| <a name="output_aks_identity_principal_id"></a> [aks\_identity\_principal\_id](#output\_aks\_identity\_principal\_id) | The Principal ID of the AKS cluster's managed identity. |
| <a name="output_aks_oidc_issuer_url"></a> [aks\_oidc\_issuer\_url](#output\_aks\_oidc\_issuer\_url) | The OIDC issuer URL for the AKS cluster. Required for configuring federated identity credentials. |
| <a name="output_kube_config_raw"></a> [kube\_config\_raw](#output\_kube\_config\_raw) | Raw Kubernetes config for the cluster. Use with care! |
| <a name="output_log_analytics_workspace_id"></a> [log\_analytics\_workspace\_id](#output\_log\_analytics\_workspace\_id) | The ID of the Log Analytics Workspace used for monitoring (if enabled). |
| <a name="output_resource_group_name"></a> [resource\_group\_name](#output\_resource\_group\_name) | The name of the resource group where the AKS cluster is deployed. |
| <a name="output_subnet_id"></a> [subnet\_id](#output\_subnet\_id) | The ID of the created Subnet used by AKS nodes. |
| <a name="output_subnet_name"></a> [subnet\_name](#output\_subnet\_name) | The Name of the created Subnet used by AKS nodes. |
| <a name="output_vnet_id"></a> [vnet\_id](#output\_vnet\_id) | The ID of the created Virtual Network used by AKS. |
| <a name="output_vnet_name"></a> [vnet\_name](#output\_vnet\_name) | The Name of the created Virtual Network used by AKS. |
