Terraform - оператор if для выбора подходящей переменной - PullRequest
0 голосов
/ 20 марта 2020

Используя Terraform для развертывания в OCI, я хочу передать переменную с именем "nonprod" либо true, либо false, чтобы выбрать, какой отсек я использую, который определен в другой переменной "part_ocid ". Поэтому в зависимости от того, является ли переменная "nonprod" истинным или ложным, я хочу использовать другое значение в "part_ocid ". Из моего прочтения кажется, что это сработало бы, если бы они были ресурсами, а не переменными, так как ошибочные объявления дважды. Любая идея, как сделать это или, возможно, более чистый способ достижения того же самого?

variable "nonprod" {
  description = "If set to true, non-prod.  If false, prod"
  type        = bool
  default     = true
}

variable "compartment_ocid" {
  count = var.nonprod ? 1 : 0
  # Non-Prod compartment
  default = "nonprod_ocid_456"
}

variable "compartment_ocid" {
  count = var.nonprod ? 0 : 1
  # Prod compartment
  default = "prod_ocid_123"
}

1 Ответ

1 голос
/ 20 марта 2020

Одним из вариантов является объединение значений в local, определяемое результатами встроенного if. Например,

locals {
  compartment_ocid = var.nonprod ? "nonprod_ocid_456" : "prod_ocid_123" 
}

Затем позже вы можете ссылаться на значение как local.compartment_ocid.

Для получения дополнительной информации см. документацию terraform по локальным * .

...