Terraform: если подсеть не существует, установите для интерфейса значение null - PullRequest
0 голосов
/ 11 мая 2019

Я создаю пользовательский модуль, который создает многоядерную виртуальную машину в GCP. При развертывании могут быть случаи, когда виртуальной машине не нужно использовать несколько интерфейсов.

Можно ли установить сетевое_интерфейс в нулевое значение, если подсеть не существует? Я хочу избежать создания нескольких модулей для каждого интерфейса, если это возможно.


resource "google_compute_instance" "vm" {
  name                      = "${var.vm_name}"
  machine_type              = "${var.machine_type}"
  zone                      = "${var.zone}"
  min_cpu_platform          = "${var.cpu_platform}"

  network_interface {
    subnetwork    = "${google_compute_subnetwork.subnetwork1.name}"
  }
  network_interface {
    subnetwork    = "${google_compute_subnetwork.subnetwork2.name}"
  }

  network_interface {

// PSEUDO CODE
    subnetwork   = if (subnetwork3 == true) {
                      "${google_compute_subnetwork.subnetwork3.name}"
                   else 
                      "do nothing or set null"
  }
}

1 Ответ

1 голос
/ 14 мая 2019

Можете ли вы объединить locals с count?

Пример

locals {
  interface_num = "${var.is_subnetwork_3 ? 0 : 3}"
}

resource "google_whatever" "name" {
  count = "${local.interface_num}"
  // config
}
...