首页 > 解决方案 > 使用 terraform 向 EKS 节点添加标签

问题描述

我正在使用以下代码创建一个具有特定节点的 EKS 集群:

resource "aws_eks_node_group" "managed_workers" {
  for_each = var.nodegroups[terraform.workspace]

  cluster_name    = aws_eks_cluster.cluster.name
  node_group_name = each.value.Name
  node_role_arn   = aws_iam_role.managed_workers.arn
  subnet_ids      = aws_subnet.private.*.id
  scaling_config {
    desired_size = 1
    max_size     = 1
    min_size     = 1
  }
  labels = {
    lifecycle = each.value.lifecycle
    autoscalergroup = each.value.autoscalergroup
  }
  release_version = var.managed_node_group_release_version
  tags = merge(
      var.tags[terraform.workspace], {
      "k8s.io/cluster-autoscaler/enabled"             = "true"
      "k8s.io/cluster-autoscaler/${var.cluster_name}" = "owned"
  })
  lifecycle {
    #create_before_destroy = true
    ignore_changes        = [scaling_config[0].desired_size, scaling_config[0].min_size]
  }
}

我需要使用以下代码向节点组添加一些标签:

resource "aws_autoscaling_group_tag" "Name" {
  for_each = aws_eks_node_group.managed_workers

  autoscaling_group_name = each.value.resources[0].autoscaling_groups[0].name
  depends_on = [
  aws_eks_node_group.managed_workers
  ]

  tag {
    key   = "Name"
    value = each.value.tags["Name"]

    propagate_at_launch = true
  }
}

当前行为是执行节点创建任务,因此 ASG 创建一个没有标签的节点实例。然后执行标签任务创建并将标签附加到 ASG,但是,正如我所写,ASG 已经创建了没有附加标签的节点..我期望的行为是标签附加到 ASG 首先创建的节点实例..我希望你理解我的问题:)

谢谢。

标签: kubernetesterraformamazon-eks

解决方案


推荐阅读