Skip to content

Commit 9f1a352

Browse files
committed
rebase with main for new error class name
move some failure states in loadbalancer function
1 parent 01ad106 commit 9f1a352

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

controllers/openstackcluster_controller.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ func deleteBastion(scope *scope.WithLogger, cluster *clusterv1.Cluster, openStac
271271

272272
if openStackCluster.Status.Bastion != nil && openStackCluster.Status.Bastion.FloatingIP != "" {
273273
if err = networkingService.DeleteFloatingIP(openStackCluster, openStackCluster.Status.Bastion.FloatingIP); err != nil {
274-
handleUpdateOSCError(openStackCluster, fmt.Errorf("failed to delete floating IP: %w", err))
274+
handleUpdateOSCError(openStackCluster, fmt.Errorf("failed to delete floating IP: %w", err), false)
275275
return fmt.Errorf("failed to delete floating IP: %w", err)
276276
}
277277
}
@@ -330,7 +330,7 @@ func deleteBastion(scope *scope.WithLogger, cluster *clusterv1.Cluster, openStac
330330
}
331331
for _, port := range bastionStatus.Resources.Ports {
332332
if err := networkingService.DeleteInstanceTrunkAndPort(openStackCluster, port, trunkSupported); err != nil {
333-
handleUpdateOSCError(openStackCluster, fmt.Errorf("failed to delete port: %w", err))
333+
handleUpdateOSCError(openStackCluster, fmt.Errorf("failed to delete port: %w", err), false)
334334
return fmt.Errorf("failed to delete port: %w", err)
335335
}
336336
}
@@ -644,7 +644,7 @@ func resolveLoadBalancerNetwork(openStackCluster *infrav1.OpenStackCluster, netw
644644
if lbSpec.Network != nil {
645645
lbNet, err := networkingService.GetNetworkByParam(lbSpec.Network)
646646
if err != nil {
647-
if errors.Is(err, capoerrors.ErrMultipleMatches) || errors.Is(err, networking.ErrNoMatches) {
647+
if errors.Is(err, capoerrors.ErrFilterMatch) {
648648
handleUpdateOSCError(openStackCluster, fmt.Errorf("failed to find loadbalancer network: %w", err), true)
649649
}
650650
return fmt.Errorf("failed to find network: %w", err)
@@ -817,11 +817,7 @@ func reconcileControlPlaneEndpoint(scope *scope.WithLogger, networkingService *n
817817

818818
terminalFailure, err := loadBalancerService.ReconcileLoadBalancer(openStackCluster, clusterResourceName, apiServerPort)
819819
if err != nil {
820-
// if it's terminalFailure (not Transient), set the Failure reason and message
821-
if terminalFailure {
822-
handleUpdateOSCError(openStackCluster, fmt.Errorf("failed to reconcile load balancer: %w", err), true)
823-
}
824-
return fmt.Errorf("failed to reconcile load balancer: %w", err)
820+
return fmt.Errorf("failed to reconcile load balancer: %w", err, terminalFailure)
825821
}
826822

827823
// Control plane endpoint is the floating IP if one was defined, otherwise the VIP address

pkg/cloud/services/loadbalancer/loadbalancer.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,11 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
8282

8383
lb, err := s.getOrCreateAPILoadBalancer(openStackCluster, clusterResourceName)
8484
if err != nil {
85-
return false, err
85+
if errors.Is(capoerrors.ErrFilterMatch, err) {
86+
return true, err
87+
} else {
88+
return false, err
89+
}
8690
}
8791

8892
lbStatus.Name = lb.Name
@@ -107,7 +111,11 @@ func (s *Service) ReconcileLoadBalancer(openStackCluster *infrav1.OpenStackClust
107111

108112
fp, err := s.networkingService.GetOrCreateFloatingIP(openStackCluster, openStackCluster, clusterResourceName, floatingIPAddress)
109113
if err != nil {
110-
return false, err
114+
if errors.Is(capoerrors.ErrFilterMatch, err) {
115+
return true, err
116+
} else {
117+
return false, err
118+
}
111119
}
112120

113121
// Write the floating IP to the status immediately so we won't

0 commit comments

Comments
 (0)