diff --git a/pkg/controller/service/service_controller.go b/pkg/controller/service/service_controller.go index 91204bad6d6..a0009126ce2 100644 --- a/pkg/controller/service/service_controller.go +++ b/pkg/controller/service/service_controller.go @@ -311,6 +311,11 @@ func (s *ServiceController) syncLoadBalancerIfNeeded(service *v1.Service, key st klog.V(2).Infof("Deleting existing load balancer for service %s", key) s.eventRecorder.Event(service, v1.EventTypeNormal, "DeletingLoadBalancer", "Deleting load balancer") if err := s.balancer.EnsureLoadBalancerDeleted(context.TODO(), s.clusterName, service); err != nil { + if err == cloudprovider.ImplementedElsewhere { + klog.V(3).Infof("LoadBalancer for service %s implemented by a different controller %s," + + "Ignoring error upon deletion", key, s.cloud.ProviderName()) + return op, nil + } return op, fmt.Errorf("failed to delete load balancer: %v", err) } } @@ -340,7 +345,7 @@ func (s *ServiceController) syncLoadBalancerIfNeeded(service *v1.Service, key st newStatus, err = s.ensureLoadBalancer(service) if err != nil { if err == cloudprovider.ImplementedElsewhere { - klog.Infof("LoadBalancer for service %s implemented by a different controller %s, Ignoring error", + klog.V(3).Infof("LoadBalancer for service %s implemented by a different controller %s, Ignoring error", key, s.cloud.ProviderName()) return op, nil } diff --git a/staging/src/k8s.io/cloud-provider/cloud.go b/staging/src/k8s.io/cloud-provider/cloud.go index 0131acc7fb6..c42160e25d6 100644 --- a/staging/src/k8s.io/cloud-provider/cloud.go +++ b/staging/src/k8s.io/cloud-provider/cloud.go @@ -200,7 +200,7 @@ type Routes interface { var ( DiskNotFound = errors.New("disk is not found") - ImplementedElsewhere = errors.New("implemented by a different controller") + ImplementedElsewhere = errors.New("implemented by alternate to cloud provider") InstanceNotFound = errors.New("instance not found") NotImplemented = errors.New("unimplemented") ) diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go index db31a9e74c4..d3e70b9153e 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_alpha.go @@ -26,7 +26,9 @@ const ( // // alpha: v1.8 (for Services) AlphaFeatureNetworkTiers = "NetworkTiers" - AlphaFeatureILBSubsets = "ILBSubsets" + // AlphaFeatureILBSubsets allows InternalLoadBalancer services to include a subset + // of cluster nodes as backends instead of all nodes. + AlphaFeatureILBSubsets = "ILBSubsets" ) // AlphaFeatureGate contains a mapping of alpha features to whether they are enabled diff --git a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go index f6e1b1642ab..27b02ce2a2a 100644 --- a/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go +++ b/staging/src/k8s.io/legacy-cloud-providers/gce/gce_loadbalancer_internal.go @@ -37,8 +37,8 @@ const ( ) func (g *Cloud) usesSubsets() bool { - return g.AlphaFeatureGate != nil && g.AlphaFeatureGate.Enabled(AlphaFeatureILBSubsets) - } + return g.AlphaFeatureGate != nil && g.AlphaFeatureGate.Enabled(AlphaFeatureILBSubsets) +} func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v1.Service, existingFwdRule *compute.ForwardingRule, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) { if g.usesSubsets() {