具有计数的唯一Terraform资源名称-重新创建时不重复名称

时间:2019-12-27 17:15:02

标签: kubernetes terraform

我正在使用count属性在OpenStack中使用Terraform创建多个实例。

我想要实现的是如果实例名称曾经在历史记录中使用过,则永远不要重复它。

示例

一开始,我创建了3个实例:

node-w0
node-w1
node-w2

一段时间后,node-w1变得不健康,我需要手动将其终止。 对于下一个terraform apply(不进行任何代码更改),我希望将新实例命名为node-w3

node-w0
node-w2
node-w3

这种行为可以实现吗?

我当前的TF定义:

resource "openstack_compute_instance_v2" "workers" {
    count       = var.worker_count
    name        = "${var.cluster_name}-w${count.index}"
    image_name  = var.image_name
    flavor_name = var.worker_flavor
    key_pair    = var.os_keypair
    availability_zone = element(var.availability_zones, count.index)
}

编辑: 我想(理想)解决另一种情况。

想象一下,像第一种情况一样具有实例w0-2。我想缩减实例数量,但出于某种原因终止实例编号w1。 如果我在OpenStack中手动终止实例w1并将递减计数减为2,将重新创建实例w1并销毁实例w2。 所需的行为是保留实例w2,而忘记实例w1

是否有一种方法可以满足这两种情况,而无需将实例名称的整个列表传递给没有count变量的OpenStack?

0 个答案:

没有答案