Skip to content

Commit 63c9fe5

Browse files
committed
fix deletion
1 parent 1021b4d commit 63c9fe5

1 file changed

Lines changed: 15 additions & 14 deletions

File tree

pkg/ionos/loadbalancer.go

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,18 @@ func (l loadbalancer) UpdateLoadBalancer(ctx context.Context, clusterName string
9191
func (l loadbalancer) EnsureLoadBalancerDeleted(ctx context.Context, clusterName string, service *v1.Service) error {
9292
klog.Infof("ensureLoadBalancerDeleted (service %s/%s)", service.Namespace, service.Name)
9393

94-
if service.Spec.LoadBalancerIP == "" {
95-
return errors.New("we are only handling LoadBalancers with spec.loadBalancerID != ''")
96-
}
97-
98-
server, err := l.ServerWithLoadBalancer(ctx, service.Spec.LoadBalancerIP)
99-
if err != nil {
100-
return err
101-
}
94+
if len(service.Status.LoadBalancer.Ingress) > 0 {
95+
klog.Infof("removing IP %s", service.Status.LoadBalancer.Ingress[0].IP)
96+
server, err := l.ServerWithLoadBalancer(ctx, service.Status.LoadBalancer.Ingress[0].IP)
97+
if err != nil {
98+
return err
99+
}
102100

103-
if server != nil {
104-
return l.deleteLoadBalancerFromNode(ctx, service.Spec.LoadBalancerIP, server)
101+
if server != nil {
102+
if err := l.deleteLoadBalancerFromNode(ctx, service.Status.LoadBalancer.Ingress[0].IP, server); err != nil {
103+
return err
104+
}
105+
}
105106
}
106107

107108
return nil
@@ -130,10 +131,6 @@ func (l loadbalancer) deleteLoadBalancerFromNode(ctx context.Context, loadBalanc
130131
func (l loadbalancer) syncLoadBalancer(ctx context.Context, clusterName string, service *v1.Service, nodes []*v1.Node) (*v1.LoadBalancerStatus, error) {
131132
klog.Infof("syncLoadBalancer (service %s/%s, nodes %s)", service.Namespace, service.Name, nodes)
132133

133-
if service.Spec.LoadBalancerIP == "" {
134-
return nil, errors.New("we are only handling LoadBalancers with spec.loadBalancerID != ''")
135-
}
136-
137134
if len(service.Status.LoadBalancer.Ingress) > 0 && service.Status.LoadBalancer.Ingress[0].IP != service.Spec.LoadBalancerIP {
138135
klog.Infof("service %s/%s changed IP from %s to %s", service.Namespace, service.Name, service.Status.LoadBalancer.Ingress[0].IP, service.Spec.LoadBalancerIP)
139136
server, err := l.ServerWithLoadBalancer(ctx, service.Status.LoadBalancer.Ingress[0].IP)
@@ -148,6 +145,10 @@ func (l loadbalancer) syncLoadBalancer(ctx context.Context, clusterName string,
148145
}
149146
}
150147

148+
if service.Spec.LoadBalancerIP == "" {
149+
return nil, errors.New("we are only handling LoadBalancers with spec.loadBalancerID != ''")
150+
}
151+
151152
server, err := l.ServerWithLoadBalancer(ctx, service.Spec.LoadBalancerIP)
152153
if err != nil {
153154
return nil, err

0 commit comments

Comments
 (0)