Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for 'None' option in private_dns_zone_id parameter of azurerm_kubernetes_cluster #10769

Closed
justin-sobanski opened this issue Mar 1, 2021 · 2 comments · Fixed by #10774

Comments

@justin-sobanski
Copy link

Community Note

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment

Description

We use on-premise DNS and run into issues with building AKS clusters using the default System option for the DNS zone ID. According to the Microsoft documentation, None is a valid option as well which results in AKS not creating a private zone and skipping the validation of DNS at build time. This would fit our use case perfectly but the None option isn't currently supported by the provider.

New or Affected Resource(s)

  • azurerm_kubernetes_cluster

Potential Terraform Configuration

resource "azurerm_kubernetes_cluster" "aks" {
  for_each                = var.clusters
  name                    = each.key
  location                = var.location
  kubernetes_version      = lookup(each.value, "kubernetes_version", null)
  resource_group_name     = var.resource_group_name
  dns_prefix              = each.key
  private_cluster_enabled = true
  private_dns_zone_id     = "None"

  default_node_pool {
    name                = local.default_pools[each.key].name
    node_count          = local.default_pools[each.key].node_count
    max_pods            = local.default_pools[each.key].max_pods
    vm_size             = local.default_pools[each.key].vm_size
    enable_auto_scaling = local.default_pools[each.key].enable_auto_scaling
    availability_zones  = local.default_pools[each.key].availability_zones
    max_count = (
      local.default_pools[each.key].enable_auto_scaling
      ? (
        local.default_pools[each.key].max_count != null
        ? local.default_pools[each.key].max_count
        : local.default_pools[each.key].node_count * 2
      )
      : null
    )
    min_count = (
      local.default_pools[each.key].enable_auto_scaling
      ? (
        local.default_pools[each.key].min_count != null
        ? local.default_pools[each.key].min_count
        : local.default_pools[each.key].node_count
      )
      : null
    )
    vnet_subnet_id = var.subnet_ids[each.value.subnet_name]
  }

  network_profile {
    network_plugin    = "azure"
    network_policy    = lookup(each.value, "network_policy", "calico")
    load_balancer_sku = "Standard"
    outbound_type     = "userDefinedRouting"
  }

  identity {
    type = "SystemAssigned"
  }

  addon_profile {
    kube_dashboard {
      enabled = false
    }
    oms_agent {
      enabled                    = var.log_analytics_workspace_id != null ? true : false
      log_analytics_workspace_id = var.log_analytics_workspace_id
    }
  }

  role_based_access_control {
    enabled = true
    azure_active_directory {
      managed                = true
      admin_group_object_ids = [azuread_group.adm[each.key].id]
    }
  }
  tags = local.tags
}

References

Microsoft documentation on the None option: https://docs.microsoft.com/en-us/azure/aks/private-clusters#configure-private-dns-zone

@ghost
Copy link

ghost commented Mar 12, 2021

This has been released in version 2.51.0 of the provider. Please see the Terraform documentation on provider versioning or reach out if you need any assistance upgrading. As an example:

provider "azurerm" {
    version = "~> 2.51.0"
}
# ... other configuration ...

@ghost
Copy link

ghost commented Apr 9, 2021

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.

If you feel this issue should be reopened, we encourage creating a new issue linking back to this one for added context. If you feel I made an error 🤖 🙉 , please reach out to my human friends 👉 [email protected]. Thanks!

@ghost ghost locked as resolved and limited conversation to collaborators Apr 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants