Quantcast
Viewing latest article 22
Browse Latest Browse All 38

Answer by Giulio Vian for How to give permissions to AKS to access ACR via terraform?

This code worked for me.

resource "azuread_application""aks_sp" {  name = "sp-aks-${local.cluster_name}"}resource "azuread_service_principal""aks_sp" {  application_id               = azuread_application.aks_sp.application_id  app_role_assignment_required = false}resource "azuread_service_principal_password""aks_sp" {  service_principal_id = azuread_service_principal.aks_sp.id  value                = random_string.aks_sp_password.result  end_date_relative    = "8760h" # 1 year  lifecycle {    ignore_changes = [      value,      end_date_relative    ]  }}resource "azuread_application_password""aks_sp" {  application_object_id = azuread_application.aks_sp.id  value                 = random_string.aks_sp_secret.result  end_date_relative     = "8760h" # 1 year  lifecycle {    ignore_changes = [      value,      end_date_relative    ]  }}data "azurerm_container_registry""pyp" {  name                = var.container_registry_name  resource_group_name = var.container_registry_resource_group_name}resource "azurerm_role_assignment""aks_sp_container_registry" {  scope                = data.azurerm_container_registry.pyp.id  role_definition_name = "AcrPull"  principal_id         = azuread_service_principal.aks_sp.object_id}# requires Azure Provider 1.37+resource "azurerm_kubernetes_cluster""pyp" {  name                = local.cluster_name  location            = azurerm_resource_group.pyp.location  resource_group_name = azurerm_resource_group.pyp.name  dns_prefix          = local.env_name_nosymbols  kubernetes_version  = local.kubernetes_version  default_node_pool {    name            = "default"    node_count      = 1    vm_size         = "Standard_D2s_v3"    os_disk_size_gb = 80  }  windows_profile {    admin_username = "winadm"    admin_password = random_string.windows_profile_password.result  }  network_profile {    network_plugin     = "azure"    dns_service_ip     = cidrhost(local.service_cidr, 10)    docker_bridge_cidr = "172.17.0.1/16"    service_cidr       = local.service_cidr    load_balancer_sku  = "standard"  }  service_principal {    client_id     = azuread_service_principal.aks_sp.application_id    client_secret = random_string.aks_sp_password.result  }  addon_profile {    oms_agent {      enabled                    = true      log_analytics_workspace_id = azurerm_log_analytics_workspace.pyp.id    }  }  tags = local.tags}

source https://github.com/giuliov/pipeline-your-pipelines/tree/master/src/kubernetes/terraform


Viewing latest article 22
Browse Latest Browse All 38

Trending Articles