Terraform добавить теги - PullRequest
       33

Terraform добавить теги

0 голосов
/ 11 декабря 2018

Я создаю 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 Ответ

0 голосов
/ 12 декабря 2018

Вот что я делаю:

  1. Я определяю общие теги в env.sh, который оборачивает terraform
  2. При создании другого компонента я делаю это: tags = "$ {объединить (var.default_tags, map ("Имя", формат ("% s-Jenkins-ELB", var.env)))} "
  3. Вы можете записать теги VPC в хранилище параметров SSM и получить ихпозже будет использоваться кластером EKS.
...