-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Update modules to use new kubectl module #602
Conversation
Thanks for the PR! 🚀
Running terraform fmt
modules/beta-private-cluster/dns.tf
--- old/modules/beta-private-cluster/dns.tf
+++ new/modules/beta-private-cluster/dns.tf
@@ -20,8 +20,8 @@
Delete default kube-dns configmap
*****************************************/
module "gcloud_delete_default_kube_dns_configmap" {
- source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
- version = "~> 1.4"
+ source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
+ version = "~> 1.4"
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
cluster_name = google_container_cluster.primary.name
cluster_location = google_container_cluster.primary.location
Error: terraform fmt failed with exit code 3
Check the output for diffs and correct using terraform fmt <dir>
modules/private-cluster/dns.tf
--- old/modules/private-cluster/dns.tf
+++ new/modules/private-cluster/dns.tf
@@ -20,8 +20,8 @@
Delete default kube-dns configmap
*****************************************/
module "gcloud_delete_default_kube_dns_configmap" {
- source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
- version = "~> 1.4"
+ source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
+ version = "~> 1.4"
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
cluster_name = google_container_cluster.primary.name
cluster_location = google_container_cluster.primary.location
Error: terraform fmt failed with exit code 3
Check the output for diffs and correct using terraform fmt <dir>
modules/beta-public-cluster/dns.tf
--- old/modules/beta-public-cluster/dns.tf
+++ new/modules/beta-public-cluster/dns.tf
@@ -20,8 +20,8 @@
Delete default kube-dns configmap
*****************************************/
module "gcloud_delete_default_kube_dns_configmap" {
- source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
- version = "~> 1.4"
+ source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
+ version = "~> 1.4"
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
cluster_name = google_container_cluster.primary.name
cluster_location = google_container_cluster.primary.location
Error: terraform fmt failed with exit code 3
Check the output for diffs and correct using terraform fmt <dir>
modules/beta-public-cluster-update-variant/dns.tf
--- old/modules/beta-public-cluster-update-variant/dns.tf
+++ new/modules/beta-public-cluster-update-variant/dns.tf
@@ -20,8 +20,8 @@
Delete default kube-dns configmap
*****************************************/
module "gcloud_delete_default_kube_dns_configmap" {
- source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
- version = "~> 1.4"
+ source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
+ version = "~> 1.4"
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
cluster_name = google_container_cluster.primary.name
cluster_location = google_container_cluster.primary.location
Error: terraform fmt failed with exit code 3
Check the output for diffs and correct using terraform fmt <dir>
modules/private-cluster-update-variant/dns.tf
--- old/modules/private-cluster-update-variant/dns.tf
+++ new/modules/private-cluster-update-variant/dns.tf
@@ -20,8 +20,8 @@
Delete default kube-dns configmap
*****************************************/
module "gcloud_delete_default_kube_dns_configmap" {
- source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
- version = "~> 1.4"
+ source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
+ version = "~> 1.4"
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
cluster_name = google_container_cluster.primary.name
cluster_location = google_container_cluster.primary.location
Error: terraform fmt failed with exit code 3
Check the output for diffs and correct using terraform fmt <dir>
modules/beta-private-cluster-update-variant/dns.tf
--- old/modules/beta-private-cluster-update-variant/dns.tf
+++ new/modules/beta-private-cluster-update-variant/dns.tf
@@ -20,8 +20,8 @@
Delete default kube-dns configmap
*****************************************/
module "gcloud_delete_default_kube_dns_configmap" {
- source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
- version = "~> 1.4"
+ source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
+ version = "~> 1.4"
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
cluster_name = google_container_cluster.primary.name
cluster_location = google_container_cluster.primary.location
Error: terraform fmt failed with exit code 3
Check the output for diffs and correct using terraform fmt <dir>
dns.tf
--- old/dns.tf
+++ new/dns.tf
@@ -20,8 +20,8 @@
Delete default kube-dns configmap
*****************************************/
module "gcloud_delete_default_kube_dns_configmap" {
- source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
- version = "~> 1.4"
+ source = "terraform-google-modules/gcloud/google//modules/kubectl-wrapper"
+ version = "~> 1.4"
enabled = (local.custom_kube_dns_config || local.upstream_nameservers_config) && ! var.skip_provisioners
cluster_name = google_container_cluster.primary.name
cluster_location = google_container_cluster.primary.location
Error: terraform fmt failed with exit code 3
Check the output for diffs and correct using terraform fmt <dir> |
@bharathkkb Looks like the comment bot isn't updating? |
@morgante its actually a bug. The comment bot doesn't seem to ignore the autogen folder and tries to fmt. I will look into this. |
Ok thanks for looking into it. |
add beta add kustomize test latest gcloud fix for binaries pin gcloud module to >= 1.2 build all transition to kubectl module fix dependecy crd module pin versions
e4f79f5
to
639ecb2
Compare
@morgante this should be ready for review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought you were updating to use https://github.com/terraform-google-modules/terraform-google-gcloud/tree/master/modules/kubectl-wrapper?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you had a chance to test this with existing deployments/clusters? What does the plan look like and does it work?
@morgante will update once I test, but all these already had a permadiff in every plan due to token refresh.
|
@bharathkkb You mean they have a permadiff on master or just this branch? |
@morgante permadiff on master due to new for instance with # module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.null_resource.additional_components[0] must be replaced
-/+ resource "null_resource" "additional_components" {
~ id = "4447235248369243877" -> (known after apply)
~ triggers = { # forces replacement
"additional_components_command" = ".terraform/modules/example.gke.gcloud_delete_default_kube_dns_configmap/terraform-google-gcloud-1.3.0/scripts/check_components.sh gcloud kubectl"
~ "arguments" = "9f79c50b614be193be9fffe2e3188ca6" -> "c78e810c7855c28edf0ccb2d2e764095"
"md5" = "48135f08d58ee02069d9787f607b6904"
}
}
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.null_resource.run_command[0] must be replaced
-/+ resource "null_resource" "run_command" {
~ id = "1402122050957459867" -> (known after apply)
~ triggers = { # forces replacement
~ "arguments" = "9f79c50b614be193be9fffe2e3188ca6" -> "c78e810c7855c28edf0ccb2d2e764095"
~ "create_cmd_body" = "https://123.123.123.123 OLD_TOKEN../../../scripts/delete-default-resource.sh kube-system configmap kube-dns" -> "https://123.123.123.123 ya29.c.NEW_TOKEN../../../scripts/delete-default-resource.sh kube-system configmap kube-dns"
"create_cmd_entrypoint" = "../../../scripts/kubectl_wrapper.sh"
"destroy_cmd_body" = "info"
"destroy_cmd_entrypoint" = "gcloud"
"gcloud_bin_abs_path" = "/google-cloud-sdk/bin"
"md5" = "48135f08d58ee02069d9787f607b6904"
}
}
|
@bharathkkb Thanks. Can you test what the upgrade path is too? |
@morgante i have tested upgrading some of our examples and documented findings below. I have also confirmed that with this implementation the permadiff issue has been resolved.
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.null_resource.additional_components[0] will be destroyed
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.null_resource.additional_components_destroy[0] will be destroyed
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.null_resource.module_depends_on[0] will be destroyed
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.null_resource.run_command[0] will be destroyed
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.additional_components[0] will be created
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.additional_components_destroy[0] will be created
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.module_depends_on[0] will be created
# module.example.module.gke.module.gcloud_delete_default_kube_dns_configmap.module.gcloud_kubectl.null_resource.run_command[0] will be created
# module.example.module.asm.module.asm_install.null_resource.additional_components[0] will be destroyed
# module.example.module.asm.module.asm_install.null_resource.additional_components_destroy[0] will be destroyed
# module.example.module.asm.module.asm_install.null_resource.gcloud_auth_google_credentials[0] will be destroyed
# module.example.module.asm.module.asm_install.null_resource.gcloud_auth_google_credentials_destroy[0] will be destroyed
# module.example.module.asm.module.asm_install.null_resource.module_depends_on[0] will be destroyed
# module.example.module.asm.module.asm_install.null_resource.run_command[0] will be destroyed
# module.example.module.asm.module.gke_hub_registration.null_resource.gcloud_auth_google_credentials[0] will be destroyed
# module.example.module.asm.module.gke_hub_registration.null_resource.gcloud_auth_google_credentials_destroy[0] will be destroyed
# module.example.module.asm.module.gke_hub_registration.null_resource.run_command[0] must be replaced
-/+ resource "null_resource" "run_command" {
# module.example.module.asm.module.asm_install.module.gcloud_kubectl.null_resource.additional_components[0] will be created
# module.example.module.asm.module.asm_install.module.gcloud_kubectl.null_resource.additional_components_destroy[0] will be created
# module.example.module.asm.module.asm_install.module.gcloud_kubectl.null_resource.module_depends_on[0] will be created
# module.example.module.asm.module.asm_install.module.gcloud_kubectl.null_resource.run_command[0] will be created |
An update for the |
@bharathkkb Thanks for investigating. Do you think these changes merit a major release? |
@morgante yeah I believe so because
|
@bharathkkb Sounds good, can you start a small upgrade guide (in separate PR). It should also cover the commands needed to recover/force delete if gcloud has issues. |
…les#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.
fixes #604
Use kubectl module instead of gcloud wherever possible
default ACM/ConfigSync modules to
skip_gcloud_download=true
TODO