Skip to content

Commit e456742

Browse files
committed
Fix delete pool lead to panic
1) seems we don't need port 22, have no idea why use here 2) when pool not exist, should check and ignore following actions
1 parent d43c67f commit e456742

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

pkg/cloud/openstack/machine/actuator.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ func (a *Actuator) Delete(ctx context.Context, cluster *clusterv1.Cluster, machi
228228
}
229229

230230
if clusterProviderSpec.ManagedAPIServerLoadBalancer {
231-
err = networkingService.DeleteLoadBalancerMember(clusterName, machine, clusterProviderStatus)
231+
err = networkingService.DeleteLoadBalancerMember(clusterName, machine, clusterProviderSpec, clusterProviderStatus)
232232
if err != nil {
233233
return err
234234
}

pkg/cloud/openstack/services/networking/loadbalancer.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,7 @@ func (s *Service) ReconcileLoadBalancerMember(clusterName string, machine *clust
264264
return nil
265265
}
266266

267-
func (s *Service) DeleteLoadBalancerMember(clusterName string, machine *clusterv1.Machine, clusterProviderStatus *providerv1.OpenstackClusterProviderStatus) error {
267+
func (s *Service) DeleteLoadBalancerMember(clusterName string, machine *clusterv1.Machine, clusterProviderSpec *providerv1.OpenstackClusterProviderSpec, clusterProviderStatus *providerv1.OpenstackClusterProviderStatus) error {
268268

269269
if machine == nil || !util.IsControlPlaneMachine(machine) {
270270
return nil
@@ -274,14 +274,20 @@ func (s *Service) DeleteLoadBalancerMember(clusterName string, machine *clusterv
274274

275275
lbID := clusterProviderStatus.Network.APIServerLoadBalancer.ID
276276

277-
for _, port := range []int{22, 6443} {
277+
portList := []int{clusterProviderSpec.APIServerLoadBalancerPort}
278+
portList = append(portList, clusterProviderSpec.APIServerLoadBalancerAdditionalPorts...)
279+
for _, port := range portList {
278280
lbPortObjectsName := fmt.Sprintf("%s-%d", loadBalancerName, port)
279281
name := lbPortObjectsName + "-" + machine.Name
280282

281283
pool, err := checkIfPoolExists(s.client, lbPortObjectsName)
282284
if err != nil {
283285
return err
284286
}
287+
if pool == nil {
288+
klog.Infof("Pool %s does not exist", lbPortObjectsName)
289+
continue
290+
}
285291

286292
lbMember, err := checkIfLbMemberExists(s.client, pool.ID, name)
287293
if err != nil {

0 commit comments

Comments
 (0)