diff --git a/CHANGELOG.md b/CHANGELOG.md index b0c6cc6d7c..ffaf0f3b55 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 Extending the adopted spec, each change should have a link to its corresponding pull request appended. ## [Unreleased] + +### Changed + +* All Beta functionality removed from non-beta clusters, some properties like node_pool taints available only in beta cluster now [#228] + ### Added * Added support for resource usage export config [#238] @@ -173,6 +178,7 @@ Extending the adopted spec, each change should have a link to its corresponding [v0.3.0]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v0.2.0...v0.3.0 [v0.2.0]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/compare/v0.1.0...v0.2.0 +[#228]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/228 [#238]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/238 [#241]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/241 [#250]: https://github.com/terraform-google-modules/terraform-google-kubernetes-engine/pull/250 diff --git a/README.md b/README.md index f38023e600..923d3f7a09 100644 --- a/README.md +++ b/README.md @@ -162,7 +162,6 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o | node\_pools\_metadata | Map of maps containing node metadata by node-pool name | map(map(string)) | `` | no | | node\_pools\_oauth\_scopes | Map of lists containing node oauth scopes by node-pool name | map(list(string)) | `` | no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | map(list(string)) | `` | no | -| node\_pools\_taints | Map of lists containing node taints by node-pool name | object | `` | no | | node\_version | The Kubernetes version of the node pools. Defaults kubernetes_version (master) variable and can be overridden for individual node pools by setting the `version` key on them. Must be empyty or set the same as master at cluster creation. | string | `""` | no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | list(string) | `` | no | | project\_id | The project ID to host the cluster in (required) | string | n/a | yes | diff --git a/autogen/README.md b/autogen/README.md index 5b44ad2f14..620aa422c5 100644 --- a/autogen/README.md +++ b/autogen/README.md @@ -157,7 +157,7 @@ The [project factory](https://github.com/terraform-google-modules/terraform-goog - [kubectl](https://github.com/kubernetes/kubernetes/releases) 1.9.x #### Terraform and Plugins - [Terraform](https://www.terraform.io/downloads.html) 0.12 -{% if private_cluster or beta_cluster %} +{% if beta_cluster %} - [Terraform Provider for GCP Beta][terraform-provider-google-beta] v2.9 {% else %} - [Terraform Provider for GCP][terraform-provider-google] v2.9 @@ -339,7 +339,7 @@ command. {% else %} [upgrading-to-v3.0]: docs/upgrading_to_v3.0.md {% endif %} -{% if private_cluster or beta_cluster %} +{% if beta_cluster %} [terraform-provider-google-beta]: https://github.com/terraform-providers/terraform-provider-google-beta {% else %} [terraform-provider-google]: https://github.com/terraform-providers/terraform-provider-google diff --git a/autogen/auth.tf b/autogen/auth.tf index 21275cd41e..a23689bb7b 100644 --- a/autogen/auth.tf +++ b/autogen/auth.tf @@ -20,7 +20,7 @@ Retrieve authentication token *****************************************/ data "google_client_config" "default" { - {% if private_cluster or beta_cluster %} + {% if beta_cluster %} provider = google-beta {% else %} provider = google diff --git a/autogen/cluster.tf b/autogen/cluster.tf index f399db4d56..9ae4414a18 100644 --- a/autogen/cluster.tf +++ b/autogen/cluster.tf @@ -20,7 +20,7 @@ Create Container Cluster *****************************************/ resource "google_container_cluster" "primary" { - {% if private_cluster or beta_cluster %} + {% if beta_cluster %} provider = google-beta {% else %} provider = google @@ -220,7 +220,11 @@ resource "google_container_cluster" "primary" { Create Container Cluster node pools *****************************************/ resource "google_container_node_pool" "pools" { + {% if beta_cluster %} provider = google-beta + {% else %} + provider = google + {% endif %} count = length(var.node_pools) name = var.node_pools[count.index]["name"] project = var.project_id @@ -281,6 +285,7 @@ resource "google_container_node_pool" "pools" { "disable-legacy-endpoints" = var.disable_legacy_metadata_endpoints }, ) + {% if beta_cluster %} dynamic "taint" { for_each = concat( var.node_pools_taints["all"], @@ -292,6 +297,7 @@ resource "google_container_node_pool" "pools" { value = taint.value.value } } + {% endif %} tags = concat( ["gke-${var.name}"], ["gke-${var.name}-${var.node_pools[count.index]["name"]}"], diff --git a/autogen/main.tf b/autogen/main.tf index 2e60262e44..c4b070f9a3 100644 --- a/autogen/main.tf +++ b/autogen/main.tf @@ -20,7 +20,7 @@ Get available zones in region *****************************************/ data "google_compute_zones" "available" { - {% if private_cluster or beta_cluster %} + {% if beta_cluster %} provider = google-beta {% else %} provider = google diff --git a/autogen/networks.tf b/autogen/networks.tf index 19a9af5307..88df19bc3b 100644 --- a/autogen/networks.tf +++ b/autogen/networks.tf @@ -17,7 +17,7 @@ {{ autogeneration_note }} data "google_compute_network" "gke_network" { - {% if private_cluster or beta_cluster %} + {% if beta_cluster %} provider = google-beta {% else %} provider = google @@ -28,7 +28,7 @@ data "google_compute_network" "gke_network" { } data "google_compute_subnetwork" "gke_subnetwork" { - {% if private_cluster or beta_cluster %} + {% if beta_cluster %} provider = google-beta {% else %} provider = google diff --git a/autogen/variables.tf b/autogen/variables.tf index 2e809e2f50..16c2955ced 100644 --- a/autogen/variables.tf +++ b/autogen/variables.tf @@ -178,6 +178,7 @@ variable "node_pools_metadata" { } } +{% if beta_cluster %} variable "node_pools_taints" { type = map(list(object({key=string,value=string,effect=string}))) description = "Map of lists containing node taints by node-pool name" @@ -188,6 +189,7 @@ variable "node_pools_taints" { } } +{% endif %} variable "node_pools_tags" { type = map(list(string)) description = "Map of lists containing node network tags by node-pool name" diff --git a/cluster.tf b/cluster.tf index 6ee6edbf52..0f94ddb0e5 100644 --- a/cluster.tf +++ b/cluster.tf @@ -125,7 +125,7 @@ resource "google_container_cluster" "primary" { Create Container Cluster node pools *****************************************/ resource "google_container_node_pool" "pools" { - provider = google-beta + provider = google count = length(var.node_pools) name = var.node_pools[count.index]["name"] project = var.project_id @@ -183,17 +183,6 @@ resource "google_container_node_pool" "pools" { "disable-legacy-endpoints" = var.disable_legacy_metadata_endpoints }, ) - dynamic "taint" { - for_each = concat( - var.node_pools_taints["all"], - var.node_pools_taints[var.node_pools[count.index]["name"]], - ) - content { - effect = taint.value.effect - key = taint.value.key - value = taint.value.value - } - } tags = concat( ["gke-${var.name}"], ["gke-${var.name}-${var.node_pools[count.index]["name"]}"], diff --git a/examples/deploy_service/main.tf b/examples/deploy_service/main.tf index 10bce771ef..3e15164913 100644 --- a/examples/deploy_service/main.tf +++ b/examples/deploy_service/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - provider "kubernetes" { load_config_file = false host = "https://${module.gke.endpoint}" diff --git a/examples/disable_client_cert/main.tf b/examples/disable_client_cert/main.tf index c64f09fd67..221eb994ce 100644 --- a/examples/disable_client_cert/main.tf +++ b/examples/disable_client_cert/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - module "gke" { source = "../../" diff --git a/examples/node_pool/main.tf b/examples/node_pool/main.tf index 2fb447fbb3..6662bb84ac 100644 --- a/examples/node_pool/main.tf +++ b/examples/node_pool/main.tf @@ -18,18 +18,13 @@ locals { cluster_type = "node-pool" } -provider "google" { - version = "~> 2.12.0" - region = var.region -} - provider "google-beta" { version = "~> 2.12.0" region = var.region } module "gke" { - source = "../../" + source = "../../modules/beta-public-cluster/" project_id = var.project_id name = "${local.cluster_type}-cluster${var.cluster_name_suffix}" regional = false diff --git a/examples/shared_vpc/main.tf b/examples/shared_vpc/main.tf index a0221ca360..766239ead8 100644 --- a/examples/shared_vpc/main.tf +++ b/examples/shared_vpc/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - module "gke" { source = "../../" project_id = var.project_id diff --git a/examples/simple_regional/main.tf b/examples/simple_regional/main.tf index bd42f43d1a..4662435fbd 100644 --- a/examples/simple_regional/main.tf +++ b/examples/simple_regional/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - module "gke" { source = "../../" project_id = var.project_id diff --git a/examples/simple_regional_beta/main.tf b/examples/simple_regional_beta/main.tf index 9eaf2b6117..fc95090ede 100644 --- a/examples/simple_regional_beta/main.tf +++ b/examples/simple_regional_beta/main.tf @@ -18,12 +18,6 @@ locals { cluster_type = "simple-regional-beta" } -provider "google" { - version = "~> 2.12.0" - credentials = file(var.credentials_path) - region = var.region -} - provider "google-beta" { version = "~> 2.12.0" credentials = file(var.credentials_path) diff --git a/examples/simple_regional_private/main.tf b/examples/simple_regional_private/main.tf index b79c21c770..89568e86ee 100644 --- a/examples/simple_regional_private/main.tf +++ b/examples/simple_regional_private/main.tf @@ -18,7 +18,7 @@ locals { cluster_type = "simple-regional-private" } -provider "google-beta" { +provider "google" { version = "~> 2.12.0" region = var.region } diff --git a/examples/simple_zonal/main.tf b/examples/simple_zonal/main.tf index 7e04d7e4fe..edd90f7a0d 100644 --- a/examples/simple_zonal/main.tf +++ b/examples/simple_zonal/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - module "gke" { source = "../../" project_id = var.project_id diff --git a/examples/simple_zonal_private/main.tf b/examples/simple_zonal_private/main.tf index 2192787516..428218d76a 100644 --- a/examples/simple_zonal_private/main.tf +++ b/examples/simple_zonal_private/main.tf @@ -18,7 +18,7 @@ locals { cluster_type = "simple-regional-private" } -provider "google-beta" { +provider "google" { version = "~> 2.12.0" region = var.region } diff --git a/examples/stub_domains/main.tf b/examples/stub_domains/main.tf index 4227aac952..37264f781b 100644 --- a/examples/stub_domains/main.tf +++ b/examples/stub_domains/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - module "gke" { source = "../../" project_id = var.project_id diff --git a/examples/stub_domains_private/main.tf b/examples/stub_domains_private/main.tf index 046f9838c0..65bc48247d 100644 --- a/examples/stub_domains_private/main.tf +++ b/examples/stub_domains_private/main.tf @@ -14,7 +14,7 @@ * limitations under the License. */ -provider "google-beta" { +provider "google" { version = "~> 2.12.0" region = var.region } diff --git a/examples/stub_domains_upstream_nameservers/main.tf b/examples/stub_domains_upstream_nameservers/main.tf index 42f3967d5a..0da83b95c6 100644 --- a/examples/stub_domains_upstream_nameservers/main.tf +++ b/examples/stub_domains_upstream_nameservers/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - module "gke" { source = "../../" project_id = var.project_id diff --git a/examples/upstream_nameservers/main.tf b/examples/upstream_nameservers/main.tf index 8a997e8c7a..ecded7c29c 100644 --- a/examples/upstream_nameservers/main.tf +++ b/examples/upstream_nameservers/main.tf @@ -23,11 +23,6 @@ provider "google" { region = var.region } -provider "google-beta" { - version = "~> 2.12.0" - region = var.region -} - module "gke" { source = "../../" project_id = var.project_id diff --git a/modules/private-cluster/README.md b/modules/private-cluster/README.md index d3044b770d..c29d58ee93 100644 --- a/modules/private-cluster/README.md +++ b/modules/private-cluster/README.md @@ -171,7 +171,6 @@ In either case, upgrading to module version `v1.0.0` will trigger a recreation o | node\_pools\_metadata | Map of maps containing node metadata by node-pool name | map(map(string)) | `` | no | | node\_pools\_oauth\_scopes | Map of lists containing node oauth scopes by node-pool name | map(list(string)) | `` | no | | node\_pools\_tags | Map of lists containing node network tags by node-pool name | map(list(string)) | `` | no | -| node\_pools\_taints | Map of lists containing node taints by node-pool name | object | `` | no | | node\_version | The Kubernetes version of the node pools. Defaults kubernetes_version (master) variable and can be overridden for individual node pools by setting the `version` key on them. Must be empyty or set the same as master at cluster creation. | string | `""` | no | | non\_masquerade\_cidrs | List of strings in CIDR notation that specify the IP address ranges that do not use IP masquerading. | list(string) | `` | no | | project\_id | The project ID to host the cluster in (required) | string | n/a | yes | @@ -226,7 +225,7 @@ The [project factory](https://github.com/terraform-google-modules/terraform-goog - [kubectl](https://github.com/kubernetes/kubernetes/releases) 1.9.x #### Terraform and Plugins - [Terraform](https://www.terraform.io/downloads.html) 0.12 -- [Terraform Provider for GCP Beta][terraform-provider-google-beta] v2.9 +- [Terraform Provider for GCP][terraform-provider-google] v2.9 ### Configure a Service Account In order to execute this module you must have a Service Account with the @@ -396,6 +395,6 @@ command. [upgrading-to-v2.0]: ../../docs/upgrading_to_v2.0.md [upgrading-to-v3.0]: ../../docs/upgrading_to_v3.0.md -[terraform-provider-google-beta]: https://github.com/terraform-providers/terraform-provider-google-beta +[terraform-provider-google]: https://github.com/terraform-providers/terraform-provider-google [3.0.0]: https://registry.terraform.io/modules/terraform-google-modules/kubernetes-engine/google/3.0.0 [terraform-0.12-upgrade]: https://www.terraform.io/upgrade-guides/0-12.html diff --git a/modules/private-cluster/auth.tf b/modules/private-cluster/auth.tf index c177eee5a7..48e7cc6a5f 100644 --- a/modules/private-cluster/auth.tf +++ b/modules/private-cluster/auth.tf @@ -20,7 +20,7 @@ Retrieve authentication token *****************************************/ data "google_client_config" "default" { - provider = google-beta + provider = google } /****************************************** diff --git a/modules/private-cluster/cluster.tf b/modules/private-cluster/cluster.tf index b0006553e1..a5bb5da979 100644 --- a/modules/private-cluster/cluster.tf +++ b/modules/private-cluster/cluster.tf @@ -20,7 +20,7 @@ Create Container Cluster *****************************************/ resource "google_container_cluster" "primary" { - provider = google-beta + provider = google name = var.name description = var.description @@ -130,7 +130,7 @@ resource "google_container_cluster" "primary" { Create Container Cluster node pools *****************************************/ resource "google_container_node_pool" "pools" { - provider = google-beta + provider = google count = length(var.node_pools) name = var.node_pools[count.index]["name"] project = var.project_id @@ -188,17 +188,6 @@ resource "google_container_node_pool" "pools" { "disable-legacy-endpoints" = var.disable_legacy_metadata_endpoints }, ) - dynamic "taint" { - for_each = concat( - var.node_pools_taints["all"], - var.node_pools_taints[var.node_pools[count.index]["name"]], - ) - content { - effect = taint.value.effect - key = taint.value.key - value = taint.value.value - } - } tags = concat( ["gke-${var.name}"], ["gke-${var.name}-${var.node_pools[count.index]["name"]}"], diff --git a/modules/private-cluster/main.tf b/modules/private-cluster/main.tf index 9c8dc629eb..bfe746401c 100644 --- a/modules/private-cluster/main.tf +++ b/modules/private-cluster/main.tf @@ -20,7 +20,7 @@ Get available zones in region *****************************************/ data "google_compute_zones" "available" { - provider = google-beta + provider = google project = var.project_id region = var.region diff --git a/modules/private-cluster/networks.tf b/modules/private-cluster/networks.tf index 14ea500e03..a382073dc0 100644 --- a/modules/private-cluster/networks.tf +++ b/modules/private-cluster/networks.tf @@ -17,14 +17,14 @@ // This file was automatically generated from a template in ./autogen data "google_compute_network" "gke_network" { - provider = google-beta + provider = google name = var.network project = local.network_project_id } data "google_compute_subnetwork" "gke_subnetwork" { - provider = google-beta + provider = google name = var.subnetwork region = var.region diff --git a/modules/private-cluster/variables.tf b/modules/private-cluster/variables.tf index 407787f143..8008e08975 100644 --- a/modules/private-cluster/variables.tf +++ b/modules/private-cluster/variables.tf @@ -178,16 +178,6 @@ variable "node_pools_metadata" { } } -variable "node_pools_taints" { - type = map(list(object({ key = string, value = string, effect = string }))) - description = "Map of lists containing node taints by node-pool name" - - default = { - all = [] - default-node-pool = [] - } -} - variable "node_pools_tags" { type = map(list(string)) description = "Map of lists containing node network tags by node-pool name" diff --git a/test/fixtures/simple_regional_private/network.tf b/test/fixtures/simple_regional_private/network.tf index c50c2d12d1..f34f629069 100644 --- a/test/fixtures/simple_regional_private/network.tf +++ b/test/fixtures/simple_regional_private/network.tf @@ -20,10 +20,6 @@ resource "random_string" "suffix" { upper = false } -provider "google-beta" { - project = var.project_id -} - resource "google_compute_network" "main" { project = var.project_id name = "cft-gke-test-${random_string.suffix.result}" diff --git a/test/fixtures/simple_zonal_private/network.tf b/test/fixtures/simple_zonal_private/network.tf index c50c2d12d1..76d33f6bfc 100644 --- a/test/fixtures/simple_zonal_private/network.tf +++ b/test/fixtures/simple_zonal_private/network.tf @@ -20,9 +20,6 @@ resource "random_string" "suffix" { upper = false } -provider "google-beta" { - project = var.project_id -} resource "google_compute_network" "main" { project = var.project_id diff --git a/variables.tf b/variables.tf index d8c339b50e..460bdeaeff 100644 --- a/variables.tf +++ b/variables.tf @@ -178,16 +178,6 @@ variable "node_pools_metadata" { } } -variable "node_pools_taints" { - type = map(list(object({ key = string, value = string, effect = string }))) - description = "Map of lists containing node taints by node-pool name" - - default = { - all = [] - default-node-pool = [] - } -} - variable "node_pools_tags" { type = map(list(string)) description = "Map of lists containing node network tags by node-pool name"