quickstart/101-aks-extended-zones/main.tf (117 lines of code) (raw):
resource "random_pet" "rg_name" {
prefix = var.resource_group_name_prefix
}
resource "azurerm_resource_group" "rg" {
location = var.resource_group_location
name = random_pet.rg_name.id
}
resource "random_pet" "azurerm_kubernetes_cluster_name" {
prefix = "cluster"
}
resource "random_pet" "azurerm_kubernetes_cluster_dns_prefix" {
prefix = "dns"
}
resource "azapi_resource" "aks" {
type = "Microsoft.ContainerService/ManagedClusters@2024-05-01"
name = random_pet.azurerm_kubernetes_cluster_name.id
parent_id = azurerm_resource_group.rg.id
location = azurerm_resource_group.rg.location
identity {
type = "SystemAssigned"
}
body = {
extendedLocation = {
name = replace(lower(var.aks_extended_zone), " ", "")
type = "EdgeZone"
}
sku = {
name = "Base"
tier = "Free"
}
properties = {
dnsPrefix = random_pet.azurerm_kubernetes_cluster_dns_prefix.id
kubernetesVersion = "1.29"
agentPoolProfiles = [
{
name = "agentpool"
count = var.aks_node_count
vmSize = var.aks_node_vm_size
osDiskSizeGB = 128
kubeletDiskType = "OS"
maxPods = 30
type = "VirtualMachineScaleSets"
enableAutoScaling = false,
scaleDownMode = "Delete",
orchestratorVersion = "1.29"
enableNodePublicIP = false
mode = "System"
enableEncryptionAtHost = false
enableUltraSSD = false
osType = "Linux"
osSKU = "Ubuntu"
upgradeSettings = {
maxSurge = "10%"
}
enableFIPS = false
}
]
windowsProfile = {
adminUsername = var.admin_username
adminPassword = var.admin_password
licenseType = "None"
enableCSIProxy = true
}
servicePrincipalProfile = {
clientId = "msi"
}
enableRBAC = true
supportPlan = "KubernetesOfficial"
networkProfile = {
networkPlugin = "azure"
networkPolicy = "none"
networkDataplane = "azure"
loadBalancerSku = "standard"
loadBalancerProfile = {
managedOutboundIPs = {
count = 1
}
backendPoolType = "nodeIPConfiguration"
}
serviceCidr = "10.0.0.0/16"
dnsServiceIP = "10.0.0.10"
outboundType = "loadBalancer"
serviceCidrs = [
"10.0.0.0/16",
]
ipFamilies = ["IPv4"]
}
autoUpgradeProfile = {
upgradeChannel = "none"
nodeOSUpgradeChannel = "NodeImage"
}
disableLocalAccounts = false
storageProfile = {
diskCSIDriver = {
enabled = true
}
fileCSIDriver = {
enabled = true
}
snapshotController = {
enabled = true
}
}
oidcIssuerProfile = {
enabled = false
}
azureMonitorProfile = {
metrics = {
enabled = false
}
}
}
}
timeouts {
create = "6h"
}
}