From 5882c35e45e9ca55dd9347b9401b602b65894b9b Mon Sep 17 00:00:00 2001 From: CJ Cullen Date: Thu, 6 Aug 2015 17:45:44 -0700 Subject: [PATCH] Use full URLs for GCE networks --- pkg/cloudprovider/gce/gce.go | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/pkg/cloudprovider/gce/gce.go b/pkg/cloudprovider/gce/gce.go index 475f1bddd0e..1dff071b082 100644 --- a/pkg/cloudprovider/gce/gce.go +++ b/pkg/cloudprovider/gce/gce.go @@ -59,7 +59,7 @@ type GCECloud struct { zone string instanceID string externalID string - networkName string + networkURL string // Used for accessing the metadata server metadataAccess func(string) (string, error) @@ -166,6 +166,7 @@ func newGCECloud(config io.Reader) (*GCECloud, error) { if err != nil { return nil, err } + networkURL := gceNetworkURL(projectID, networkName) tokenSource := google.ComputeTokenSource("") if config != nil { var cfg Config @@ -177,7 +178,11 @@ func newGCECloud(config io.Reader) (*GCECloud, error) { projectID = cfg.Global.ProjectID } if cfg.Global.NetworkName != "" { - networkName = cfg.Global.NetworkName + if strings.Contains(cfg.Global.NetworkName, "/") { + networkURL = cfg.Global.NetworkName + } else { + networkURL = gceNetworkURL(cfg.Global.ProjectID, cfg.Global.NetworkName) + } } if cfg.Global.TokenURL != "" { tokenSource = newAltTokenSource(cfg.Global.TokenURL) @@ -199,7 +204,7 @@ func newGCECloud(config io.Reader) (*GCECloud, error) { zone: zone, instanceID: instanceID, externalID: externalID, - networkName: networkName, + networkURL: networkURL, metadataAccess: getMetadata, }, nil } @@ -426,7 +431,7 @@ func (gce *GCECloud) CreateTCPLoadBalancer(name, region string, externalIP net.I firewall := &compute.Firewall{ Name: makeFirewallName(name), Description: fmt.Sprintf("KubernetesAutoGenerated_OnlyAllowTrafficForDestinationIP_%s", fwd.IPAddress), - Network: gce.gceNetworkName(), + Network: gce.networkURL, SourceRanges: []string{"0.0.0.0/0"}, TargetTags: []string{hostTag}, Allowed: []*compute.FirewallAllowed{ @@ -759,7 +764,7 @@ func (gce *GCECloud) ListRoutes(clusterName string) ([]*cloudprovider.Route, err } var routes []*cloudprovider.Route for _, r := range res.Items { - if path.Base(r.Network) != gce.networkName { + if r.Network != gce.networkURL { continue } // Not managed if route description != "k8s-node-route" @@ -777,8 +782,8 @@ func (gce *GCECloud) ListRoutes(clusterName string) ([]*cloudprovider.Route, err return routes, nil } -func (gce *GCECloud) gceNetworkName() string { - return fmt.Sprintf("global/networks/%s", gce.networkName) +func gceNetworkURL(project, network string) string { + return fmt.Sprintf("https://www.googleapis.com/compute/v1/projects/%s/global/networks/%s", project, network) } func (gce *GCECloud) CreateRoute(clusterName string, nameHint string, route *cloudprovider.Route) error { @@ -789,7 +794,7 @@ func (gce *GCECloud) CreateRoute(clusterName string, nameHint string, route *clo Name: routeName, DestRange: route.DestinationCIDR, NextHopInstance: fmt.Sprintf("zones/%s/instances/%s", gce.zone, instanceName), - Network: gce.gceNetworkName(), + Network: gce.networkURL, Priority: 1000, Description: k8sNodeRouteTag, }).Do()