code: func (c *Cloud) UpdateLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) error {
  	instances, err := c.findInstancesForELB(nodes)
  	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)
  	if err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // UpdateLoadBalancer implements LoadBalancer.UpdateLoadBalancer