'Generation of a set to be used in for_each
Is there a way to generate a set from an Integer? It would convenient if we have a number_of_instances parameter that is converted to set to be used in for_each Meta-Argument. In result, we don't need to write:
for_each = toset(["one", "two", "three",])
In stead, we just set a parameter:
number_of_instances = 3
For now I came up with this:
variable "number_of_instances" {
  type = number
  default = 0
}
locals {
  i = [
    "a",
    "b",
    "c",
    "d",
    "e",
    "f",
    "g",
    "h",
    "i",
    "j",
  ]
}
resource "null_resource" "main" {
  for_each = toset(slice(local.i, 0, var.number_of_instances))
  connection {
    name = each.key
  }
}
Solution 1:[1]
May you could the following:
variable "number_of_instances" {
  default = 3
}
locals {
  numbers = ["one", "two", "three", "four", "five", "six"]
  number_set = slice(local.numbers, 0, var.number_of_instances)
}
and then use:
for_each = toset(local.number_set)
Off course numbers must be pre-populated first.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source | 
|---|---|
| Solution 1 | Marcin | 
