Skip to content

Commit 41b638a

Browse files
committed
Welcome to Stack Simplify
1 parent c3ed0dc commit 41b638a

File tree

18 files changed

+237
-398
lines changed

18 files changed

+237
-398
lines changed

24-Azure-AKS-Terraform/24-03-Create-AKS-Cluster/README.md

Lines changed: 92 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -110,92 +110,121 @@ resource "azuread_group" "aks_administrators" {
110110
- This is going to be a very big terraform template when compared to what we created so far we will do it slowly step by step.
111111

112112
```
113+
# Provision AKS Cluster
114+
/*
115+
1. Add Basic Cluster Settings
116+
- Get Latest Kubernetes Version from datasource (kubernetes_version)
117+
- Add Node Resource Group (node_resource_group)
118+
2. Add Default Node Pool Settings
119+
- orchestrator_version (latest kubernetes version using datasource)
120+
- availability_zones
121+
- enable_auto_scaling
122+
- max_count, min_count
123+
- os_disk_size_gb
124+
- type
125+
- node_labels
126+
- tags
127+
3. Enable MSI
128+
4. Add On Profiles
129+
- Azure Policy
130+
- Azure Monitor (Reference Log Analytics Workspace id)
131+
5. RBAC & Azure AD Integration
132+
6. Admin Profiles
133+
- Windows Admin Profile
134+
- Linux Profile
135+
7. Network Profile
136+
8. Cluster Tags
137+
*/
138+
113139
resource "azurerm_kubernetes_cluster" "aks_cluster" {
114-
dns_prefix = "${azurerm_resource_group.aks_rg.name}-cluster"
115-
location = azurerm_resource_group.aks_rg.location
116140
name = "${azurerm_resource_group.aks_rg.name}-cluster"
141+
location = azurerm_resource_group.aks_rg.location
117142
resource_group_name = azurerm_resource_group.aks_rg.name
143+
dns_prefix = "${azurerm_resource_group.aks_rg.name}-cluster"
118144
kubernetes_version = data.azurerm_kubernetes_service_versions.current.latest_version
119145
node_resource_group = "${azurerm_resource_group.aks_rg.name}-nrg"
120146
121-
122147
default_node_pool {
123-
name = "systempool"
124-
vm_size = "Standard_DS2_v2"
148+
name = "systempool"
149+
vm_size = "Standard_DS2_v2"
125150
orchestrator_version = data.azurerm_kubernetes_service_versions.current.latest_version
126151
availability_zones = [1, 2, 3]
127152
enable_auto_scaling = true
128153
max_count = 3
129154
min_count = 1
130155
os_disk_size_gb = 30
131-
type = "VirtualMachineScaleSets"
156+
type = "VirtualMachineScaleSets"
132157
node_labels = {
133-
"nodepool-type" = "system"
134-
"environment" = "production"
135-
"nodepoolos" = "linux"
136-
"app" = "system-apps"
137-
}
138-
tags = {
139-
"nodepool-type" = "system"
140-
"environment" = "production"
141-
"nodepoolos" = "linux"
142-
"app" = "system-apps"
143-
}
158+
"nodepool-type" = "system"
159+
"environment" = "dev"
160+
"nodepoolos" = "linux"
161+
"app" = "system-apps"
162+
}
163+
tags = {
164+
"nodepool-type" = "system"
165+
"environment" = "dev"
166+
"nodepoolos" = "linux"
167+
"app" = "system-apps"
168+
}
144169
}
145170
146171
# Identity (System Assigned or Service Principal)
147-
identity { type = "SystemAssigned" }
172+
identity {
173+
type = "SystemAssigned"
174+
}
148175
149176
# Add On Profiles
150177
addon_profile {
151-
azure_policy { enabled = true }
178+
azure_policy {enabled = true}
152179
oms_agent {
153-
enabled = true
180+
enabled = true
154181
log_analytics_workspace_id = azurerm_log_analytics_workspace.insights.id
155182
}
156183
}
157184
158185
# RBAC and Azure AD Integration Block
159-
role_based_access_control {
160-
enabled = true
161-
azure_active_directory {
162-
managed = true
163-
admin_group_object_ids = [azuread_group.aks_administrators.object_id]
186+
role_based_access_control {
187+
enabled = true
188+
azure_active_directory {
189+
managed = true
190+
admin_group_object_ids = [azuread_group.aks_administrators.id]
191+
}
164192
}
165-
}
166193
167-
# Windows Admin Profile
168-
windows_profile {
169-
admin_username = var.windows_admin_username
170-
admin_password = var.windows_admin_password
171-
}
194+
# Windows Profile
195+
windows_profile {
196+
admin_username = var.windows_admin_username
197+
admin_password = var.windows_admin_password
198+
}
172199
173200
# Linux Profile
174-
linux_profile {
175-
admin_username = "ubuntu"
176-
ssh_key {
201+
linux_profile {
202+
admin_username = "ubuntu"
203+
ssh_key {
177204
key_data = file(var.ssh_public_key)
205+
}
178206
}
179-
}
180207
181208
# Network Profile
182-
network_profile {
183-
load_balancer_sku = "Standard"
184-
network_plugin = "azure"
185-
}
209+
network_profile {
210+
network_plugin = "azure"
211+
load_balancer_sku = "Standard"
212+
}
186213
187-
# AKS Cluster Tags
188-
tags = {
189-
Environment = "prod"
214+
tags = {
215+
Environment = "dev"
216+
}
190217
}
191218
192-
193-
}
194219
```
195220

196221
## Step-08: Create Terraform Output Values for AKS Cluster
197222
- Create a file named **08-outputs.tf**
198223
```
224+
# Create Outputs
225+
# 1. Resource Group Location
226+
# 2. Resource Group Id
227+
# 3. Resource Group Name
199228
200229
# Resource Group Outputs
201230
output "location" {
@@ -210,6 +239,24 @@ output "resource_group_name" {
210239
value = azurerm_resource_group.aks_rg.name
211240
}
212241
242+
# Azure AKS Versions Datasource
243+
output "versions" {
244+
value = data.azurerm_kubernetes_service_versions.current.versions
245+
}
246+
247+
output "latest_version" {
248+
value = data.azurerm_kubernetes_service_versions.current.latest_version
249+
}
250+
251+
# Azure AD Group Object Id
252+
output "azure_ad_group_id" {
253+
value = azuread_group.aks_administrators.id
254+
}
255+
output "azure_ad_group_objectid" {
256+
value = azuread_group.aks_administrators.object_id
257+
}
258+
259+
213260
# Azure AKS Outputs
214261
215262
output "aks_cluster_id" {
@@ -223,6 +270,7 @@ output "aks_cluster_name" {
223270
output "aks_cluster_kubernetes_version" {
224271
value = azurerm_kubernetes_cluster.aks_cluster.kubernetes_version
225272
}
273+
226274
```
227275

228276

24-Azure-AKS-Terraform/24-03-Create-AKS-Cluster/terraform-manifests-aks/backup/01-main.tf

Lines changed: 0 additions & 50 deletions
This file was deleted.

24-Azure-AKS-Terraform/24-03-Create-AKS-Cluster/terraform-manifests-aks/backup/02-variables.tf

Lines changed: 0 additions & 49 deletions
This file was deleted.

24-Azure-AKS-Terraform/24-03-Create-AKS-Cluster/terraform-manifests-aks/backup/03-resource-group.tf

Lines changed: 0 additions & 7 deletions
This file was deleted.

24-Azure-AKS-Terraform/24-03-Create-AKS-Cluster/terraform-manifests-aks/backup/04-aks-versions-datasource.tf

Lines changed: 0 additions & 6 deletions
This file was deleted.

24-Azure-AKS-Terraform/24-03-Create-AKS-Cluster/terraform-manifests-aks/backup/05-log-analytics-workspace.tf

Lines changed: 0 additions & 7 deletions
This file was deleted.

24-Azure-AKS-Terraform/24-03-Create-AKS-Cluster/terraform-manifests-aks/backup/06-aks-administrators-azure-ad.tf

Lines changed: 0 additions & 5 deletions
This file was deleted.

0 commit comments

Comments
 (0)