🎉

terraformのdynamicブロックでパラメータを条件分岐してみた

2024/04/24に公開

はじめに

terraformでGKEを定義した際に、反映する環境によって特定のリソースプロパティを追加したいケースがあった。

その際に、dynamicブロックを使うことで、リソースプロパティの条件分岐を実現できた。

https://developer.hashicorp.com/terraform/language/expressions/dynamic-blocks

dynamicブロックでパラメータを条件分岐

var.projecttestの場合のみ、dns_configを定義することができる。

resource "google_container_cluster" "cluster" {
  name             = "cluster"
  location         = var.region
  project          = var.project
  network          = google_compute_network.network.name
  enable_autopilot = true
  vertical_pod_autoscaling {
    enabled = true
  }
  ip_allocation_policy {}


  dynamic "dns_config" {
    for_each = var.project == "test" ? [1] : []
    content {
      cluster_dns        = "CLOUD_DNS"
      cluster_dns_domain = "cluster.local"
      cluster_dns_scope  = "CLUSTER_SCOPE"
    }
  }
}
GitHubで編集を提案

Discussion