Terraform附加标签



我创建VPC和添加标签的子网。

稍后,我创建EKS集群,它会附加自己的标签,如果我再次apply,标签就会被覆盖。

我需要任何方法来读取当前标记,然后与我的自定义标记合并。问题是,如果VPC资源是第一次创建,我无法查询是否存在某些标签。

这是我的子网定义

resource "aws_subnet" "k8s" {
count = "${var.create_vpc && length(var.k8s_subnets) > 0 ? length(var.k8s_subnets) : 0}"
vpc_id            = "${local.vpc_id}"
cidr_block        = "${var.k8s_subnets[count.index]}"
availability_zone = "${element(var.azs, count.index)}"
tags = "${merge(map("Name", format("subnet-%s-${var.k8s_subnet_suffix}-%s", var.name, element(var.azs, count.index))), var.tags, var.k8s_subnet_tags)}"
}

这是EKS添加的标签:

kubernetes.io/cluster/eks-cluster : shared

我被这种。。。先来的是鸡肉还是鸡蛋?有什么想法或建议吗?

--已编辑

像self.tags这样的东西可能是解决方案,但不幸的是不可能:

self。ATTRIBUTE语法仅在提供程序中允许且有效。

并显示错误:

Error: resource 'aws_subnet.k8s' config: cannot contain self-reference self.tags

这就是我所做的:

  1. 我在env.sh中定义了封装terraform的公共标签
  2. 当创建另一个组件时,我会这样做:tags="${merge(var.default_tags,map("Name",format("%s-Jenkins-ELB",var.env((}">
  3. 您可以将VPC标记写入SSM参数存储,然后检索它们供EKS集群使用

相关内容

  • 没有找到相关文章

最新更新