Skip to content

Commit

Permalink
Revert kubernetes#7145 now that kubernetes#7609 is in, and fix the te…
Browse files Browse the repository at this point in the history
…sts that were relying on it.
  • Loading branch information
a-robinson committed May 1, 2015
1 parent cadfde0 commit 890ff7b
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 23 deletions.
14 changes: 2 additions & 12 deletions pkg/cloudprovider/cloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package cloudprovider

import (
"net"
"strings"

"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
)
Expand All @@ -43,17 +42,8 @@ type Clusters interface {
Master(clusterName string) (string, error)
}

// TODO(#6812): Use a shorter name that's less likely to be longer than cloud
// providers' name length limits.
func GetLoadBalancerName(service *api.Service) string {
//GCE requires that the name of a load balancer starts with a lower case letter.
ret := "a" + string(service.UID)
ret = strings.Replace(ret, "-", "", -1)
//AWS requires that the name of a load balancer is shorter than 32 bytes.
if len(ret) > 32 {
ret = ret[:32]
}
return ret
func GetLoadBalancerName(clusterName, serviceNamespace, serviceName string) string {
return clusterName + "-" + serviceNamespace + "-" + serviceName
}

// TCPLoadBalancer is an abstract, pluggable interface for TCP load balancers.
Expand Down
4 changes: 2 additions & 2 deletions pkg/cloudprovider/servicecontroller/servicecontroller.go
Original file line number Diff line number Diff line change
Expand Up @@ -438,7 +438,7 @@ func needsUpdate(oldService *api.Service, newService *api.Service) bool {
}

func (s *ServiceController) loadBalancerName(service *api.Service) string {
return cloudprovider.GetLoadBalancerName(service)
return cloudprovider.GetLoadBalancerName(s.clusterName, service.Namespace, service.Name)
}

func getTCPPorts(service *api.Service) ([]int, error) {
Expand Down Expand Up @@ -571,7 +571,7 @@ func (s *ServiceController) lockedUpdateLoadBalancerHosts(service *api.Service,
return nil
}

name := cloudprovider.GetLoadBalancerName(service)
name := s.loadBalancerName(service)
err := s.balancer.UpdateTCPLoadBalancer(name, s.zone.Region, hosts)
if err == nil {
return nil
Expand Down
23 changes: 14 additions & 9 deletions pkg/cloudprovider/servicecontroller/servicecontroller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,14 @@ import (
)

const region = "us-central"
const clusterName = "test-cluster"
const namespace = "namespace"

func newService(name string, uid types.UID, external bool) *api.Service {
return &api.Service{ObjectMeta: api.ObjectMeta{Name: name, Namespace: "namespace", UID: uid}, Spec: api.ServiceSpec{CreateExternalLoadBalancer: external}}
return &api.Service{ObjectMeta: api.ObjectMeta{Name: name, Namespace: namespace, UID: uid}, Spec: api.ServiceSpec{CreateExternalLoadBalancer: external}}
}
func lbName(serviceName string) string {
return clusterName + "-" + namespace + "-" + serviceName
}

func TestCreateExternalLoadBalancer(t *testing.T) {
Expand Down Expand Up @@ -91,7 +96,7 @@ func TestCreateExternalLoadBalancer(t *testing.T) {
cloud := &fake_cloud.FakeCloud{}
cloud.Region = region
client := &testclient.Fake{}
controller := New(cloud, client, "test-cluster")
controller := New(cloud, client, clusterName)
controller.init()
cloud.Calls = nil // ignore any cloud calls made in init()
client.Actions = nil // ignore any client calls made in init()
Expand Down Expand Up @@ -155,7 +160,7 @@ func TestUpdateNodesInExternalLoadBalancer(t *testing.T) {
newService("s0", "333", true),
},
expectedUpdateCalls: []fake_cloud.FakeUpdateBalancerCall{
{Name: "a333", Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: lbName("s0"), Region: region, Hosts: []string{"node0", "node1", "node73"}},
},
},
{
Expand All @@ -166,9 +171,9 @@ func TestUpdateNodesInExternalLoadBalancer(t *testing.T) {
newService("s2", "666", true),
},
expectedUpdateCalls: []fake_cloud.FakeUpdateBalancerCall{
{Name: "a444", Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: "a555", Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: "a666", Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: lbName("s0"), Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: lbName("s1"), Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: lbName("s2"), Region: region, Hosts: []string{"node0", "node1", "node73"}},
},
},
{
Expand All @@ -180,8 +185,8 @@ func TestUpdateNodesInExternalLoadBalancer(t *testing.T) {
newService("s4", "123", false),
},
expectedUpdateCalls: []fake_cloud.FakeUpdateBalancerCall{
{Name: "a888", Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: "a999", Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: lbName("s1"), Region: region, Hosts: []string{"node0", "node1", "node73"}},
{Name: lbName("s3"), Region: region, Hosts: []string{"node0", "node1", "node73"}},
},
},
}
Expand All @@ -190,7 +195,7 @@ func TestUpdateNodesInExternalLoadBalancer(t *testing.T) {

cloud.Region = region
client := &testclient.Fake{}
controller := New(cloud, client, "test-cluster2")
controller := New(cloud, client, clusterName)
controller.init()
cloud.Calls = nil // ignore any cloud calls made in init()

Expand Down

0 comments on commit 890ff7b

Please sign in to comment.