in pkg/providers/v1/aws.go [5010:5063]
func (c *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error {
if isLBExternal(service.Annotations) {
return cloudprovider.ImplementedElsewhere
}
instances, err := c.findInstancesForELB(nodes, service.Annotations)
if err != nil {
return err
}
loadBalancerName := c.GetLoadBalancerName(ctx, clusterName, service)
if isNLB(service.Annotations) {
lb, err := c.describeLoadBalancerv2(loadBalancerName)
if err != nil {
return err
}
if lb == nil {
return fmt.Errorf("Load balancer not found")
}
_, err = c.EnsureLoadBalancer(ctx, clusterName, service, nodes)
return err
}
lb, err := c.describeLoadBalancer(loadBalancerName)
if err != nil {
return err
}
if lb == nil {
return fmt.Errorf("Load balancer not found")
}
if sslPolicyName, ok := service.Annotations[ServiceAnnotationLoadBalancerSSLNegotiationPolicy]; ok {
err := c.ensureSSLNegotiationPolicy(lb, sslPolicyName)
if err != nil {
return err
}
for _, port := range c.getLoadBalancerTLSPorts(lb) {
err := c.setSSLNegotiationPolicy(loadBalancerName, sslPolicyName, port)
if err != nil {
return err
}
}
}
err = c.ensureLoadBalancerInstances(aws.StringValue(lb.LoadBalancerName), lb.Instances, instances)
if err != nil {
return nil
}
err = c.updateInstanceSecurityGroupsForLoadBalancer(lb, instances, service.Annotations)
if err != nil {
return err
}
return nil
}