@@ -18,11 +18,11 @@ package controllers
1818
1919import (
2020 "context"
21+ "errors"
2122 "fmt"
2223 "reflect"
2324 "time"
2425
25- "github.com/pkg/errors"
2626 corev1 "k8s.io/api/core/v1"
2727 apierrors "k8s.io/apimachinery/pkg/api/errors"
2828 "k8s.io/client-go/tools/record"
@@ -109,7 +109,7 @@ func (r *OpenStackClusterReconciler) Reconcile(ctx context.Context, req ctrl.Req
109109 defer func () {
110110 if err := patchHelper .Patch (ctx , openStackCluster ); err != nil {
111111 if reterr == nil {
112- reterr = errors . Wrapf ( err , "error patching OpenStackCluster %s/%s" , openStackCluster .Namespace , openStackCluster .Name )
112+ reterr = fmt . Errorf ( "error patching OpenStackCluster %s/%s: %w " , openStackCluster .Namespace , openStackCluster .Name , err )
113113 }
114114 }
115115 }()
@@ -157,8 +157,8 @@ func (r *OpenStackClusterReconciler) reconcileDelete(ctx context.Context, scope
157157 clusterName := fmt .Sprintf ("%s-%s" , cluster .Namespace , cluster .Name )
158158
159159 if err = networkingService .DeletePorts (openStackCluster ); err != nil {
160- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete ports: %v " , err ))
161- return reconcile.Result {}, errors . Wrap ( err , "failed to delete ports" )
160+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete ports: %w " , err ))
161+ return reconcile.Result {}, fmt . Errorf ( "failed to delete ports: %w" , err )
162162 }
163163
164164 if openStackCluster .Spec .APIServerLoadBalancer .Enabled {
@@ -168,26 +168,26 @@ func (r *OpenStackClusterReconciler) reconcileDelete(ctx context.Context, scope
168168 }
169169
170170 if err = loadBalancerService .DeleteLoadBalancer (openStackCluster , clusterName ); err != nil {
171- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete load balancer: %v " , err ))
172- return reconcile.Result {}, errors .Errorf ("failed to delete load balancer: %v " , err )
171+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete load balancer: %w " , err ))
172+ return reconcile.Result {}, fmt .Errorf ("failed to delete load balancer: %w " , err )
173173 }
174174 }
175175
176176 if err = networkingService .DeleteSecurityGroups (openStackCluster , clusterName ); err != nil {
177- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete security groups: %v " , err ))
178- return reconcile.Result {}, errors .Errorf ("failed to delete security groups: %v " , err )
177+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete security groups: %w " , err ))
178+ return reconcile.Result {}, fmt .Errorf ("failed to delete security groups: %w " , err )
179179 }
180180
181181 // if NodeCIDR was not set, no network was created.
182182 if openStackCluster .Spec .NodeCIDR != "" {
183183 if err = networkingService .DeleteRouter (openStackCluster , clusterName ); err != nil {
184- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete router: %v " , err ))
185- return ctrl.Result {}, errors .Errorf ("failed to delete router: %v " , err )
184+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete router: %w " , err ))
185+ return ctrl.Result {}, fmt .Errorf ("failed to delete router: %w " , err )
186186 }
187187
188188 if err = networkingService .DeleteNetwork (openStackCluster , clusterName ); err != nil {
189- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete network: %v " , err ))
190- return ctrl.Result {}, errors .Errorf ("failed to delete network: %v " , err )
189+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete network: %w " , err ))
190+ return ctrl.Result {}, fmt .Errorf ("failed to delete network: %w " , err )
191191 }
192192 }
193193
@@ -232,24 +232,24 @@ func deleteBastion(scope scope.Scope, cluster *clusterv1.Cluster, openStackClust
232232 for _ , address := range addresses {
233233 if address .Type == corev1 .NodeExternalIP {
234234 if err = networkingService .DeleteFloatingIP (openStackCluster , address .Address ); err != nil {
235- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete floating IP: %v " , err ))
236- return errors .Errorf ("failed to delete floating IP: %v" , err )
235+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete floating IP: %w " , err ))
236+ return fmt .Errorf ("failed to delete floating IP: %v" , err )
237237 }
238238 }
239239 }
240240
241241 rootVolume := openStackCluster .Spec .Bastion .Instance .RootVolume
242242 if err = computeService .DeleteInstance (openStackCluster , instanceStatus , instanceName , rootVolume ); err != nil {
243- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete bastion: %v " , err ))
244- return errors .Errorf ("failed to delete bastion: %v " , err )
243+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete bastion: %w " , err ))
244+ return fmt .Errorf ("failed to delete bastion: %w " , err )
245245 }
246246 }
247247
248248 openStackCluster .Status .Bastion = nil
249249
250250 if err = networkingService .DeleteBastionSecurityGroup (openStackCluster , fmt .Sprintf ("%s-%s" , cluster .Namespace , cluster .Name )); err != nil {
251- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to delete bastion security group: %v " , err ))
252- return errors .Errorf ("failed to delete bastion security group: %v " , err )
251+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to delete bastion security group: %w " , err ))
252+ return fmt .Errorf ("failed to delete bastion security group: %w " , err )
253253 }
254254 openStackCluster .Status .BastionSecurityGroup = nil
255255
@@ -323,7 +323,7 @@ func reconcileBastion(scope scope.Scope, cluster *clusterv1.Cluster, openStackCl
323323 instanceSpec := bastionToInstanceSpec (openStackCluster , cluster .Name )
324324 bastionHash , err := compute .HashInstanceSpec (instanceSpec )
325325 if err != nil {
326- return errors . Wrap ( err , "failed computing bastion hash from instance spec" )
326+ return fmt . Errorf ( "failed computing bastion hash from instance spec: %w" , err )
327327 }
328328
329329 instanceStatus , err := computeService .GetInstanceStatusByName (openStackCluster , fmt .Sprintf ("%s-bastion" , cluster .Name ))
@@ -351,7 +351,7 @@ func reconcileBastion(scope scope.Scope, cluster *clusterv1.Cluster, openStackCl
351351
352352 instanceStatus , err = computeService .CreateInstance (openStackCluster , openStackCluster , instanceSpec , cluster .Name , true )
353353 if err != nil {
354- return errors .Errorf ("failed to reconcile bastion: %v " , err )
354+ return fmt .Errorf ("failed to reconcile bastion: %w " , err )
355355 }
356356
357357 networkingService , err := networking .NewService (scope )
@@ -361,19 +361,19 @@ func reconcileBastion(scope scope.Scope, cluster *clusterv1.Cluster, openStackCl
361361 clusterName := fmt .Sprintf ("%s-%s" , cluster .Namespace , cluster .Name )
362362 fp , err := networkingService .GetOrCreateFloatingIP (openStackCluster , openStackCluster , clusterName , openStackCluster .Spec .Bastion .Instance .FloatingIP )
363363 if err != nil {
364- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to get or create floating IP for bastion: %v " , err ))
365- return errors .Errorf ("failed to get or create floating IP for bastion: %v " , err )
364+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to get or create floating IP for bastion: %w " , err ))
365+ return fmt .Errorf ("failed to get or create floating IP for bastion: %w " , err )
366366 }
367367 port , err := computeService .GetManagementPort (openStackCluster , instanceStatus )
368368 if err != nil {
369- err = errors .Errorf ("getting management port for bastion: %v " , err )
369+ err = fmt .Errorf ("getting management port for bastion: %w " , err )
370370 handleUpdateOSCError (openStackCluster , err )
371371 return err
372372 }
373373 err = networkingService .AssociateFloatingIP (openStackCluster , fp , port .ID )
374374 if err != nil {
375- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to associate floating IP with bastion: %v " , err ))
376- return errors .Errorf ("failed to associate floating IP with bastion: %v " , err )
375+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to associate floating IP with bastion: %w " , err ))
376+ return fmt .Errorf ("failed to associate floating IP with bastion: %w " , err )
377377 }
378378
379379 bastion , err := instanceStatus .BastionStatus (openStackCluster )
@@ -433,8 +433,8 @@ func reconcileNetworkComponents(scope scope.Scope, cluster *clusterv1.Cluster, o
433433
434434 err = networkingService .ReconcileExternalNetwork (openStackCluster )
435435 if err != nil {
436- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to reconcile external network: %v " , err ))
437- return errors .Errorf ("failed to reconcile external network: %v " , err )
436+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to reconcile external network: %w " , err ))
437+ return fmt .Errorf ("failed to reconcile external network: %w " , err )
438438 }
439439
440440 if openStackCluster .Spec .NodeCIDR == "" {
@@ -443,16 +443,16 @@ func reconcileNetworkComponents(scope scope.Scope, cluster *clusterv1.Cluster, o
443443 netOpts := openStackCluster .Spec .Network .ToListOpt ()
444444 networkList , err := networkingService .GetNetworksByFilter (& netOpts )
445445 if err != nil {
446- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to find network: %v " , err ))
447- return errors .Errorf ("failed to find network: %v " , err )
446+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to find network: %w " , err ))
447+ return fmt .Errorf ("failed to find network: %w " , err )
448448 }
449449 if len (networkList ) == 0 {
450- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to find any network: %v " , err ))
451- return errors .Errorf ("failed to find any network: %v " , err )
450+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to find any network: %w " , err ))
451+ return fmt .Errorf ("failed to find any network: %w " , err )
452452 }
453453 if len (networkList ) > 1 {
454- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to find only one network (result: %v): %v " , networkList , err ))
455- return errors .Errorf ("failed to find only one network (result: %v): %v " , networkList , err )
454+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to find only one network (result: %v): %w " , networkList , err ))
455+ return fmt .Errorf ("failed to find only one network (result: %v): %w " , networkList , err )
456456 }
457457 if openStackCluster .Status .Network == nil {
458458 openStackCluster .Status .Network = & infrav1.Network {}
@@ -482,25 +482,25 @@ func reconcileNetworkComponents(scope scope.Scope, cluster *clusterv1.Cluster, o
482482 } else {
483483 err := networkingService .ReconcileNetwork (openStackCluster , clusterName )
484484 if err != nil {
485- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to reconcile network: %v " , err ))
486- return errors .Errorf ("failed to reconcile network: %v " , err )
485+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to reconcile network: %w " , err ))
486+ return fmt .Errorf ("failed to reconcile network: %w " , err )
487487 }
488488 err = networkingService .ReconcileSubnet (openStackCluster , clusterName )
489489 if err != nil {
490- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to reconcile subnets: %v " , err ))
491- return errors .Errorf ("failed to reconcile subnets: %v " , err )
490+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to reconcile subnets: %w " , err ))
491+ return fmt .Errorf ("failed to reconcile subnets: %w " , err )
492492 }
493493 err = networkingService .ReconcileRouter (openStackCluster , clusterName )
494494 if err != nil {
495- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to reconcile router: %v " , err ))
496- return errors .Errorf ("failed to reconcile router: %v " , err )
495+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to reconcile router: %w " , err ))
496+ return fmt .Errorf ("failed to reconcile router: %w " , err )
497497 }
498498 }
499499
500500 err = networkingService .ReconcileSecurityGroups (openStackCluster , clusterName )
501501 if err != nil {
502- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to reconcile security groups: %v " , err ))
503- return errors .Errorf ("failed to reconcile security groups: %v " , err )
502+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to reconcile security groups: %w " , err ))
503+ return fmt .Errorf ("failed to reconcile security groups: %w " , err )
504504 }
505505
506506 // Calculate the port that we will use for the API server
@@ -522,8 +522,8 @@ func reconcileNetworkComponents(scope scope.Scope, cluster *clusterv1.Cluster, o
522522
523523 err = loadBalancerService .ReconcileLoadBalancer (openStackCluster , clusterName , apiServerPort )
524524 if err != nil {
525- handleUpdateOSCError (openStackCluster , errors .Errorf ("failed to reconcile load balancer: %v " , err ))
526- return errors .Errorf ("failed to reconcile load balancer: %v " , err )
525+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("failed to reconcile load balancer: %w " , err ))
526+ return fmt .Errorf ("failed to reconcile load balancer: %w " , err )
527527 }
528528 }
529529
@@ -541,8 +541,8 @@ func reconcileNetworkComponents(scope scope.Scope, cluster *clusterv1.Cluster, o
541541 // If floating IPs are not disabled, get one to use as the VIP for the control plane
542542 fp , err := networkingService .GetOrCreateFloatingIP (openStackCluster , openStackCluster , clusterName , openStackCluster .Spec .APIServerFloatingIP )
543543 if err != nil {
544- handleUpdateOSCError (openStackCluster , errors .Errorf ("Floating IP cannot be got or created: %v " , err ))
545- return errors .Errorf ("Floating IP cannot be got or created: %v " , err )
544+ handleUpdateOSCError (openStackCluster , fmt .Errorf ("Floating IP cannot be got or created: %w " , err ))
545+ return fmt .Errorf ("Floating IP cannot be got or created: %w " , err )
546546 }
547547 host = fp .FloatingIP
548548 case openStackCluster .Spec .APIServerFixedIP != "" :
@@ -555,7 +555,7 @@ func reconcileNetworkComponents(scope scope.Scope, cluster *clusterv1.Cluster, o
555555 // accordingly when creating control plane machines
556556 // However this would require us to deploy software on the control plane hosts to manage the
557557 // VIP (e.g. keepalived/kube-vip)
558- return errors . New ("unable to determine VIP for API server" )
558+ return fmt . Errorf ("unable to determine VIP for API server" )
559559 }
560560
561561 // Set APIEndpoints so the Cluster API Cluster Controller can pull them
0 commit comments