From ddc0879e6dff2a39898c70dbf40e0616fecb91f9 Mon Sep 17 00:00:00 2001 From: Christian van der Leeden Date: Fri, 13 Dec 2019 13:33:25 +0100 Subject: [PATCH] some resources upgraded to google provider 3.0 --- .../update_cluster/ha_gce/kubernetes.tf | 54 +++++++++++++------ .../cloudup/gcetasks/instancegroupmanager.go | 10 +++- .../fi/cloudup/gcetasks/instancetemplate.go | 5 +- 3 files changed, 49 insertions(+), 20 deletions(-) diff --git a/tests/integration/update_cluster/ha_gce/kubernetes.tf b/tests/integration/update_cluster/ha_gce/kubernetes.tf index 1ba128d7e17ae..0dde8c77a69dc 100644 --- a/tests/integration/update_cluster/ha_gce/kubernetes.tf +++ b/tests/integration/update_cluster/ha_gce/kubernetes.tf @@ -324,48 +324,72 @@ resource "google_compute_instance_group_manager" "a-master-us-test1-a-ha-gce-exa name = "a-master-us-test1-a-ha-gce-example-com" zone = "us-test1-a" base_instance_name = "master-us-test1-a" - instance_template = "${google_compute_instance_template.master-us-test1-a-ha-gce-example-com.self_link}" - target_size = 1 + + version = { + instance_template = "${google_compute_instance_template.master-us-test1-a-ha-gce-example-com.self_link}" + } + + target_size = 1 } resource "google_compute_instance_group_manager" "a-nodes-ha-gce-example-com" { name = "a-nodes-ha-gce-example-com" zone = "us-test1-a" base_instance_name = "nodes" - instance_template = "${google_compute_instance_template.nodes-ha-gce-example-com.self_link}" - target_size = 1 + + version = { + instance_template = "${google_compute_instance_template.nodes-ha-gce-example-com.self_link}" + } + + target_size = 1 } resource "google_compute_instance_group_manager" "b-master-us-test1-b-ha-gce-example-com" { name = "b-master-us-test1-b-ha-gce-example-com" zone = "us-test1-b" base_instance_name = "master-us-test1-b" - instance_template = "${google_compute_instance_template.master-us-test1-b-ha-gce-example-com.self_link}" - target_size = 1 + + version = { + instance_template = "${google_compute_instance_template.master-us-test1-b-ha-gce-example-com.self_link}" + } + + target_size = 1 } resource "google_compute_instance_group_manager" "b-nodes-ha-gce-example-com" { name = "b-nodes-ha-gce-example-com" zone = "us-test1-b" base_instance_name = "nodes" - instance_template = "${google_compute_instance_template.nodes-ha-gce-example-com.self_link}" - target_size = 1 + + version = { + instance_template = "${google_compute_instance_template.nodes-ha-gce-example-com.self_link}" + } + + target_size = 1 } resource "google_compute_instance_group_manager" "c-master-us-test1-c-ha-gce-example-com" { name = "c-master-us-test1-c-ha-gce-example-com" zone = "us-test1-c" base_instance_name = "master-us-test1-c" - instance_template = "${google_compute_instance_template.master-us-test1-c-ha-gce-example-com.self_link}" - target_size = 1 + + version = { + instance_template = "${google_compute_instance_template.master-us-test1-c-ha-gce-example-com.self_link}" + } + + target_size = 1 } resource "google_compute_instance_group_manager" "c-nodes-ha-gce-example-com" { name = "c-nodes-ha-gce-example-com" zone = "us-test1-c" base_instance_name = "nodes" - instance_template = "${google_compute_instance_template.nodes-ha-gce-example-com.self_link}" - target_size = 0 + + version = { + instance_template = "${google_compute_instance_template.nodes-ha-gce-example-com.self_link}" + } + + target_size = 0 } resource "google_compute_instance_template" "master-us-test1-a-ha-gce-example-com" { @@ -406,7 +430,7 @@ resource "google_compute_instance_template" "master-us-test1-a-ha-gce-example-co } tags = ["ha-gce-example-com-k8s-io-role-master"] - name_prefix = "master-us-test1-a-ha-gce-example-com-" + name_prefix = "master-us-test1-a-ha-gce--ke5ah6-" } resource "google_compute_instance_template" "master-us-test1-b-ha-gce-example-com" { @@ -447,7 +471,7 @@ resource "google_compute_instance_template" "master-us-test1-b-ha-gce-example-co } tags = ["ha-gce-example-com-k8s-io-role-master"] - name_prefix = "master-us-test1-b-ha-gce-example-com-" + name_prefix = "master-us-test1-b-ha-gce--c8u7qq-" } resource "google_compute_instance_template" "master-us-test1-c-ha-gce-example-com" { @@ -488,7 +512,7 @@ resource "google_compute_instance_template" "master-us-test1-c-ha-gce-example-co } tags = ["ha-gce-example-com-k8s-io-role-master"] - name_prefix = "master-us-test1-c-ha-gce-example-com-" + name_prefix = "master-us-test1-c-ha-gce--3unp7l-" } resource "google_compute_instance_template" "nodes-ha-gce-example-com" { diff --git a/upup/pkg/fi/cloudup/gcetasks/instancegroupmanager.go b/upup/pkg/fi/cloudup/gcetasks/instancegroupmanager.go index 7523d2899ded4..65c255f6c9727 100644 --- a/upup/pkg/fi/cloudup/gcetasks/instancegroupmanager.go +++ b/upup/pkg/fi/cloudup/gcetasks/instancegroupmanager.go @@ -182,19 +182,25 @@ type terraformInstanceGroupManager struct { Name *string `json:"name"` Zone *string `json:"zone"` BaseInstanceName *string `json:"base_instance_name"` - InstanceTemplate *terraform.Literal `json:"instance_template"` + Version *terraformVersion `json:"version"` TargetSize *int64 `json:"target_size"` TargetPools []*terraform.Literal `json:"target_pools,omitempty"` } +type terraformVersion struct { + InstanceTemplate *terraform.Literal `json:"instance_template"` +} + func (_ *InstanceGroupManager) RenderTerraform(t *terraform.TerraformTarget, a, e, changes *InstanceGroupManager) error { tf := &terraformInstanceGroupManager{ Name: e.Name, Zone: e.Zone, BaseInstanceName: e.BaseInstanceName, - InstanceTemplate: e.InstanceTemplate.TerraformLink(), TargetSize: e.TargetSize, } + tf.Version = &terraformVersion{ + InstanceTemplate: e.InstanceTemplate.TerraformLink(), + } for _, targetPool := range e.TargetPools { tf.TargetPools = append(tf.TargetPools, targetPool.TerraformLink()) diff --git a/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go b/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go index 257d347ea4a0d..934af39e48a53 100644 --- a/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go +++ b/upup/pkg/fi/cloudup/gcetasks/instancetemplate.go @@ -32,9 +32,8 @@ import ( "k8s.io/kops/upup/pkg/fi/cloudup/terraform" ) -// InstanceTemplateNamePrefixMaxLength is the max length for the NamePrefix of an InstanceTemplate -// 52 = 63 - 10 - 1; 63 is the GCE limit; 10 is the length of seconds since epoch; and one for the dash -const InstanceTemplateNamePrefixMaxLength = 63 - 10 - 1 +// terraform 0.12 with google cloud provider 3.2 will complain if the length of the name_prefix is more than 32 +const InstanceTemplateNamePrefixMaxLength = 32 // InstanceTemplate represents a GCE InstanceTemplate //go:generate fitask -type=InstanceTemplate