@@ -8,7 +8,7 @@ resource "random_string" "temp_node_group" {
8
8
lower = true
9
9
upper = false
10
10
special = false
11
- number = false
11
+ numeric = false
12
12
}
13
13
resource "azurerm_resource_group" "main" {
14
14
name = var. md_metadata . name_prefix
@@ -30,22 +30,31 @@ resource "azurerm_kubernetes_cluster" "main" {
30
30
resource_group_name = azurerm_resource_group. main . name
31
31
dns_prefix = " ${ var . md_metadata . name_prefix } -dns"
32
32
node_resource_group = local. node_rg_name
33
- automatic_channel_upgrade = " stable"
33
+ automatic_upgrade_channel = " stable"
34
34
azure_policy_enabled = true
35
35
role_based_access_control_enabled = true
36
36
workload_identity_enabled = true
37
37
oidc_issuer_enabled = true
38
38
tags = var. md_metadata . default_tags
39
39
40
40
azure_active_directory_role_based_access_control {
41
- managed = true
42
- azure_rbac_enabled = true
41
+ azure_rbac_enabled = true
42
+ admin_group_object_ids = []
43
+ }
44
+
45
+ dynamic "monitor_metrics" {
46
+ for_each = var. cluster . enable_log_analytics ? toset ([" enabled" ]) : toset ([])
47
+ content {
48
+ annotations_allowed = null
49
+ labels_allowed = null
50
+ }
43
51
}
44
52
45
53
dynamic "oms_agent" {
46
54
for_each = var. cluster . enable_log_analytics ? toset ([" enabled" ]) : toset ([])
47
55
content {
48
- log_analytics_workspace_id = azurerm_log_analytics_workspace. main [0 ]. id
56
+ log_analytics_workspace_id = azurerm_log_analytics_workspace. main [0 ]. id
57
+ msi_auth_for_monitoring_enabled = true
49
58
}
50
59
}
51
60
@@ -56,8 +65,11 @@ resource "azurerm_kubernetes_cluster" "main" {
56
65
max_count = var. node_groups . default_node_group . max_size
57
66
vnet_subnet_id = var. vnet . data . infrastructure . default_subnet_id
58
67
temporary_name_for_rotation = " ${ random_string . temp_node_group . result } temp"
59
- enable_auto_scaling = true
60
- tags = var. md_metadata . default_tags
68
+ auto_scaling_enabled = true
69
+ upgrade_settings {
70
+ max_surge = " 10%"
71
+ }
72
+ tags = var. md_metadata . default_tags
61
73
}
62
74
63
75
identity {
@@ -68,15 +80,15 @@ resource "azurerm_kubernetes_cluster" "main" {
68
80
the customer might set as their VNet CIDR. These are also the defaults for
69
81
these parameters when deploying AKS in the Azure Portal. */
70
82
network_profile {
71
- network_plugin = " azure"
72
- network_policy = " azure"
73
- dns_service_ip = " 172.20.0.10"
74
- service_cidr = " 172.20.0.0/16"
83
+ network_plugin = " azure"
84
+ network_policy = " azure"
85
+ dns_service_ip = " 172.20.0.10"
86
+ service_cidr = " 172.20.0.0/16"
87
+ load_balancer_sku = " standard"
88
+ outbound_type = " loadBalancer"
75
89
}
76
90
77
- depends_on = [
78
- data . http . feature
79
- ]
91
+
80
92
}
81
93
82
94
resource "azurerm_kubernetes_cluster_node_pool" "main" {
@@ -85,12 +97,15 @@ resource "azurerm_kubernetes_cluster_node_pool" "main" {
85
97
kubernetes_cluster_id = azurerm_kubernetes_cluster. main . id
86
98
vm_size = each. value . node_size
87
99
vnet_subnet_id = var. vnet . data . infrastructure . default_subnet_id
88
- enable_auto_scaling = true
100
+ auto_scaling_enabled = true
89
101
mode = " User"
90
102
max_count = each. value . max_size
91
103
min_count = each. value . min_size
92
- node_taints = var. node_groups . additional_node_groups . 0 . compute_type == " GPU" ? [" sku=gpu:NoSchedule" ] : []
93
- tags = var. md_metadata . default_tags
104
+ node_taints = each. value . compute_type == " GPU" ? [" sku=gpu:NoSchedule" ] : []
105
+ upgrade_settings {
106
+ max_surge = " 10%"
107
+ }
108
+ tags = var. md_metadata . default_tags
94
109
}
95
110
96
111
data "azurerm_client_config" "main" {
@@ -101,3 +116,10 @@ resource "azurerm_role_assignment" "aks_read_acr" {
101
116
role_definition_name = " AcrPull"
102
117
principal_id = azurerm_kubernetes_cluster. main . kubelet_identity [0 ]. object_id
103
118
}
119
+
120
+ # Network Contributor role for AKS cluster identity to manage load balancers and network resources
121
+ resource "azurerm_role_assignment" "aks_network_contributor" {
122
+ scope = var. vnet . data . infrastructure . id
123
+ role_definition_name = " Network Contributor"
124
+ principal_id = azurerm_kubernetes_cluster. main . identity [0 ]. principal_id
125
+ }
0 commit comments