Как создать несколько томов разных размеров в одном блоке ресурсов в Terraform? - PullRequest
0 голосов
/ 06 апреля 2020

Мой текущий Terraform настроен на создание нескольких AWS томов одинакового размера. Пара наших серверов теперь требует больших объемов. Можно ли создать несколько томов разного размера в одном блоке ресурсов?

В качестве альтернативы мне пришлось бы разделить этот блок (1 блок на размер тома), что потребовало бы от меня перестройки большей части моей конфигурации Terraform, т. Е. В разделе прикрепления тома и т. Д. c. Я бы предпочел избежать этого, если это возможно.

Мне нужны третий и четвертый тома в подсчете, чтобы они были большего размера. Первоначально я думал использовать условную логику c, такую ​​как If / Else, однако я не уверен, как реализовать это в terraform. Я использую терраформ 0.12.18.

Псевдокод:

resource "aws_ebs_volume" "myvolume" {
  provider          = aws.client
  count             = 5
  availability_zone = var.availability_zone
  encrypted         = "true"
  size              = if index aws_ebs_volume.myvolume = 2 or 3 then 300GB else 100GB
  type              = "gp2"
}

1 Ответ

0 голосов
/ 06 апреля 2020

вы можете сделать, как показано ниже.

resource "aws_ebs_volume" "count" {
  count             = 5
  availability_zone = var.availability_zone
  size              = contains([2, 3], count.index) ? 300 : 100
  type              = "gp2"
}

вы также можете использовать for_each.

resource "aws_ebs_volume" "for_each" {
  for_each = {
    0 = 100
    1 = 100
    2 = 300
    3 = 300
    4 = 100
  }
  availability_zone = var.availability_zone
  size              = each.value
  type              = "gp2"
}
...