From 9b00da871faa3fc6e8e932d8120867250ba734c3 Mon Sep 17 00:00:00 2001 From: Alexander Apalikov Date: Tue, 5 May 2020 01:04:30 +0300 Subject: [PATCH] Add locals and lookup to handle missing keys Avoid situation when missing one key could break deployment. --- examples/terraform-submodules/gke/module.tf | 17 +++----- install/terraform/modules/gke/cluster.tf | 42 ++++++++++++------- .../en/docs/Installation/Terraform/gke.md | 3 +- 3 files changed, 34 insertions(+), 28 deletions(-) diff --git a/examples/terraform-submodules/gke/module.tf b/examples/terraform-submodules/gke/module.tf index 82d74b7922..cca6939a36 100644 --- a/examples/terraform-submodules/gke/module.tf +++ b/examples/terraform-submodules/gke/module.tf @@ -64,10 +64,6 @@ variable "feature_gates" { default = "" } -variable "kubernetes_version" { - default = "1.15" -} - module "gke_cluster" { // *************************************************************************************************** // Update ?ref= to the agones release you are installing. For example, ?ref=release-1.3.0 corresponds @@ -76,13 +72,12 @@ module "gke_cluster" { source = "git::https://github.com/googleforgames/agones.git//install/terraform/modules/gke/?ref=master" cluster = { - "name" = var.name - "zone" = var.zone - "machineType" = var.machine_type - "initialNodeCount" = var.node_count - "project" = var.project - "network" = var.network - "kubernetesVersion" = var.kubernetes_version + "name" = var.name + "zone" = var.zone + "machineType" = var.machine_type + "initialNodeCount" = var.node_count + "project" = var.project + "network" = var.network } } diff --git a/install/terraform/modules/gke/cluster.tf b/install/terraform/modules/gke/cluster.tf index d3ba17d679..630ea11664 100644 --- a/install/terraform/modules/gke/cluster.tf +++ b/install/terraform/modules/gke/cluster.tf @@ -19,10 +19,22 @@ terraform { data "google_client_config" "default" {} +# A list of all parameters used in interpolation var.cluster +# Set values to default if not key was not set in original map +locals { + project = lookup(var.cluster, "project", "agones") + zone = lookup(var.cluster, "zone", "us-west1-c") + name = lookup(var.cluster, "name", "test-cluster") + machineType = lookup(var.cluster, "machineType", "n1-standard-4") + initialNodeCount = lookup(var.cluster, "initialNodeCount", "4") + network = lookup(var.cluster, "network", "default") + kubernetesVersion = lookup(var.cluster, "kubernetesVersion", "1.15") +} + data "google_container_engine_versions" "kubernetes" { - project = var.cluster["project"] - location = var.cluster["zone"] - version_prefix = var.cluster["kubernetesVersion"] + project = local.project + location = local.zone + version_prefix = local.kubernetesVersion } # echo command used for debugging purpose @@ -31,18 +43,18 @@ resource "null_resource" "test-setting-variables" { provisioner "local-exec" { command = <