From 31bae23b33b9ece2cfd99bf0f366179691ecca63 Mon Sep 17 00:00:00 2001 From: hezijie Date: Tue, 5 Nov 2024 17:23:15 +0800 Subject: [PATCH] try azapi --- quickstart/101-aks-extended-zones/main.tf | 123 ++++++++++++++---- quickstart/101-aks-extended-zones/outputs.tf | 22 ++-- .../101-aks-extended-zones/providers.tf | 4 + 3 files changed, 113 insertions(+), 36 deletions(-) diff --git a/quickstart/101-aks-extended-zones/main.tf b/quickstart/101-aks-extended-zones/main.tf index 3a2a8900..3921db88 100644 --- a/quickstart/101-aks-extended-zones/main.tf +++ b/quickstart/101-aks-extended-zones/main.tf @@ -27,35 +27,108 @@ resource "azurerm_virtual_network" "vnet" { } } -resource "azurerm_kubernetes_cluster" "aks" { - name = random_pet.azurerm_kubernetes_cluster_name.id - location = azurerm_resource_group.rg.location - resource_group_name = azurerm_resource_group.rg.name - dns_prefix = random_pet.azurerm_kubernetes_cluster_dns_prefix.id - +resource "azapi_resource" "aks" { + count = 1 + 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" } - - default_node_pool { - name = "agentpool" - vm_size = var.aks_node_vm_size - node_count = var.aks_node_count - vnet_subnet_id = element(tolist(azurerm_virtual_network.vnet.subnet), 0).id + body = { + extendedLocation = { + name = 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" + vnetSubnetID = element(tolist(azurerm_virtual_network.vnet.subnet), 0).id + 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 + } + } + } } - - windows_profile { - admin_username = var.admin_username - admin_password = var.admin_password - } - - network_profile { - network_plugin = "azure" - load_balancer_sku = "standard" - } - - edge_zone = var.aks_extended_zone - timeouts { create = "6h" } diff --git a/quickstart/101-aks-extended-zones/outputs.tf b/quickstart/101-aks-extended-zones/outputs.tf index c2cce80f..d1666cb9 100644 --- a/quickstart/101-aks-extended-zones/outputs.tf +++ b/quickstart/101-aks-extended-zones/outputs.tf @@ -1,11 +1,11 @@ -output "resource_group_name" { - value = azurerm_resource_group.rg.name -} - -output "aks_cluster_name" { - value = azurerm_kubernetes_cluster.aks.name -} - -output "aks_extended_zone" { - value = azurerm_kubernetes_cluster.aks.edge_zone -} \ No newline at end of file +# output "resource_group_name" { +# value = azurerm_resource_group.rg.name +# } +# +# output "aks_cluster_name" { +# value = azurerm_kubernetes_cluster.aks.name +# } +# +# output "aks_extended_zone" { +# value = azurerm_kubernetes_cluster.aks.edge_zone +# } \ No newline at end of file diff --git a/quickstart/101-aks-extended-zones/providers.tf b/quickstart/101-aks-extended-zones/providers.tf index 7261b1fb..f188c6db 100644 --- a/quickstart/101-aks-extended-zones/providers.tf +++ b/quickstart/101-aks-extended-zones/providers.tf @@ -4,6 +4,10 @@ terraform { source = "hashicorp/azurerm" version = "~>3.0" } + azapi = { + source = "Azure/azapi" + version = "2.0.1" + } random = { source = "hashicorp/random" version = "~>3.0"