Skip to content

Commit 92cb98b

Browse files
authored
Merge pull request #17229 from flopib/gce-tf-regional-backend-service
Make GCE backend service regional for the Terraform target
2 parents 0fd2d18 + d7ee488 commit 92cb98b

File tree

6 files changed

+87
-85
lines changed

6 files changed

+87
-85
lines changed

tests/integration/update_cluster/minimal_gce_dns-none/kubernetes.tf

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -169,16 +169,6 @@ resource "google_compute_address" "api-us-test1-minimal-gce-example-com" {
169169
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-example-com.name
170170
}
171171

172-
resource "google_compute_backend_service" "api-minimal-gce-example-com" {
173-
backend {
174-
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-example-com.instance_group
175-
}
176-
health_checks = [google_compute_health_check.api-minimal-gce-example-com.id]
177-
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
178-
name = "api-minimal-gce-example-com"
179-
protocol = "TCP"
180-
}
181-
182172
resource "google_compute_disk" "a-etcd-events-minimal-gce-example-com" {
183173
labels = {
184174
"k8s-io-cluster-name" = "minimal-gce-example-com"
@@ -441,7 +431,7 @@ resource "google_compute_firewall" "ssh-external-to-node-minimal-gce-example-com
441431
}
442432

443433
resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-example-com" {
444-
backend_service = google_compute_backend_service.api-minimal-gce-example-com.id
434+
backend_service = google_compute_region_backend_service.api-minimal-gce-example-com.id
445435
ip_address = google_compute_address.api-us-test1-minimal-gce-example-com.address
446436
ip_protocol = "TCP"
447437
labels = {
@@ -456,7 +446,7 @@ resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-example-com"
456446
}
457447

458448
resource "google_compute_forwarding_rule" "kops-controller-us-test1-minimal-gce-example-com" {
459-
backend_service = google_compute_backend_service.api-minimal-gce-example-com.id
449+
backend_service = google_compute_region_backend_service.api-minimal-gce-example-com.id
460450
ip_address = google_compute_address.api-us-test1-minimal-gce-example-com.address
461451
ip_protocol = "TCP"
462452
labels = {
@@ -470,13 +460,6 @@ resource "google_compute_forwarding_rule" "kops-controller-us-test1-minimal-gce-
470460
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-example-com.name
471461
}
472462

473-
resource "google_compute_health_check" "api-minimal-gce-example-com" {
474-
name = "api-minimal-gce-example-com"
475-
tcp_health_check {
476-
port = 443
477-
}
478-
}
479-
480463
resource "google_compute_instance_group_manager" "a-master-us-test1-a-minimal-gce-example-com" {
481464
base_instance_name = "master-us-test1-a"
482465
list_managed_instances_results = "PAGINATED"
@@ -604,6 +587,24 @@ resource "google_compute_network" "minimal-gce-example-com" {
604587
name = "minimal-gce-example-com"
605588
}
606589

590+
resource "google_compute_region_backend_service" "api-minimal-gce-example-com" {
591+
backend {
592+
balancing_mode = "CONNECTION"
593+
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-example-com.instance_group
594+
}
595+
health_checks = [google_compute_region_health_check.api-minimal-gce-example-com.id]
596+
load_balancing_scheme = "INTERNAL"
597+
name = "api-minimal-gce-example-com"
598+
protocol = "TCP"
599+
}
600+
601+
resource "google_compute_region_health_check" "api-minimal-gce-example-com" {
602+
name = "api-minimal-gce-example-com"
603+
tcp_health_check {
604+
port = 443
605+
}
606+
}
607+
607608
resource "google_compute_router" "nat-minimal-gce-example-com" {
608609
name = "nat-minimal-gce-example-com"
609610
network = google_compute_network.minimal-gce-example-com.name

tests/integration/update_cluster/minimal_gce_ilb/kubernetes.tf

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,6 @@ resource "google_compute_address" "api-us-test1-minimal-gce-ilb-example-com" {
177177
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-ilb-example-com.name
178178
}
179179

180-
resource "google_compute_backend_service" "api-minimal-gce-ilb-example-com" {
181-
backend {
182-
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-ilb-example-com.instance_group
183-
}
184-
health_checks = [google_compute_health_check.api-minimal-gce-ilb-example-com.id]
185-
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
186-
name = "api-minimal-gce-ilb-example-com"
187-
protocol = "TCP"
188-
}
189-
190180
resource "google_compute_disk" "a-etcd-events-minimal-gce-ilb-example-com" {
191181
labels = {
192182
"k8s-io-cluster-name" = "minimal-gce-ilb-example-com"
@@ -425,7 +415,7 @@ resource "google_compute_firewall" "ssh-external-to-node-minimal-gce-ilb-example
425415
}
426416

427417
resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-ilb-example-com" {
428-
backend_service = google_compute_backend_service.api-minimal-gce-ilb-example-com.id
418+
backend_service = google_compute_region_backend_service.api-minimal-gce-ilb-example-com.id
429419
ip_address = google_compute_address.api-us-test1-minimal-gce-ilb-example-com.address
430420
ip_protocol = "TCP"
431421
labels = {
@@ -439,13 +429,6 @@ resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-ilb-example-
439429
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-ilb-example-com.name
440430
}
441431

442-
resource "google_compute_health_check" "api-minimal-gce-ilb-example-com" {
443-
name = "api-minimal-gce-ilb-example-com"
444-
tcp_health_check {
445-
port = 443
446-
}
447-
}
448-
449432
resource "google_compute_instance_group_manager" "a-master-us-test1-a-minimal-gce-ilb-example-com" {
450433
base_instance_name = "master-us-test1-a"
451434
list_managed_instances_results = "PAGINATED"
@@ -573,6 +556,24 @@ resource "google_compute_network" "minimal-gce-ilb-example-com" {
573556
name = "minimal-gce-ilb-example-com"
574557
}
575558

559+
resource "google_compute_region_backend_service" "api-minimal-gce-ilb-example-com" {
560+
backend {
561+
balancing_mode = "CONNECTION"
562+
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-ilb-example-com.instance_group
563+
}
564+
health_checks = [google_compute_region_health_check.api-minimal-gce-ilb-example-com.id]
565+
load_balancing_scheme = "INTERNAL"
566+
name = "api-minimal-gce-ilb-example-com"
567+
protocol = "TCP"
568+
}
569+
570+
resource "google_compute_region_health_check" "api-minimal-gce-ilb-example-com" {
571+
name = "api-minimal-gce-ilb-example-com"
572+
tcp_health_check {
573+
port = 443
574+
}
575+
}
576+
576577
resource "google_compute_router" "nat-minimal-gce-ilb-example-com" {
577578
name = "nat-minimal-gce-ilb-example-com"
578579
network = google_compute_network.minimal-gce-ilb-example-com.name

tests/integration/update_cluster/minimal_gce_ilb_longclustername/kubernetes.tf

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,6 @@ resource "google_compute_address" "api-us-test1-minimal-gce-with-a-very-very-ver
177177
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-with-a-very-very-very-very-very-lon-96dqvi.name
178178
}
179179

180-
resource "google_compute_backend_service" "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi" {
181-
backend {
182-
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-with-a-very-very-very-ve-j0fh8f.instance_group
183-
}
184-
health_checks = [google_compute_health_check.api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi.id]
185-
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
186-
name = "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi"
187-
protocol = "TCP"
188-
}
189-
190180
resource "google_compute_disk" "a-etcd-events-minimal-gce-with-a-very-very-very-very-ver-96dqvi" {
191181
labels = {
192182
"k8s-io-cluster-name" = "minimal-gce-with-a-very-very-very-very-very-long-name-example-com"
@@ -425,7 +415,7 @@ resource "google_compute_firewall" "ssh-external-to-node-minimal-gce-with-a-very
425415
}
426416

427417
resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-with-a-very-very-very-very-very-96dqvi" {
428-
backend_service = google_compute_backend_service.api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi.id
418+
backend_service = google_compute_region_backend_service.api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi.id
429419
ip_address = google_compute_address.api-us-test1-minimal-gce-with-a-very-very-very-very-very-96dqvi.address
430420
ip_protocol = "TCP"
431421
labels = {
@@ -439,13 +429,6 @@ resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-with-a-very-
439429
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-with-a-very-very-very-very-very-lon-96dqvi.name
440430
}
441431

442-
resource "google_compute_health_check" "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi" {
443-
name = "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi"
444-
tcp_health_check {
445-
port = 443
446-
}
447-
}
448-
449432
resource "google_compute_instance_group_manager" "a-master-us-test1-a-minimal-gce-with-a-very-very-very-ve-j0fh8f" {
450433
base_instance_name = "master-us-test1-a"
451434
list_managed_instances_results = "PAGINATED"
@@ -573,6 +556,24 @@ resource "google_compute_network" "minimal-gce-with-a-very-very-very-very-very-l
573556
name = "minimal-gce-with-a-very-very-very-very-very-long-name-ex-96dqvi"
574557
}
575558

559+
resource "google_compute_region_backend_service" "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi" {
560+
backend {
561+
balancing_mode = "CONNECTION"
562+
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-with-a-very-very-very-ve-j0fh8f.instance_group
563+
}
564+
health_checks = [google_compute_region_health_check.api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi.id]
565+
load_balancing_scheme = "INTERNAL"
566+
name = "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi"
567+
protocol = "TCP"
568+
}
569+
570+
resource "google_compute_region_health_check" "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi" {
571+
name = "api-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi"
572+
tcp_health_check {
573+
port = 443
574+
}
575+
}
576+
576577
resource "google_compute_router" "nat-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi" {
577578
name = "nat-minimal-gce-with-a-very-very-very-very-very-long-nam-96dqvi"
578579
network = google_compute_network.minimal-gce-with-a-very-very-very-very-very-long-name-ex-96dqvi.name

tests/integration/update_cluster/minimal_gce_plb/kubernetes.tf

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -181,16 +181,6 @@ resource "google_compute_address" "api-us-test1-minimal-gce-plb-example-com" {
181181
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-plb-example-com.name
182182
}
183183

184-
resource "google_compute_backend_service" "api-minimal-gce-plb-example-com" {
185-
backend {
186-
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-plb-example-com.instance_group
187-
}
188-
health_checks = [google_compute_health_check.api-minimal-gce-plb-example-com.id]
189-
load_balancing_scheme = "INTERNAL_SELF_MANAGED"
190-
name = "api-minimal-gce-plb-example-com"
191-
protocol = "TCP"
192-
}
193-
194184
resource "google_compute_disk" "a-etcd-events-minimal-gce-plb-example-com" {
195185
labels = {
196186
"k8s-io-cluster-name" = "minimal-gce-plb-example-com"
@@ -442,7 +432,7 @@ resource "google_compute_forwarding_rule" "api-minimal-gce-plb-example-com" {
442432
}
443433

444434
resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-plb-example-com" {
445-
backend_service = google_compute_backend_service.api-minimal-gce-plb-example-com.id
435+
backend_service = google_compute_region_backend_service.api-minimal-gce-plb-example-com.id
446436
ip_address = google_compute_address.api-us-test1-minimal-gce-plb-example-com.address
447437
ip_protocol = "TCP"
448438
labels = {
@@ -456,13 +446,6 @@ resource "google_compute_forwarding_rule" "api-us-test1-minimal-gce-plb-example-
456446
subnetwork = google_compute_subnetwork.us-test1-minimal-gce-plb-example-com.name
457447
}
458448

459-
resource "google_compute_health_check" "api-minimal-gce-plb-example-com" {
460-
name = "api-minimal-gce-plb-example-com"
461-
tcp_health_check {
462-
port = 443
463-
}
464-
}
465-
466449
resource "google_compute_http_health_check" "api-minimal-gce-plb-example-com" {
467450
name = "api-minimal-gce-plb-example-com"
468451
port = 3990
@@ -597,6 +580,24 @@ resource "google_compute_network" "minimal-gce-plb-example-com" {
597580
name = "minimal-gce-plb-example-com"
598581
}
599582

583+
resource "google_compute_region_backend_service" "api-minimal-gce-plb-example-com" {
584+
backend {
585+
balancing_mode = "CONNECTION"
586+
group = google_compute_instance_group_manager.a-master-us-test1-a-minimal-gce-plb-example-com.instance_group
587+
}
588+
health_checks = [google_compute_region_health_check.api-minimal-gce-plb-example-com.id]
589+
load_balancing_scheme = "INTERNAL"
590+
name = "api-minimal-gce-plb-example-com"
591+
protocol = "TCP"
592+
}
593+
594+
resource "google_compute_region_health_check" "api-minimal-gce-plb-example-com" {
595+
name = "api-minimal-gce-plb-example-com"
596+
tcp_health_check {
597+
port = 443
598+
}
599+
}
600+
600601
resource "google_compute_router" "nat-minimal-gce-plb-example-com" {
601602
name = "nat-minimal-gce-plb-example-com"
602603
network = google_compute_network.minimal-gce-plb-example-com.name

upup/pkg/fi/cloudup/gcetasks/backend_service.go

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,8 @@ func (a *BackendService) URL(cloud gce.GCECloud) string {
149149
}
150150

151151
type terraformBackend struct {
152-
Group *terraformWriter.Literal `cty:"group"`
152+
BalancingMode *terraformWriter.Literal `cty:"balancing_mode"`
153+
Group *terraformWriter.Literal `cty:"group"`
153154
}
154155

155156
type terraformBackendService struct {
@@ -166,30 +167,27 @@ func (_ *BackendService) RenderTerraform(t *terraform.TerraformTarget, a, e, cha
166167
LoadBalancingScheme: e.LoadBalancingScheme,
167168
Protocol: e.Protocol,
168169
}
169-
// Terraform has a different name for this scheme:
170-
if tf.LoadBalancingScheme != nil && *tf.LoadBalancingScheme == "INTERNAL" {
171-
sm := "INTERNAL_SELF_MANAGED"
172-
tf.LoadBalancingScheme = &sm
173-
}
170+
174171
var igms []terraformBackend
175172
for _, ig := range e.InstanceGroupManagers {
176173
igms = append(igms, terraformBackend{
177-
Group: terraformWriter.LiteralProperty("google_compute_instance_group_manager", *ig.Name, "instance_group"),
174+
BalancingMode: terraformWriter.LiteralFromStringValue("CONNECTION"),
175+
Group: terraformWriter.LiteralProperty("google_compute_instance_group_manager", *ig.Name, "instance_group"),
178176
})
179177
}
180178
tf.Backend = igms
181179

182180
var hcs []*terraformWriter.Literal
183181
for _, hc := range e.HealthChecks {
184-
hcs = append(hcs, terraformWriter.LiteralProperty("google_compute_health_check", *hc.Name, "id"))
182+
hcs = append(hcs, terraformWriter.LiteralProperty("google_compute_region_health_check", *hc.Name, "id"))
185183
}
186184
tf.HealthChecks = hcs
187185

188-
return t.RenderResource("google_compute_backend_service", *e.Name, tf)
186+
return t.RenderResource("google_compute_region_backend_service", *e.Name, tf)
189187
}
190188

191189
func (e *BackendService) TerraformAddress() *terraformWriter.Literal {
192190
name := fi.ValueOf(e.Name)
193191

194-
return terraformWriter.LiteralProperty("google_compute_backend_service", name, "id")
192+
return terraformWriter.LiteralProperty("google_compute_region_backend_service", name, "id")
195193
}

upup/pkg/fi/cloudup/gcetasks/healthcheck.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,9 +141,9 @@ func (_ *HealthCheck) RenderTerraform(t *terraform.TerraformTarget, a, e, change
141141
Port: e.Port,
142142
},
143143
}
144-
return t.RenderResource("google_compute_health_check", *e.Name, tf)
144+
return t.RenderResource("google_compute_region_health_check", *e.Name, tf)
145145
}
146146

147147
func (e *HealthCheck) TerraformAddress() *terraformWriter.Literal {
148-
return terraformWriter.LiteralProperty("google_compute_health_check", *e.Name, "id")
148+
return terraformWriter.LiteralProperty("google_compute_region_health_check", *e.Name, "id")
149149
}

0 commit comments

Comments
 (0)