mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Process ILB services with v1 finalizer if Subsetting is enabled.
This is to cover a corner case where the forwarding rule is somehow missing, but the service has V1 finalizer. V1 finalizer services should be managed by the service controller.
This commit is contained in:
parent
b12379ef1c
commit
31d865190e
@ -53,16 +53,20 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v1.Service, existingFwdRule *compute.ForwardingRule, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) {
|
func (g *Cloud) ensureInternalLoadBalancer(clusterName, clusterID string, svc *v1.Service, existingFwdRule *compute.ForwardingRule, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) {
|
||||||
if g.AlphaFeatureGate.Enabled(AlphaFeatureILBSubsets) && existingFwdRule == nil {
|
if existingFwdRule == nil && !hasFinalizer(svc, ILBFinalizerV1) {
|
||||||
// When ILBSubsets is enabled, new ILB services will not be processed here.
|
// Neither the forwarding rule nor the V1 finalizer exists. This is most likely a new service.
|
||||||
// Services that have existing GCE resources created by this controller will continue to update.
|
if g.AlphaFeatureGate.Enabled(AlphaFeatureILBSubsets) {
|
||||||
klog.V(2).Infof("Skipped ensureInternalLoadBalancer for service %s/%s, since %s feature is enabled.", svc.Namespace, svc.Name, AlphaFeatureILBSubsets)
|
// When ILBSubsets is enabled, new ILB services will not be processed here.
|
||||||
return nil, cloudprovider.ImplementedElsewhere
|
// Services that have existing GCE resources created by this controller or the v1 finalizer
|
||||||
}
|
// will continue to update.
|
||||||
if hasFinalizer(svc, ILBFinalizerV2) {
|
klog.V(2).Infof("Skipped ensureInternalLoadBalancer for service %s/%s, since %s feature is enabled.", svc.Namespace, svc.Name, AlphaFeatureILBSubsets)
|
||||||
// Another controller is handling the resources for this service.
|
return nil, cloudprovider.ImplementedElsewhere
|
||||||
klog.V(2).Infof("Skipped ensureInternalLoadBalancer for service %s/%s, as service contains %q finalizer.", svc.Namespace, svc.Name, ILBFinalizerV2)
|
}
|
||||||
return nil, cloudprovider.ImplementedElsewhere
|
if hasFinalizer(svc, ILBFinalizerV2) {
|
||||||
|
// No V1 resources present - Another controller is handling the resources for this service.
|
||||||
|
klog.V(2).Infof("Skipped ensureInternalLoadBalancer for service %s/%s, as service contains %q finalizer.", svc.Namespace, svc.Name, ILBFinalizerV2)
|
||||||
|
return nil, cloudprovider.ImplementedElsewhere
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
nm := types.NamespacedName{Name: svc.Name, Namespace: svc.Namespace}
|
nm := types.NamespacedName{Name: svc.Name, Namespace: svc.Namespace}
|
||||||
|
Loading…
Reference in New Issue
Block a user