mirror of https://github.com/k3s-io/k3s
aws: Update LB API hosts->nodes
Update EnsureLoadBalancer/UpdateLoadBalancer API to use node objects.pull/6/head
parent
cf99ce6a86
commit
398c62d1ff
|
@ -2498,11 +2498,19 @@ func buildListener(port v1.ServicePort, annotations map[string]string, sslPorts
|
||||||
return listener, nil
|
return listener, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func nodeNames(nodes []*v1.Node) sets.String {
|
||||||
|
ret := sets.String{}
|
||||||
|
for _, node := range nodes {
|
||||||
|
ret.Insert(node.Name)
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
// EnsureLoadBalancer implements LoadBalancer.EnsureLoadBalancer
|
// EnsureLoadBalancer implements LoadBalancer.EnsureLoadBalancer
|
||||||
func (c *Cloud) EnsureLoadBalancer(clusterName string, apiService *v1.Service, hosts []string) (*v1.LoadBalancerStatus, error) {
|
func (c *Cloud) EnsureLoadBalancer(clusterName string, apiService *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) {
|
||||||
annotations := apiService.Annotations
|
annotations := apiService.Annotations
|
||||||
glog.V(2).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v, %v, %v, %v)",
|
glog.V(2).Infof("EnsureLoadBalancer(%v, %v, %v, %v, %v, %v, %v, %v)",
|
||||||
clusterName, apiService.Namespace, apiService.Name, c.region, apiService.Spec.LoadBalancerIP, apiService.Spec.Ports, hosts, annotations)
|
clusterName, apiService.Namespace, apiService.Name, c.region, apiService.Spec.LoadBalancerIP, apiService.Spec.Ports, nodes, annotations)
|
||||||
|
|
||||||
if apiService.Spec.SessionAffinity != v1.ServiceAffinityNone {
|
if apiService.Spec.SessionAffinity != v1.ServiceAffinityNone {
|
||||||
// ELB supports sticky sessions, but only when configured for HTTP/HTTPS
|
// ELB supports sticky sessions, but only when configured for HTTP/HTTPS
|
||||||
|
@ -2535,8 +2543,7 @@ func (c *Cloud) EnsureLoadBalancer(clusterName string, apiService *v1.Service, h
|
||||||
return nil, fmt.Errorf("LoadBalancerIP cannot be specified for AWS ELB")
|
return nil, fmt.Errorf("LoadBalancerIP cannot be specified for AWS ELB")
|
||||||
}
|
}
|
||||||
|
|
||||||
hostSet := sets.NewString(hosts...)
|
instances, err := c.getInstancesByNodeNamesCached(nodeNames(nodes))
|
||||||
instances, err := c.getInstancesByNodeNamesCached(hostSet)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -3085,9 +3092,8 @@ func (c *Cloud) EnsureLoadBalancerDeleted(clusterName string, service *v1.Servic
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateLoadBalancer implements LoadBalancer.UpdateLoadBalancer
|
// UpdateLoadBalancer implements LoadBalancer.UpdateLoadBalancer
|
||||||
func (c *Cloud) UpdateLoadBalancer(clusterName string, service *v1.Service, hosts []string) error {
|
func (c *Cloud) UpdateLoadBalancer(clusterName string, service *v1.Service, nodes []*v1.Node) error {
|
||||||
hostSet := sets.NewString(hosts...)
|
instances, err := c.getInstancesByNodeNamesCached(nodeNames(nodes))
|
||||||
instances, err := c.getInstancesByNodeNamesCached(hostSet)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -1200,7 +1200,7 @@ func TestDescribeLoadBalancerOnUpdate(t *testing.T) {
|
||||||
c, _ := newAWSCloud(strings.NewReader("[global]"), awsServices)
|
c, _ := newAWSCloud(strings.NewReader("[global]"), awsServices)
|
||||||
awsServices.elb.expectDescribeLoadBalancers("aid")
|
awsServices.elb.expectDescribeLoadBalancers("aid")
|
||||||
|
|
||||||
c.UpdateLoadBalancer(TestClusterName, &v1.Service{ObjectMeta: v1.ObjectMeta{Name: "myservice", UID: "id"}}, []string{})
|
c.UpdateLoadBalancer(TestClusterName, &v1.Service{ObjectMeta: v1.ObjectMeta{Name: "myservice", UID: "id"}}, []*v1.Node{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestDescribeLoadBalancerOnGet(t *testing.T) {
|
func TestDescribeLoadBalancerOnGet(t *testing.T) {
|
||||||
|
@ -1216,7 +1216,7 @@ func TestDescribeLoadBalancerOnEnsure(t *testing.T) {
|
||||||
c, _ := newAWSCloud(strings.NewReader("[global]"), awsServices)
|
c, _ := newAWSCloud(strings.NewReader("[global]"), awsServices)
|
||||||
awsServices.elb.expectDescribeLoadBalancers("aid")
|
awsServices.elb.expectDescribeLoadBalancers("aid")
|
||||||
|
|
||||||
c.EnsureLoadBalancer(TestClusterName, &v1.Service{ObjectMeta: v1.ObjectMeta{Name: "myservice", UID: "id"}}, []string{})
|
c.EnsureLoadBalancer(TestClusterName, &v1.Service{ObjectMeta: v1.ObjectMeta{Name: "myservice", UID: "id"}}, []*v1.Node{})
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBuildListener(t *testing.T) {
|
func TestBuildListener(t *testing.T) {
|
||||||
|
|
Loading…
Reference in New Issue