From 4c7b3997d4e9ef38ef7c7fd629b7a1ff5ca0418e Mon Sep 17 00:00:00 2001 From: Kunal Kumar Gupta Date: Mon, 3 Feb 2020 10:01:52 -0600 Subject: [PATCH] fix: If release_channel is active, set min_master_version to null (#412) * If release_channel is active on the module, set min_master_version to null * Fixing PR comments --- autogen/main/cluster.tf.tmpl | 9 +++++++-- cluster.tf | 5 +++-- examples/simple_regional_beta/main.tf | 1 + helpers/migrate7.py | 3 ++- modules/beta-private-cluster-update-variant/cluster.tf | 7 ++++--- modules/beta-private-cluster/cluster.tf | 7 ++++--- modules/beta-public-cluster/cluster.tf | 7 ++++--- modules/private-cluster-update-variant/cluster.tf | 5 +++-- modules/private-cluster/cluster.tf | 5 +++-- test/fixtures/beta_cluster/main.tf | 2 +- test/integration/beta_cluster/controls/gcloud.rb | 4 ++-- 11 files changed, 34 insertions(+), 21 deletions(-) diff --git a/autogen/main/cluster.tf.tmpl b/autogen/main/cluster.tf.tmpl index 0afbf42a4..526a961f6 100644 --- a/autogen/main/cluster.tf.tmpl +++ b/autogen/main/cluster.tf.tmpl @@ -55,8 +55,13 @@ resource "google_container_cluster" "primary" { } {% endif %} - subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + +{% if beta_cluster %} + min_master_version = var.release_channel != null ? null : local.master_version +{% else %} min_master_version = local.master_version +{% endif %} logging_service = var.logging_service monitoring_service = var.monitoring_service @@ -354,7 +359,7 @@ resource "google_container_node_pool" "pools" { version = lookup(each.value, "auto_upgrade", false) ? "" : lookup( each.value, "version", - local.node_version, + google_container_cluster.primary.min_master_version, ) initial_node_count = lookup(each.value, "autoscaling", true) ? lookup( diff --git a/cluster.tf b/cluster.tf index b56acd0f7..7046a2414 100644 --- a/cluster.tf +++ b/cluster.tf @@ -42,7 +42,8 @@ resource "google_container_cluster" "primary" { } - subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + min_master_version = local.master_version logging_service = var.logging_service @@ -133,7 +134,7 @@ resource "google_container_node_pool" "pools" { version = lookup(each.value, "auto_upgrade", false) ? "" : lookup( each.value, "version", - local.node_version, + google_container_cluster.primary.min_master_version, ) initial_node_count = lookup(each.value, "autoscaling", true) ? lookup( diff --git a/examples/simple_regional_beta/main.tf b/examples/simple_regional_beta/main.tf index d11fdd974..9f2751783 100644 --- a/examples/simple_regional_beta/main.tf +++ b/examples/simple_regional_beta/main.tf @@ -45,6 +45,7 @@ module "gke" { database_encryption = var.database_encryption enable_binary_authorization = var.enable_binary_authorization pod_security_policy_config = var.pod_security_policy_config + release_channel = "REGULAR" } data "google_client_config" "default" { diff --git a/helpers/migrate7.py b/helpers/migrate7.py index 0ada59d57..db46c3cd5 100755 --- a/helpers/migrate7.py +++ b/helpers/migrate7.py @@ -31,6 +31,7 @@ }, ] + class ModuleMigration: """ Migrate the resources from a flat project factory to match the new @@ -396,4 +397,4 @@ def argparser(): if __name__ == "__main__": - main(sys.argv) \ No newline at end of file + main(sys.argv) diff --git a/modules/beta-private-cluster-update-variant/cluster.tf b/modules/beta-private-cluster-update-variant/cluster.tf index 4f6d2865d..ba247b6a1 100644 --- a/modules/beta-private-cluster-update-variant/cluster.tf +++ b/modules/beta-private-cluster-update-variant/cluster.tf @@ -49,8 +49,9 @@ resource "google_container_cluster" "primary" { } } - subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link - min_master_version = local.master_version + subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + + min_master_version = var.release_channel != null ? null : local.master_version logging_service = var.logging_service monitoring_service = var.monitoring_service @@ -320,7 +321,7 @@ resource "google_container_node_pool" "pools" { version = lookup(each.value, "auto_upgrade", false) ? "" : lookup( each.value, "version", - local.node_version, + google_container_cluster.primary.min_master_version, ) initial_node_count = lookup(each.value, "autoscaling", true) ? lookup( diff --git a/modules/beta-private-cluster/cluster.tf b/modules/beta-private-cluster/cluster.tf index 33b25e65c..b75eb1a54 100644 --- a/modules/beta-private-cluster/cluster.tf +++ b/modules/beta-private-cluster/cluster.tf @@ -49,8 +49,9 @@ resource "google_container_cluster" "primary" { } } - subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link - min_master_version = local.master_version + subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + + min_master_version = var.release_channel != null ? null : local.master_version logging_service = var.logging_service monitoring_service = var.monitoring_service @@ -248,7 +249,7 @@ resource "google_container_node_pool" "pools" { version = lookup(each.value, "auto_upgrade", false) ? "" : lookup( each.value, "version", - local.node_version, + google_container_cluster.primary.min_master_version, ) initial_node_count = lookup(each.value, "autoscaling", true) ? lookup( diff --git a/modules/beta-public-cluster/cluster.tf b/modules/beta-public-cluster/cluster.tf index 1b995231f..496f60f11 100644 --- a/modules/beta-public-cluster/cluster.tf +++ b/modules/beta-public-cluster/cluster.tf @@ -49,8 +49,9 @@ resource "google_container_cluster" "primary" { } } - subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link - min_master_version = local.master_version + subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + + min_master_version = var.release_channel != null ? null : local.master_version logging_service = var.logging_service monitoring_service = var.monitoring_service @@ -235,7 +236,7 @@ resource "google_container_node_pool" "pools" { version = lookup(each.value, "auto_upgrade", false) ? "" : lookup( each.value, "version", - local.node_version, + google_container_cluster.primary.min_master_version, ) initial_node_count = lookup(each.value, "autoscaling", true) ? lookup( diff --git a/modules/private-cluster-update-variant/cluster.tf b/modules/private-cluster-update-variant/cluster.tf index b0a3c1f2a..041f2f9f8 100644 --- a/modules/private-cluster-update-variant/cluster.tf +++ b/modules/private-cluster-update-variant/cluster.tf @@ -42,7 +42,8 @@ resource "google_container_cluster" "primary" { } - subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + min_master_version = local.master_version logging_service = var.logging_service @@ -218,7 +219,7 @@ resource "google_container_node_pool" "pools" { version = lookup(each.value, "auto_upgrade", false) ? "" : lookup( each.value, "version", - local.node_version, + google_container_cluster.primary.min_master_version, ) initial_node_count = lookup(each.value, "autoscaling", true) ? lookup( diff --git a/modules/private-cluster/cluster.tf b/modules/private-cluster/cluster.tf index 811616c09..32dc76bf2 100644 --- a/modules/private-cluster/cluster.tf +++ b/modules/private-cluster/cluster.tf @@ -42,7 +42,8 @@ resource "google_container_cluster" "primary" { } - subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + subnetwork = data.google_compute_subnetwork.gke_subnetwork.self_link + min_master_version = local.master_version logging_service = var.logging_service @@ -146,7 +147,7 @@ resource "google_container_node_pool" "pools" { version = lookup(each.value, "auto_upgrade", false) ? "" : lookup( each.value, "version", - local.node_version, + google_container_cluster.primary.min_master_version, ) initial_node_count = lookup(each.value, "autoscaling", true) ? lookup( diff --git a/test/fixtures/beta_cluster/main.tf b/test/fixtures/beta_cluster/main.tf index 58941b7f6..82f65126b 100644 --- a/test/fixtures/beta_cluster/main.tf +++ b/test/fixtures/beta_cluster/main.tf @@ -35,7 +35,7 @@ module "this" { cluster_name_suffix = "-${random_string.suffix.result}" project_id = local.project_id - regional = false + regional = true region = var.region zones = slice(var.zones, 0, 1) network = google_compute_network.main.name diff --git a/test/integration/beta_cluster/controls/gcloud.rb b/test/integration/beta_cluster/controls/gcloud.rb index 032be9601..722578842 100644 --- a/test/integration/beta_cluster/controls/gcloud.rb +++ b/test/integration/beta_cluster/controls/gcloud.rb @@ -36,8 +36,8 @@ expect(data['status']).to eq 'RUNNING' end - it "is zonal" do - expect(data['location']).to match(/^(.*)[1-9]-[a-z]$/) + it "is regional" do + expect(data['location']).to match(/^.*[1-9]$/) end it "is single zoned" do