diff --git a/pkg/cloudprovider/providers/gce/BUILD b/pkg/cloudprovider/providers/gce/BUILD index 038d2f8b6ba..30d47605797 100644 --- a/pkg/cloudprovider/providers/gce/BUILD +++ b/pkg/cloudprovider/providers/gce/BUILD @@ -56,6 +56,7 @@ go_library( "//vendor/golang.org/x/oauth2:go_default_library", "//vendor/golang.org/x/oauth2/google:go_default_library", "//vendor/google.golang.org/api/cloudkms/v1:go_default_library", + "//vendor/google.golang.org/api/compute/v0.alpha:go_default_library", "//vendor/google.golang.org/api/compute/v0.beta:go_default_library", "//vendor/google.golang.org/api/compute/v1:go_default_library", "//vendor/google.golang.org/api/container/v1:go_default_library", diff --git a/pkg/cloudprovider/providers/gce/gce.go b/pkg/cloudprovider/providers/gce/gce.go index cc9d50e6b70..fe021568d3c 100644 --- a/pkg/cloudprovider/providers/gce/gce.go +++ b/pkg/cloudprovider/providers/gce/gce.go @@ -39,6 +39,7 @@ import ( "golang.org/x/oauth2" "golang.org/x/oauth2/google" cloudkms "google.golang.org/api/cloudkms/v1" + computealpha "google.golang.org/api/compute/v0.alpha" computebeta "google.golang.org/api/compute/v0.beta" compute "google.golang.org/api/compute/v1" container "google.golang.org/api/container/v1" @@ -85,6 +86,7 @@ type GCECloud struct { service *compute.Service serviceBeta *computebeta.Service + serviceAlpha *computealpha.Service containerService *container.Service cloudkmsService *cloudkms.Service clientBuilder controller.ControllerClientBuilder @@ -273,16 +275,24 @@ func CreateGCECloud(apiEndpoint, projectID, networkProjectID, region, zone strin return nil, err } - if apiEndpoint != "" { - service.BasePath = fmt.Sprintf("%sprojects/", apiEndpoint) - } - client, err = newOauthClient(tokenSource) serviceBeta, err := computebeta.New(client) if err != nil { return nil, err } + client, err = newOauthClient(tokenSource) + serviceAlpha, err := computealpha.New(client) + if err != nil { + return nil, err + } + + if apiEndpoint != "" { + service.BasePath = fmt.Sprintf("%sprojects/", apiEndpoint) + serviceBeta.BasePath = fmt.Sprintf("%sprojects/", strings.Replace(apiEndpoint, "v1", "beta", 0)) + serviceAlpha.BasePath = fmt.Sprintf("%sprojects/", strings.Replace(apiEndpoint, "v1", "alpha", 0)) + } + containerService, err := container.New(client) if err != nil { return nil, err