Estoy implementando AKS a través de terraform. Funciona muy bien, pero también me gustaría habilitar la identidad en el objeto VMSS para permitir el acceso de identidad administrada a nivel de pod (principalmente obtener claves de almacenes de claves).
Puedo hacer esto manualmente yendo al objeto VMSS creado automáticamente que Azure crea una vez que inicia el clúster de AKS.
Sin embargo, no veo una opción para esto en el recurso de terraformación.
¿Alguien se ha topado con esto y ha encontrado una manera de lograrlo?
Mi código de implementación es así:
resource "azurerm_kubernetes_cluster" "main" { name = "myaks" location = "centralus" resource_group_name = "myrg" dns_prefix = "myaks" node_resource_group = "aksmanagedrg" default_node_pool { name = "default" node_count = 1 vm_size = "Standard_B2ms" vnet_subnet_id = "myakssubnetid" os_disk_size_gb = 128 } identity { type = "SystemAssigned" } addon_profile { aci_connector_linux { enabled = false } azure_policy { enabled = false } http_application_routing { enabled = false } kube_dashboard { enabled = true } oms_agent { enabled = false } } network_profile { network_plugin = "azure" load_balancer_sku = "standard" } }¡Gracias!
Parece que está buscando las identidades administradas por pod en Azure Kubernetes Service . Si es así, desafortunadamente, parece que Terraform no admite la configuración de la propiedad. Cuando sigue el artículo anterior para configurar las identidades administradas por pod, puede ver el perfil de identidad del pod de esta manera:
Y no hay tal opción para que usted lo configure. Pero en su lugar, puede ejecutar la CLI de Azure en Terraform a través de null_resource y provisioner local-exec y aquí hay un ejemplo:
resource "null_resource" "aks_update" { provisioner "local-exec" { command = "az aks update --resource-group ${azurerm_resource_group.aks.name} --name ${azurerm_kubernetes_cluster.aks.name} --enable-pod-identity" } } resource "null_resource" "aks_add_poidentity" { provisioner "local-exec" { command = "az aks pod-identity add --resource-group ${azurerm_resource_group.aks.name} --cluster-name ${azurerm_kubernetes_cluster.aks.name} --namespace ${var.pod_identity_namespace} --name ${azurerm_user_assigned_identity.aks.name} --identity-resource-id ${azurerm_user_assigned_identity.aks.id}" } }Esta podría ser una forma de habilitar la identidad en el nivel de pods para el AKS.