mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-15 14:14:39 +00:00
Remove superfluous ELB region lookup logic.
The ELB client lookup isn't necessary because the service does not operate across regions. Instead the client should be built like the others by querying for the region from the master node's metadata service.
This commit is contained in:
@@ -172,6 +172,7 @@ type InstanceGroupInfo interface {
|
|||||||
type AWSCloud struct {
|
type AWSCloud struct {
|
||||||
awsServices AWSServices
|
awsServices AWSServices
|
||||||
ec2 EC2
|
ec2 EC2
|
||||||
|
elb ELB
|
||||||
asg ASG
|
asg ASG
|
||||||
cfg *AWSCloudConfig
|
cfg *AWSCloudConfig
|
||||||
availabilityZone string
|
availabilityZone string
|
||||||
@@ -183,8 +184,6 @@ type AWSCloud struct {
|
|||||||
selfAWSInstance *awsInstance
|
selfAWSInstance *awsInstance
|
||||||
|
|
||||||
mutex sync.Mutex
|
mutex sync.Mutex
|
||||||
// Protects elbClients
|
|
||||||
elbClients map[string]ELB
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type AWSCloudConfig struct {
|
type AWSCloudConfig struct {
|
||||||
@@ -236,23 +235,6 @@ func (p *awsSDKProvider) Metadata() AWSMetadata {
|
|||||||
return &awsSdkMetadata{}
|
return &awsSdkMetadata{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Builds an ELB client for the specified region
|
|
||||||
func (s *AWSCloud) getELBClient(regionName string) (ELB, error) {
|
|
||||||
s.mutex.Lock()
|
|
||||||
defer s.mutex.Unlock()
|
|
||||||
|
|
||||||
elbClient, found := s.elbClients[regionName]
|
|
||||||
if !found {
|
|
||||||
var err error
|
|
||||||
elbClient, err = s.awsServices.LoadBalancing(regionName)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
s.elbClients[regionName] = elbClient
|
|
||||||
}
|
|
||||||
return elbClient, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func stringPointerArray(orig []string) []*string {
|
func stringPointerArray(orig []string) []*string {
|
||||||
if orig == nil {
|
if orig == nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -566,6 +548,11 @@ func newAWSCloud(config io.Reader, awsServices AWSServices) (*AWSCloud, error) {
|
|||||||
return nil, fmt.Errorf("error creating AWS EC2 client: %v", err)
|
return nil, fmt.Errorf("error creating AWS EC2 client: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
elb, err := awsServices.LoadBalancing(regionName)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error creating AWS ELB client: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
asg, err := awsServices.Autoscaling(regionName)
|
asg, err := awsServices.Autoscaling(regionName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error creating AWS autoscaling client: %v", err)
|
return nil, fmt.Errorf("error creating AWS autoscaling client: %v", err)
|
||||||
@@ -574,11 +561,11 @@ func newAWSCloud(config io.Reader, awsServices AWSServices) (*AWSCloud, error) {
|
|||||||
awsCloud := &AWSCloud{
|
awsCloud := &AWSCloud{
|
||||||
awsServices: awsServices,
|
awsServices: awsServices,
|
||||||
ec2: ec2,
|
ec2: ec2,
|
||||||
|
elb: elb,
|
||||||
asg: asg,
|
asg: asg,
|
||||||
cfg: cfg,
|
cfg: cfg,
|
||||||
region: regionName,
|
region: regionName,
|
||||||
availabilityZone: zone,
|
availabilityZone: zone,
|
||||||
elbClients: map[string]ELB{},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
filterTags := map[string]string{}
|
filterTags := map[string]string{}
|
||||||
@@ -1240,16 +1227,11 @@ func (v *AWSCloud) Release(name string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Gets the current load balancer state
|
// Gets the current load balancer state
|
||||||
func (s *AWSCloud) describeLoadBalancer(region, name string) (*elb.LoadBalancerDescription, error) {
|
func (s *AWSCloud) describeLoadBalancer(name string) (*elb.LoadBalancerDescription, error) {
|
||||||
elbClient, err := s.getELBClient(region)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
request := &elb.DescribeLoadBalancersInput{}
|
request := &elb.DescribeLoadBalancersInput{}
|
||||||
request.LoadBalancerNames = []*string{&name}
|
request.LoadBalancerNames = []*string{&name}
|
||||||
|
|
||||||
response, err := elbClient.DescribeLoadBalancers(request)
|
response, err := s.elb.DescribeLoadBalancers(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if awsError, ok := err.(awserr.Error); ok {
|
if awsError, ok := err.(awserr.Error); ok {
|
||||||
if awsError.Code() == "LoadBalancerNotFound" {
|
if awsError.Code() == "LoadBalancerNotFound" {
|
||||||
@@ -1613,11 +1595,6 @@ func (s *AWSCloud) createTags(request *ec2.CreateTagsInput) (*ec2.CreateTagsOutp
|
|||||||
func (s *AWSCloud) EnsureTCPLoadBalancer(name, region string, publicIP net.IP, ports []*api.ServicePort, hosts []string, affinity api.ServiceAffinity) (*api.LoadBalancerStatus, error) {
|
func (s *AWSCloud) EnsureTCPLoadBalancer(name, region string, publicIP net.IP, ports []*api.ServicePort, hosts []string, affinity api.ServiceAffinity) (*api.LoadBalancerStatus, error) {
|
||||||
glog.V(2).Infof("EnsureTCPLoadBalancer(%v, %v, %v, %v, %v)", name, region, publicIP, ports, hosts)
|
glog.V(2).Infof("EnsureTCPLoadBalancer(%v, %v, %v, %v, %v)", name, region, publicIP, ports, hosts)
|
||||||
|
|
||||||
elbClient, err := s.getELBClient(region)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if affinity != api.ServiceAffinityNone {
|
if affinity != api.ServiceAffinityNone {
|
||||||
// ELB supports sticky sessions, but only when configured for HTTP/HTTPS
|
// ELB supports sticky sessions, but only when configured for HTTP/HTTPS
|
||||||
return nil, fmt.Errorf("unsupported load balancer affinity: %v", affinity)
|
return nil, fmt.Errorf("unsupported load balancer affinity: %v", affinity)
|
||||||
@@ -1720,12 +1697,12 @@ func (s *AWSCloud) EnsureTCPLoadBalancer(name, region string, publicIP net.IP, p
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Build the load balancer itself
|
// Build the load balancer itself
|
||||||
loadBalancer, err := s.ensureLoadBalancer(region, name, listeners, subnetIDs, securityGroupIDs)
|
loadBalancer, err := s.ensureLoadBalancer(name, listeners, subnetIDs, securityGroupIDs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = s.ensureLoadBalancerHealthCheck(region, loadBalancer, listeners)
|
err = s.ensureLoadBalancerHealthCheck(loadBalancer, listeners)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -1736,7 +1713,7 @@ func (s *AWSCloud) EnsureTCPLoadBalancer(name, region string, publicIP net.IP, p
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = s.ensureLoadBalancerInstances(elbClient, orEmpty(loadBalancer.LoadBalancerName), loadBalancer.Instances, instances)
|
err = s.ensureLoadBalancerInstances(orEmpty(loadBalancer.LoadBalancerName), loadBalancer.Instances, instances)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Warning("Error registering instances with the load balancer: %v", err)
|
glog.Warning("Error registering instances with the load balancer: %v", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -1752,7 +1729,7 @@ func (s *AWSCloud) EnsureTCPLoadBalancer(name, region string, publicIP net.IP, p
|
|||||||
|
|
||||||
// GetTCPLoadBalancer is an implementation of TCPLoadBalancer.GetTCPLoadBalancer
|
// GetTCPLoadBalancer is an implementation of TCPLoadBalancer.GetTCPLoadBalancer
|
||||||
func (s *AWSCloud) GetTCPLoadBalancer(name, region string) (*api.LoadBalancerStatus, bool, error) {
|
func (s *AWSCloud) GetTCPLoadBalancer(name, region string) (*api.LoadBalancerStatus, bool, error) {
|
||||||
lb, err := s.describeLoadBalancer(region, name)
|
lb, err := s.describeLoadBalancer(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, false, err
|
return nil, false, err
|
||||||
}
|
}
|
||||||
@@ -1912,12 +1889,7 @@ func (s *AWSCloud) updateInstanceSecurityGroupsForLoadBalancer(lb *elb.LoadBalan
|
|||||||
|
|
||||||
// EnsureTCPLoadBalancerDeleted implements TCPLoadBalancer.EnsureTCPLoadBalancerDeleted.
|
// EnsureTCPLoadBalancerDeleted implements TCPLoadBalancer.EnsureTCPLoadBalancerDeleted.
|
||||||
func (s *AWSCloud) EnsureTCPLoadBalancerDeleted(name, region string) error {
|
func (s *AWSCloud) EnsureTCPLoadBalancerDeleted(name, region string) error {
|
||||||
elbClient, err := s.getELBClient(region)
|
lb, err := s.describeLoadBalancer(name)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
lb, err := s.describeLoadBalancer(region, name)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -1941,7 +1913,7 @@ func (s *AWSCloud) EnsureTCPLoadBalancerDeleted(name, region string) error {
|
|||||||
request := &elb.DeleteLoadBalancerInput{}
|
request := &elb.DeleteLoadBalancerInput{}
|
||||||
request.LoadBalancerName = lb.LoadBalancerName
|
request.LoadBalancerName = lb.LoadBalancerName
|
||||||
|
|
||||||
_, err = elbClient.DeleteLoadBalancer(request)
|
_, err = s.elb.DeleteLoadBalancer(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
// TODO: Check if error was because load balancer was concurrently deleted
|
// TODO: Check if error was because load balancer was concurrently deleted
|
||||||
glog.Error("error deleting load balancer: ", err)
|
glog.Error("error deleting load balancer: ", err)
|
||||||
@@ -2012,12 +1984,7 @@ func (s *AWSCloud) UpdateTCPLoadBalancer(name, region string, hosts []string) er
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
elbClient, err := s.getELBClient(region)
|
lb, err := s.describeLoadBalancer(name)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
lb, err := s.describeLoadBalancer(region, name)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -2026,7 +1993,7 @@ func (s *AWSCloud) UpdateTCPLoadBalancer(name, region string, hosts []string) er
|
|||||||
return fmt.Errorf("Load balancer not found")
|
return fmt.Errorf("Load balancer not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = s.ensureLoadBalancerInstances(elbClient, orEmpty(lb.LoadBalancerName), lb.Instances, instances)
|
err = s.ensureLoadBalancerInstances(orEmpty(lb.LoadBalancerName), lb.Instances, instances)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@@ -27,13 +27,8 @@ import (
|
|||||||
"k8s.io/kubernetes/pkg/util/sets"
|
"k8s.io/kubernetes/pkg/util/sets"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.Listener, subnetIDs []string, securityGroupIDs []string) (*elb.LoadBalancerDescription, error) {
|
func (s *AWSCloud) ensureLoadBalancer(name string, listeners []*elb.Listener, subnetIDs []string, securityGroupIDs []string) (*elb.LoadBalancerDescription, error) {
|
||||||
elbClient, err := s.getELBClient(region)
|
loadBalancer, err := s.describeLoadBalancer(name)
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
loadBalancer, err := s.describeLoadBalancer(region, name)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -53,7 +48,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
createRequest.SecurityGroups = stringPointerArray(securityGroupIDs)
|
createRequest.SecurityGroups = stringPointerArray(securityGroupIDs)
|
||||||
|
|
||||||
glog.Info("Creating load balancer with name: ", name)
|
glog.Info("Creating load balancer with name: ", name)
|
||||||
_, err := elbClient.CreateLoadBalancer(createRequest)
|
_, err := s.elb.CreateLoadBalancer(createRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -72,7 +67,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
request.LoadBalancerName = aws.String(name)
|
request.LoadBalancerName = aws.String(name)
|
||||||
request.Subnets = stringSetToPointers(removals)
|
request.Subnets = stringSetToPointers(removals)
|
||||||
glog.V(2).Info("Detaching load balancer from removed subnets")
|
glog.V(2).Info("Detaching load balancer from removed subnets")
|
||||||
_, err := elbClient.DetachLoadBalancerFromSubnets(request)
|
_, err := s.elb.DetachLoadBalancerFromSubnets(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error detaching AWS loadbalancer from subnets: %v", err)
|
return nil, fmt.Errorf("error detaching AWS loadbalancer from subnets: %v", err)
|
||||||
}
|
}
|
||||||
@@ -84,7 +79,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
request.LoadBalancerName = aws.String(name)
|
request.LoadBalancerName = aws.String(name)
|
||||||
request.Subnets = stringSetToPointers(additions)
|
request.Subnets = stringSetToPointers(additions)
|
||||||
glog.V(2).Info("Attaching load balancer to added subnets")
|
glog.V(2).Info("Attaching load balancer to added subnets")
|
||||||
_, err := elbClient.AttachLoadBalancerToSubnets(request)
|
_, err := s.elb.AttachLoadBalancerToSubnets(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error attaching AWS loadbalancer to subnets: %v", err)
|
return nil, fmt.Errorf("error attaching AWS loadbalancer to subnets: %v", err)
|
||||||
}
|
}
|
||||||
@@ -103,7 +98,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
request.LoadBalancerName = aws.String(name)
|
request.LoadBalancerName = aws.String(name)
|
||||||
request.SecurityGroups = stringPointerArray(securityGroupIDs)
|
request.SecurityGroups = stringPointerArray(securityGroupIDs)
|
||||||
glog.V(2).Info("Applying updated security groups to load balancer")
|
glog.V(2).Info("Applying updated security groups to load balancer")
|
||||||
_, err := elbClient.ApplySecurityGroupsToLoadBalancer(request)
|
_, err := s.elb.ApplySecurityGroupsToLoadBalancer(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error applying AWS loadbalancer security groups: %v", err)
|
return nil, fmt.Errorf("error applying AWS loadbalancer security groups: %v", err)
|
||||||
}
|
}
|
||||||
@@ -163,7 +158,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
request.LoadBalancerName = aws.String(name)
|
request.LoadBalancerName = aws.String(name)
|
||||||
request.LoadBalancerPorts = removals
|
request.LoadBalancerPorts = removals
|
||||||
glog.V(2).Info("Deleting removed load balancer listeners")
|
glog.V(2).Info("Deleting removed load balancer listeners")
|
||||||
_, err := elbClient.DeleteLoadBalancerListeners(request)
|
_, err := s.elb.DeleteLoadBalancerListeners(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error deleting AWS loadbalancer listeners: %v", err)
|
return nil, fmt.Errorf("error deleting AWS loadbalancer listeners: %v", err)
|
||||||
}
|
}
|
||||||
@@ -175,7 +170,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
request.LoadBalancerName = aws.String(name)
|
request.LoadBalancerName = aws.String(name)
|
||||||
request.Listeners = additions
|
request.Listeners = additions
|
||||||
glog.V(2).Info("Creating added load balancer listeners")
|
glog.V(2).Info("Creating added load balancer listeners")
|
||||||
_, err := elbClient.CreateLoadBalancerListeners(request)
|
_, err := s.elb.CreateLoadBalancerListeners(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("error creating AWS loadbalancer listeners: %v", err)
|
return nil, fmt.Errorf("error creating AWS loadbalancer listeners: %v", err)
|
||||||
}
|
}
|
||||||
@@ -185,7 +180,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
}
|
}
|
||||||
|
|
||||||
if dirty {
|
if dirty {
|
||||||
loadBalancer, err = s.describeLoadBalancer(region, name)
|
loadBalancer, err = s.describeLoadBalancer(name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Warning("Unable to retrieve load balancer after creation/update")
|
glog.Warning("Unable to retrieve load balancer after creation/update")
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -196,12 +191,7 @@ func (s *AWSCloud) ensureLoadBalancer(region, name string, listeners []*elb.List
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Makes sure that the health check for an ELB matches the configured listeners
|
// Makes sure that the health check for an ELB matches the configured listeners
|
||||||
func (s *AWSCloud) ensureLoadBalancerHealthCheck(region string, loadBalancer *elb.LoadBalancerDescription, listeners []*elb.Listener) error {
|
func (s *AWSCloud) ensureLoadBalancerHealthCheck(loadBalancer *elb.LoadBalancerDescription, listeners []*elb.Listener) error {
|
||||||
elbClient, err := s.getELBClient(region)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
actual := loadBalancer.HealthCheck
|
actual := loadBalancer.HealthCheck
|
||||||
|
|
||||||
// Default AWS settings
|
// Default AWS settings
|
||||||
@@ -245,7 +235,7 @@ func (s *AWSCloud) ensureLoadBalancerHealthCheck(region string, loadBalancer *el
|
|||||||
request.HealthCheck = healthCheck
|
request.HealthCheck = healthCheck
|
||||||
request.LoadBalancerName = loadBalancer.LoadBalancerName
|
request.LoadBalancerName = loadBalancer.LoadBalancerName
|
||||||
|
|
||||||
_, err = elbClient.ConfigureHealthCheck(request)
|
_, err := s.elb.ConfigureHealthCheck(request)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error configuring load-balancer health-check: %v", err)
|
return fmt.Errorf("error configuring load-balancer health-check: %v", err)
|
||||||
}
|
}
|
||||||
@@ -254,7 +244,7 @@ func (s *AWSCloud) ensureLoadBalancerHealthCheck(region string, loadBalancer *el
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Makes sure that exactly the specified hosts are registered as instances with the load balancer
|
// Makes sure that exactly the specified hosts are registered as instances with the load balancer
|
||||||
func (s *AWSCloud) ensureLoadBalancerInstances(elbClient ELB, loadBalancerName string, lbInstances []*elb.Instance, instances []*ec2.Instance) error {
|
func (s *AWSCloud) ensureLoadBalancerInstances(loadBalancerName string, lbInstances []*elb.Instance, instances []*ec2.Instance) error {
|
||||||
expected := sets.NewString()
|
expected := sets.NewString()
|
||||||
for _, instance := range instances {
|
for _, instance := range instances {
|
||||||
expected.Insert(orEmpty(instance.InstanceID))
|
expected.Insert(orEmpty(instance.InstanceID))
|
||||||
@@ -286,7 +276,7 @@ func (s *AWSCloud) ensureLoadBalancerInstances(elbClient ELB, loadBalancerName s
|
|||||||
registerRequest := &elb.RegisterInstancesWithLoadBalancerInput{}
|
registerRequest := &elb.RegisterInstancesWithLoadBalancerInput{}
|
||||||
registerRequest.Instances = addInstances
|
registerRequest.Instances = addInstances
|
||||||
registerRequest.LoadBalancerName = aws.String(loadBalancerName)
|
registerRequest.LoadBalancerName = aws.String(loadBalancerName)
|
||||||
_, err := elbClient.RegisterInstancesWithLoadBalancer(registerRequest)
|
_, err := s.elb.RegisterInstancesWithLoadBalancer(registerRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -297,7 +287,7 @@ func (s *AWSCloud) ensureLoadBalancerInstances(elbClient ELB, loadBalancerName s
|
|||||||
deregisterRequest := &elb.DeregisterInstancesFromLoadBalancerInput{}
|
deregisterRequest := &elb.DeregisterInstancesFromLoadBalancerInput{}
|
||||||
deregisterRequest.Instances = removeInstances
|
deregisterRequest.Instances = removeInstances
|
||||||
deregisterRequest.LoadBalancerName = aws.String(loadBalancerName)
|
deregisterRequest.LoadBalancerName = aws.String(loadBalancerName)
|
||||||
_, err := elbClient.DeregisterInstancesFromLoadBalancer(deregisterRequest)
|
_, err := s.elb.DeregisterInstancesFromLoadBalancer(deregisterRequest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user