From a7c3c9f0d504ad2f2a74fdd380ef3ac63fd7d8fe Mon Sep 17 00:00:00 2001 From: Jing Xu Date: Tue, 7 Jul 2020 12:15:11 -0700 Subject: [PATCH] Fix ListZonesInRegion() after client BasePath change This path fixes region Regex for listing zones. Compute client BasePath changed to compute.googleapis.com, but resource URI were left as www.googleapis.com --- staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go index 4c5a6d0df6a..bf620eda72c 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_zones.go @@ -20,6 +20,7 @@ package gce import ( "context" + "fmt" "strings" compute "google.golang.org/api/compute/v1" @@ -79,7 +80,9 @@ func (g *Cloud) ListZonesInRegion(region string) ([]*compute.Zone, error) { defer cancel() mc := newZonesMetricContext("list", region) - list, err := g.c.Zones().List(ctx, filter.Regexp("region", g.getRegionLink(region))) + // Use regex match instead of an exact regional link constructed from getRegionalLink below. + // See comments in issue kubernetes/kubernetes#87905 + list, err := g.c.Zones().List(ctx, filter.Regexp("region", fmt.Sprintf(".*/regions/%s", region))) if err != nil { return nil, mc.Observe(err) }