Skip to content

Commit 794da61

Browse files
authored
feat: Update modules to use new kubectl module (terraform-google-modules#602)
BREAKING CHANGE: In-cluster resources have been updated to use the [kubectl wrapper](https://github.com/terraform-google-modules/terraform-google-gcloud/tree/master/modules/kubectl-wrapper) module. See the upgrade guide for details.
1 parent 4d33759 commit 794da61

File tree

20 files changed

+180
-251
lines changed

20 files changed

+180
-251
lines changed

autogen/main/dns.tf.tmpl

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@
2020
Delete default kube-dns configmap
2121
*****************************************/
2222
module "gcloud_delete_default_kube_dns_configmap" {
23-
source = "terraform-google-modules/gcloud/google"
24-
version = "~> 1.3.0"
25-
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
26-
additional_components = ["kubectl"]
27-
28-
upgrade = var.gcloud_upgrade
29-
skip_download = var.gcloud_skip_download
30-
31-
create_cmd_entrypoint = "${path.module}/scripts/kubectl_wrapper.sh"
32-
create_cmd_body = "https://${local.cluster_endpoint} ${data.google_client_config.default.access_token} ${local.cluster_ca_certificate} ${path.module}/scripts/delete-default-resource.sh kube-system configmap kube-dns"
23+
source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
24+
version = "~> 1.4"
25+
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
26+
cluster_name = google_container_cluster.primary.name
27+
cluster_location = google_container_cluster.primary.location
28+
project_id = var.project_id
29+
upgrade = var.gcloud_upgrade
30+
skip_download = var.gcloud_skip_download
31+
32+
33+
kubectl_create_command = "${path.module}/scripts/delete-default-resource.sh kube-system configmap kube-dns"
34+
kubectl_destroy_command = ""
3335

3436
module_depends_on = concat(
3537
[data.google_client_config.default.access_token],

dns.tf

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@
2020
Delete default kube-dns configmap
2121
*****************************************/
2222
module "gcloud_delete_default_kube_dns_configmap" {
23-
source = "terraform-google-modules/gcloud/google"
24-
version = "~> 1.3.0"
25-
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
26-
additional_components = ["kubectl"]
27-
28-
upgrade = var.gcloud_upgrade
29-
skip_download = var.gcloud_skip_download
30-
31-
create_cmd_entrypoint = "${path.module}/scripts/kubectl_wrapper.sh"
32-
create_cmd_body = "https://${local.cluster_endpoint} ${data.google_client_config.default.access_token} ${local.cluster_ca_certificate} ${path.module}/scripts/delete-default-resource.sh kube-system configmap kube-dns"
23+
source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
24+
version = "~> 1.4"
25+
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
26+
cluster_name = google_container_cluster.primary.name
27+
cluster_location = google_container_cluster.primary.location
28+
project_id = var.project_id
29+
upgrade = var.gcloud_upgrade
30+
skip_download = var.gcloud_skip_download
31+
32+
33+
kubectl_create_command = "${path.module}/scripts/delete-default-resource.sh kube-system configmap kube-dns"
34+
kubectl_destroy_command = ""
3335

3436
module_depends_on = concat(
3537
[data.google_client_config.default.access_token],

examples/simple_zonal_with_asm/main.tf

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,11 @@ module "gke" {
5454
}
5555

5656
module "asm" {
57-
source = "../../modules/asm"
58-
cluster_name = module.gke.name
59-
cluster_endpoint = module.gke.endpoint
60-
project_id = var.project_id
61-
location = module.gke.location
62-
use_tf_google_credentials_env_var = true
57+
source = "../../modules/asm"
58+
cluster_name = module.gke.name
59+
cluster_endpoint = module.gke.endpoint
60+
project_id = var.project_id
61+
location = module.gke.location
6362
}
6463

6564
data "google_client_config" "default" {

modules/acm/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ By default, this module will attempt to download the ACM operator from Google di
5454
| policy\_dir | Subfolder containing configs in ACM Git repo. If un-set, uses Config Management default. | string | `""` | no |
5555
| project\_id | GCP project_id used to reach cluster. | string | n/a | yes |
5656
| secret\_type | git authentication secret type, is passed through to ConfigManagement spec.git.secretType. Overriden to value 'ssh' if `create_ssh_key` is true | string | `"ssh"` | no |
57-
| skip\_gcloud\_download | Whether to skip downloading gcloud (assumes gcloud and kubectl already available outside the module) | bool | `"false"` | no |
57+
| skip\_gcloud\_download | Whether to skip downloading gcloud (assumes gcloud and kubectl already available outside the module) | bool | `"true"` | no |
5858
| ssh\_auth\_key | Key for Git authentication. Overrides 'create_ssh_key' variable. Can be set using 'file(path/to/file)'-function. | string | `"null"` | no |
5959
| sync\_branch | ACM repo Git branch. If un-set, uses Config Management default. | string | `""` | no |
6060
| sync\_repo | ACM Git repo address | string | n/a | yes |

modules/acm/variables.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,5 +90,5 @@ variable "install_template_library" {
9090
variable "skip_gcloud_download" {
9191
description = "Whether to skip downloading gcloud (assumes gcloud and kubectl already available outside the module)"
9292
type = bool
93-
default = false
93+
default = true
9494
}

modules/asm/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ To deploy this config:
4646
| gcloud\_sdk\_version | The gcloud sdk version to use. Minimum required version is 293.0.0 | string | `"296.0.1"` | no |
4747
| gke\_hub\_membership\_name | Memebership name that uniquely represents the cluster being registered on the Hub | string | `"gke-asm-membership"` | no |
4848
| gke\_hub\_sa\_name | Name for the GKE Hub SA stored as a secret `creds-gcp` in the `gke-connect` namespace. | string | `"gke-hub-sa"` | no |
49+
| internal\_ip | Use internal ip for the cluster endpoint. | bool | `"false"` | no |
4950
| location | The location (zone or region) this cluster has been created in. | string | n/a | yes |
5051
| project\_id | The project in which the resource belongs. | string | n/a | yes |
5152
| skip\_gcloud\_download | Whether to skip downloading gcloud (assumes gcloud and kubectl already available outside the module) | bool | `"true"` | no |
52-
| use\_tf\_google\_credentials\_env\_var | Optional GOOGLE_CREDENTIALS environment variable to be activated. | bool | `"false"` | no |
5353

5454
<!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK -->

modules/asm/main.tf

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,22 @@ locals {
1818
gke_hub_sa_key = var.enable_gke_hub_registration ? google_service_account_key.gke_hub_key[0].private_key : ""
1919
}
2020

21-
data "google_container_cluster" "primary" {
22-
name = var.cluster_name
23-
project = var.project_id
24-
location = var.location
25-
}
26-
27-
data "google_client_config" "default" {
28-
}
29-
3021
module "asm_install" {
31-
source = "terraform-google-modules/gcloud/google"
32-
version = "~> 1.0"
22+
source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
23+
version = "~> 1.4"
3324
module_depends_on = [var.cluster_endpoint]
3425

35-
platform = "linux"
36-
gcloud_sdk_version = var.gcloud_sdk_version
37-
skip_download = var.skip_gcloud_download
38-
upgrade = true
39-
use_tf_google_credentials_env_var = var.use_tf_google_credentials_env_var
40-
additional_components = ["kubectl", "kpt"]
26+
gcloud_sdk_version = var.gcloud_sdk_version
27+
skip_download = var.skip_gcloud_download
28+
upgrade = true
29+
additional_components = ["kubectl", "kpt", "beta", "kustomize"]
30+
cluster_name = var.cluster_name
31+
cluster_location = var.location
32+
project_id = var.project_id
33+
4134

42-
create_cmd_entrypoint = "${path.module}/scripts/install_asm.sh"
43-
create_cmd_body = "${var.project_id} ${var.cluster_name} ${var.location}"
44-
destroy_cmd_entrypoint = "${path.module}/scripts/kubectl_wrapper.sh"
45-
destroy_cmd_body = "https://${var.cluster_endpoint} ${data.google_client_config.default.access_token} ${data.google_container_cluster.primary.master_auth.0.cluster_ca_certificate} kubectl delete ns istio-system"
35+
kubectl_create_command = "${path.module}/scripts/install_asm.sh ${var.project_id} ${var.cluster_name} ${var.location}"
36+
kubectl_destroy_command = "kubectl delete ns istio-system"
4637
}
4738

4839
resource "google_service_account" "gke_hub_sa" {
@@ -66,15 +57,14 @@ resource "google_service_account_key" "gke_hub_key" {
6657

6758
module "gke_hub_registration" {
6859
source = "terraform-google-modules/gcloud/google"
69-
version = "~> 1.0"
60+
version = "~> 1.2"
7061

71-
platform = "linux"
72-
gcloud_sdk_version = var.gcloud_sdk_version
73-
skip_download = var.skip_gcloud_download
74-
upgrade = true
75-
enabled = var.enable_gke_hub_registration
76-
use_tf_google_credentials_env_var = var.use_tf_google_credentials_env_var
77-
module_depends_on = [module.asm_install.wait]
62+
platform = "linux"
63+
gcloud_sdk_version = var.gcloud_sdk_version
64+
skip_download = var.skip_gcloud_download
65+
upgrade = true
66+
enabled = var.enable_gke_hub_registration
67+
module_depends_on = [module.asm_install.wait]
7868

7969
create_cmd_entrypoint = "${path.module}/scripts/gke_hub_registration.sh"
8070
create_cmd_body = "${var.gke_hub_membership_name} ${var.location} ${var.cluster_name} ${local.gke_hub_sa_key}"

modules/asm/scripts/kubectl_wrapper.sh

Lines changed: 0 additions & 53 deletions
This file was deleted.

modules/asm/variables.tf

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,6 @@ variable "skip_gcloud_download" {
4040
default = true
4141
}
4242

43-
variable "use_tf_google_credentials_env_var" {
44-
description = "Optional GOOGLE_CREDENTIALS environment variable to be activated."
45-
type = bool
46-
default = false
47-
}
48-
4943
variable "gcloud_sdk_version" {
5044
description = "The gcloud sdk version to use. Minimum required version is 293.0.0"
5145
type = string
@@ -69,3 +63,9 @@ variable "gke_hub_membership_name" {
6963
type = string
7064
default = "gke-asm-membership"
7165
}
66+
67+
variable "internal_ip" {
68+
description = "Use internal ip for the cluster endpoint."
69+
type = bool
70+
default = false
71+
}

modules/beta-private-cluster-update-variant/dns.tf

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,18 @@
2020
Delete default kube-dns configmap
2121
*****************************************/
2222
module "gcloud_delete_default_kube_dns_configmap" {
23-
source = "terraform-google-modules/gcloud/google"
24-
version = "~> 1.3.0"
25-
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
26-
additional_components = ["kubectl"]
27-
28-
upgrade = var.gcloud_upgrade
29-
skip_download = var.gcloud_skip_download
30-
31-
create_cmd_entrypoint = "${path.module}/scripts/kubectl_wrapper.sh"
32-
create_cmd_body = "https://${local.cluster_endpoint} ${data.google_client_config.default.access_token} ${local.cluster_ca_certificate} ${path.module}/scripts/delete-default-resource.sh kube-system configmap kube-dns"
23+
source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
24+
version = "~> 1.4"
25+
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
26+
cluster_name = google_container_cluster.primary.name
27+
cluster_location = google_container_cluster.primary.location
28+
project_id = var.project_id
29+
upgrade = var.gcloud_upgrade
30+
skip_download = var.gcloud_skip_download
31+
32+
33+
kubectl_create_command = "${path.module}/scripts/delete-default-resource.sh kube-system configmap kube-dns"
34+
kubectl_destroy_command = ""
3335

3436
module_depends_on = concat(
3537
[data.google_client_config.default.access_token],

0 commit comments

Comments
 (0)