azure - Terraform Azure AKS - 如何安装 azure-keyvault-secrets-provider 附加组件

标签 azure terraform azure-aks terraform-provider-azure

我有一个使用 terraform 配置的 AKS kubernetes 集群。我需要启用 azure-keyvault-secrets-provider 附加组件。

使用 azure CLI,我可以按如下方式启用它:

az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup

但是,我如何使用 terraform 做到这一点?我尝试了文档,但没有提及任何有关 secret 驱动程序的内容,除了如下所示的一个 block :

resource "azurerm_kubernetes_cluster" "k8s_cluster" {
  lifecycle {
    ignore_changes = [
      default_node_pool
    ]
    prevent_destroy = false
  }

  key_vault_secrets_provider {
    secret_rotation_enabled = true
  }
...
}

上面的 key_vault_secrets_provider 是否与 azure CLI 命令执行相同的操作 az aks enable-addons --addons azure-keyvault-secrets-provider --name myAKSCluster --resource-group myResourceGroup

因为根据 terraform 文档,此 key_vault_secrets_provider block 仅用于轮换 keyvault secret 。但没有提及启用驱动程序。

我的要求是:

  1. 启用 secret 提供程序驱动程序
  2. 创建一个 kubernetes Secret -> 因此它将在 azure 中配置该 Secret
  3. 将 key 注入(inject) kubernetes 部署

最佳答案

我尝试在我的环境中检查相同的情况:

代码:没有 key_vault_secrets_provider

ma​​in.tf:

resource "azurerm_kubernetes_cluster" "example" {
  name                = "kavyaexample-aks1"
  location            = data.azurerm_resource_group.example.location
  resource_group_name = data.azurerm_resource_group.example.name
  dns_prefix          = "kavyaexampleaks1"

  default_node_pool {
    name       = "default"
    node_count = 1
    vm_size    = "Standard_D2_v2"
  }

  identity {
    type = "SystemAssigned"
  }

  tags = {
    Environment = "Production"
  }
}

output "client_certificate" {
  value     = azurerm_kubernetes_cluster.example.kube_config.0.client_certificate
  sensitive = true
}

enter image description here

  • 检查可用的 addons list for my managed aks cluster通过CLI,“azure-keyvault-secrets-provider”显示为禁用。这意味着对于最新版本的terraform提供者,他们有提供者。只是需要启用它。

命令:

az aks addon list –name kavyaexample-aks1  --resource-group <myrg>

enter image description here

现在在添加启用 secret 轮换的 key_vault_secrets_provider block 后进行检查。 主要.tf:

resource "azurerm_kubernetes_cluster" "example" {
  name                = "kavyaexample-aks1"
  location            = data.azurerm_resource_group.example.location
  resource_group_name = data.azurerm_resource_group.example.name
  dns_prefix          = "cffggf"
  ....
key_vault_secrets_provider {
    secret_rotation_enabled = true
  }
  default_node_pool {
    name       = ”dfgdf”
      ...

}

使用相同命令检查插件列表时:

az aks addon list –name kavyaexample-aks1 --resource-group <myrg>

enter image description here

正在启用 azure keyvault secret 提供程序插件

enter image description here

which means adding key_vault_secrets_provider block with secret rotation enabled itself means , we are making use of the azure keyvault secret provider addon.

另请检查此 terraform-azurerm-aks issue on addon_profile being deprecated in latest terraform versions |github

关于azure - Terraform Azure AKS - 如何安装 azure-keyvault-secrets-provider 附加组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74809390/

相关文章:

kubernetes - AKS |网络政策|使用Azure CNI时阻止入口流量

azure - 如何将Azure 'App Service Folder'挂载到docker容器?

terraform ssh : handshake failed: ssh: unable to authenticate, 尝试的方法 [无公钥],不存在支持的方法

azure - 终于将 Key Vault 与 AKS 集成...但不清楚我需要做什么,如果之后有任何事情要读入环境变量

amazon-web-services - Terraform 模板在手动更改 EBS 卷后重新创建所有资源

azure - 每个人都如何使用 Azure RBAC 作为代码?

azure - 如何将 AKS 群集连接到 Azure 托管的 postgresql,无需通过 Internet 进行路由

Azure 板 : Query - Pending Work for an Epic

postgresql - Airflow - 为什么外部数据库配置会破坏 helm 升级?

azure - 如何为 Linux Azure 应用服务启用 GZip 压缩?