You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Terraform基于固定格式JSON输入批量创建Kubernetes Namespace

Terraform 批量创建Kubernetes Namespace 可行方案

该需求可实现,无需修改现有tfvars.json格式,配置调整如下:

步骤1:声明匹配输入格式的变量

新增variables.tf文件,定义和tfvars.json顶层key对应的变量:

variable "example1" {
  type = list(object({
    namespace_name = string
    team_name      = string
  }))
  description = "List of namespace configurations from tfvars.json"
}

步骤2:修改main.tf使用for_each循环创建资源

之前for_each失效的原因是直接传入了列表类型值,Terraform要求for_each必须输入带唯一键的map或者字符串集合,需要先将输入列表转换为以namespace名称为唯一键的映射:

resource "kubernetes_namespace" "aks_namespace" {
  # 将输入列表转换为map,用namespace_name作为唯一键,避免资源随列表顺序变化被误重建
  for_each = { for ns in var.example1 : ns.namespace_name => ns }

  metadata {
    annotations = {
      name = each.value.namespace_name
    }
    labels = {
      name = each.value.team_name
    }
    name = each.value.namespace_name
  }
}

验证效果

执行terraform plan会输出待创建的2个Namespace资源,实例键分别为test-1、test-2,确认无误后执行terraform apply即可完成批量创建。

内容的提问来源于stack exchange,提问作者pk_dhruv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:06:04