Skip to content

Commit 3799ab0

Browse files
jichenjck8s-ci-robot
authored andcommitted
Fix delete pool lead to panic (#430)
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 5d49331 commit 3799ab0

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
@@ -226,7 +226,7 @@ func (a *Actuator) Delete(ctx context.Context, cluster *clusterv1.Cluster, machi
226226
return err
227227
}
228228
if clusterProviderSpec.ManagedAPIServerLoadBalancer {
229-
err = loadbalancerService.DeleteLoadBalancerMember(clusterName, machine, clusterProviderStatus)
229+
err = loadbalancerService.DeleteLoadBalancerMember(clusterName, machine, clusterProviderSpec, clusterProviderStatus)
230230
if err != nil {
231231
return err
232232
}

pkg/cloud/openstack/services/loadbalancer/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
@@ -275,14 +275,20 @@ func (s *Service) DeleteLoadBalancerMember(clusterName string, machine *clusterv
275275

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

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

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

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

0 commit comments

Comments
 (0)