diff --git a/controllers/reconcile_cli.go b/controllers/reconcile_cli.go index dc0339a8f..c0867e854 100644 --- a/controllers/reconcile_cli.go +++ b/controllers/reconcile_cli.go @@ -74,7 +74,7 @@ func (r *RabbitmqClusterReconciler) runEnableFeatureFlagsCommand(ctx context.Con msg := "failed to enable all feature flags on pod" logger.Error(err, msg, "pod", podName, "command", cmd, "stdout", stdout, "stderr", stderr) r.Recorder.Event(rmq, corev1.EventTypeWarning, "FailedReconcile", fmt.Sprintf("%s %s", msg, podName)) - return fmt.Errorf("%s %s: %v", msg, podName, err) + return fmt.Errorf("%s %s: %w", msg, podName, err) } logger.Info("successfully enabled all feature flags") return r.deleteAnnotation(ctx, sts, stsCreateAnnotation) @@ -95,7 +95,7 @@ func (r *RabbitmqClusterReconciler) runSetPluginsCommand(ctx context.Context, rm msg := "failed to set plugins on pod" logger.Error(err, msg, "pod", podName, "command", cmd, "stdout", stdout, "stderr", stderr) r.Recorder.Event(rmq, corev1.EventTypeWarning, "FailedReconcile", fmt.Sprintf("%s %s", msg, podName)) - return fmt.Errorf("%s %s: %v", msg, podName, err) + return fmt.Errorf("%s %s: %w", msg, podName, err) } } logger.Info("successfully set plugins") @@ -111,7 +111,7 @@ func (r *RabbitmqClusterReconciler) runQueueRebalanceCommand(ctx context.Context msg := "failed to run queue rebalance on pod" logger.Error(err, msg, "pod", podName, "command", cmd, "stdout", stdout, "stderr", stderr) r.Recorder.Event(rmq, corev1.EventTypeWarning, "FailedReconcile", fmt.Sprintf("%s %s", msg, podName)) - return fmt.Errorf("%s %s: %v", msg, podName, err) + return fmt.Errorf("%s %s: %w", msg, podName, err) } return r.deleteAnnotation(ctx, rmq, queueRebalanceAnnotation) } diff --git a/controllers/reconcile_finalizer.go b/controllers/reconcile_finalizer.go index 5987384b2..566976225 100644 --- a/controllers/reconcile_finalizer.go +++ b/controllers/reconcile_finalizer.go @@ -53,7 +53,7 @@ func (r *RabbitmqClusterReconciler) prepareForDeletion(ctx context.Context, rabb } // Add label on all Pods to be picked up in pre-stop hook via Downward API if err := r.addRabbitmqDeletionLabel(ctx, rabbitmqCluster); err != nil { - return fmt.Errorf("failed to add deletion markers to RabbitmqCluster Pods: %s", err.Error()) + return fmt.Errorf("failed to add deletion markers to RabbitmqCluster Pods: %w", err) } // Delete StatefulSet immediately after changing pod labels to minimize risk of them respawning. // There is a window where the StatefulSet could respawn Pods without the deletion label in this order. @@ -61,7 +61,7 @@ func (r *RabbitmqClusterReconciler) prepareForDeletion(ctx context.Context, rabb // Addressing #648: if both rabbitmqCluster and the statefulSet returned by r.Get() are stale (and match each other), // setting the stale statefulSet's uid in the precondition can avoid mis-deleting any currently running statefulSet sharing the same name. if err := r.Client.Delete(ctx, sts, &client.DeleteOptions{Preconditions: &metav1.Preconditions{UID: &uid}}); client.IgnoreNotFound(err) != nil { - return fmt.Errorf("cannot delete StatefulSet: %s", err.Error()) + return fmt.Errorf("cannot delete StatefulSet: %w", err) } return nil @@ -95,7 +95,7 @@ func (r *RabbitmqClusterReconciler) addRabbitmqDeletionLabel(ctx context.Context pod := &pods.Items[i] pod.Labels[resource.DeletionMarker] = "true" if err := r.Client.Update(ctx, pod); client.IgnoreNotFound(err) != nil { - return fmt.Errorf("cannot Update Pod %s in Namespace %s: %s", pod.Name, pod.Namespace, err.Error()) + return fmt.Errorf("cannot Update Pod %s in Namespace %s: %w", pod.Name, pod.Namespace, err) } } diff --git a/controllers/utils.go b/controllers/utils.go index cb236520f..6503d5fbf 100644 --- a/controllers/utils.go +++ b/controllers/utils.go @@ -73,7 +73,7 @@ func (r *RabbitmqClusterReconciler) statefulSetUID(ctx context.Context, rmq *rab var sts *appsv1.StatefulSet var ref *metav1.OwnerReference if sts, err = r.statefulSet(ctx, rmq); err != nil { - return "", fmt.Errorf("failed to get statefulSet: %s", err.Error()) + return "", fmt.Errorf("failed to get statefulSet: %w", err) } if ref = metav1.GetControllerOf(sts); ref == nil { return "", fmt.Errorf("failed to get controller reference for statefulSet %s", sts.GetName()) diff --git a/internal/resource/configmap.go b/internal/resource/configmap.go index 0074d070c..d13f80ef0 100644 --- a/internal/resource/configmap.go +++ b/internal/resource/configmap.go @@ -240,7 +240,7 @@ func (builder *ServerConfigMapBuilder) Update(object client.Object) error { updateProperty(configMap.Data, "rabbitmq-env.conf", rmqProperties.EnvConfig) if err := controllerutil.SetControllerReference(builder.Instance, configMap, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil diff --git a/internal/resource/default_user_secret.go b/internal/resource/default_user_secret.go index b623c8f4e..df10e67a7 100644 --- a/internal/resource/default_user_secret.go +++ b/internal/resource/default_user_secret.go @@ -89,7 +89,7 @@ func (builder *DefaultUserSecretBuilder) Update(object client.Object) error { builder.updatePorts(secret) if err := controllerutil.SetControllerReference(builder.Instance, secret, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil diff --git a/internal/resource/erlang_cookie.go b/internal/resource/erlang_cookie.go index d40fc6757..0cd4e084d 100644 --- a/internal/resource/erlang_cookie.go +++ b/internal/resource/erlang_cookie.go @@ -62,7 +62,7 @@ func (builder *ErlangCookieBuilder) Update(object client.Object) error { secret.Annotations = metadata.ReconcileAndFilterAnnotations(secret.GetAnnotations(), builder.Instance.Annotations) if err := controllerutil.SetControllerReference(builder.Instance, secret, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil diff --git a/internal/resource/headless_service.go b/internal/resource/headless_service.go index 1cbdc1abc..4a5bcc2cc 100644 --- a/internal/resource/headless_service.go +++ b/internal/resource/headless_service.go @@ -73,7 +73,7 @@ func (builder *HeadlessServiceBuilder) Update(object client.Object) error { } if err := controllerutil.SetControllerReference(builder.Instance, service, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil diff --git a/internal/resource/rabbitmq_plugins.go b/internal/resource/rabbitmq_plugins.go index 2201f9cdb..ff9e9ceff 100644 --- a/internal/resource/rabbitmq_plugins.go +++ b/internal/resource/rabbitmq_plugins.go @@ -57,7 +57,7 @@ func (builder *RabbitmqPluginsConfigMapBuilder) Update(object client.Object) err configMap.Data["enabled_plugins"] = desiredPluginsAsString(builder.Instance.Spec.Rabbitmq.AdditionalPlugins) if err := controllerutil.SetControllerReference(builder.Instance, configMap, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil } diff --git a/internal/resource/role.go b/internal/resource/role.go index 9f8bea46c..a6b005159 100644 --- a/internal/resource/role.go +++ b/internal/resource/role.go @@ -63,7 +63,7 @@ func (builder *RoleBuilder) Update(object client.Object) error { } if err := controllerutil.SetControllerReference(builder.Instance, role, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil } diff --git a/internal/resource/role_binding.go b/internal/resource/role_binding.go index f7e313cdc..e83876761 100644 --- a/internal/resource/role_binding.go +++ b/internal/resource/role_binding.go @@ -53,7 +53,7 @@ func (builder *RoleBindingBuilder) Update(object client.Object) error { } if err := controllerutil.SetControllerReference(builder.Instance, roleBinding, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil } diff --git a/internal/resource/service.go b/internal/resource/service.go index 4107beaa2..22f8dfba4 100644 --- a/internal/resource/service.go +++ b/internal/resource/service.go @@ -69,12 +69,12 @@ func (builder *ServiceBuilder) Update(object client.Object) error { if builder.Instance.Spec.Override.Service != nil { if err := applySvcOverride(service, builder.Instance.Spec.Override.Service); err != nil { - return fmt.Errorf("failed applying Service override: %v", err) + return fmt.Errorf("failed applying Service override: %w", err) } } if err := controllerutil.SetControllerReference(builder.Instance, service, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil @@ -88,23 +88,23 @@ func applySvcOverride(svc *corev1.Service, override *rabbitmqv1beta1.Service) er if override.Spec != nil { originalSvcSpec, err := json.Marshal(svc.Spec) if err != nil { - return fmt.Errorf("error marshalling Service Spec: %v", err) + return fmt.Errorf("error marshalling Service Spec: %w", err) } patch, err := json.Marshal(override.Spec) if err != nil { - return fmt.Errorf("error marshalling Service Spec override: %v", err) + return fmt.Errorf("error marshalling Service Spec override: %w", err) } patchedJSON, err := strategicpatch.StrategicMergePatch(originalSvcSpec, patch, corev1.ServiceSpec{}) if err != nil { - return fmt.Errorf("error patching Service Spec: %v", err) + return fmt.Errorf("error patching Service Spec: %w", err) } patchedSvcSpec := corev1.ServiceSpec{} err = json.Unmarshal(patchedJSON, &patchedSvcSpec) if err != nil { - return fmt.Errorf("error unmarshalling patched Service Spec: %v", err) + return fmt.Errorf("error unmarshalling patched Service Spec: %w", err) } svc.Spec = patchedSvcSpec } diff --git a/internal/resource/service_account.go b/internal/resource/service_account.go index 7db766a1e..14fad1d9a 100644 --- a/internal/resource/service_account.go +++ b/internal/resource/service_account.go @@ -51,7 +51,7 @@ func (builder *ServiceAccountBuilder) Update(object client.Object) error { serviceAccount.Annotations = metadata.ReconcileAndFilterAnnotations(serviceAccount.GetAnnotations(), builder.Instance.Annotations) if err := controllerutil.SetControllerReference(builder.Instance, serviceAccount, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil } diff --git a/internal/resource/statefulset.go b/internal/resource/statefulset.go index 8e8a20ee9..b3cef4fb2 100644 --- a/internal/resource/statefulset.go +++ b/internal/resource/statefulset.go @@ -125,12 +125,12 @@ func (builder *StatefulSetBuilder) Update(object client.Object) error { if builder.Instance.Spec.Override.StatefulSet != nil { if err := applyStsOverride(builder.Instance, builder.Scheme, sts, builder.Instance.Spec.Override.StatefulSet); err != nil { - return fmt.Errorf("failed applying StatefulSet override: %v", err) + return fmt.Errorf("failed applying StatefulSet override: %w", err) } } if err := controllerutil.SetControllerReference(builder.Instance, sts, builder.Scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } return nil } @@ -177,7 +177,7 @@ func applyStsOverride(instance *rabbitmqv1beta1.RabbitmqCluster, scheme *runtime pvcOverride[i].Namespace = sts.Namespace // PVC should always be in the same namespace as the Stateful Set pvcOverride[i].Spec = volumeClaimTemplatesOverride[i].Spec if err := controllerutil.SetControllerReference(instance, &pvcOverride[i], scheme); err != nil { - return fmt.Errorf("failed setting controller reference: %v", err) + return fmt.Errorf("failed setting controller reference: %w", err) } disableBlockOwnerDeletion(pvcOverride[i]) } @@ -227,7 +227,7 @@ func persistentVolumeClaim(instance *rabbitmqv1beta1.RabbitmqCluster, scheme *ru } if err := controllerutil.SetControllerReference(instance, &pvc, scheme); err != nil { - return []corev1.PersistentVolumeClaim{}, fmt.Errorf("failed setting controller reference: %v", err) + return []corev1.PersistentVolumeClaim{}, fmt.Errorf("failed setting controller reference: %w", err) } disableBlockOwnerDeletion(pvc) @@ -245,23 +245,23 @@ func disableBlockOwnerDeletion(pvc corev1.PersistentVolumeClaim) { func patchPodSpec(podSpec, podSpecOverride *corev1.PodSpec) (corev1.PodSpec, error) { originalPodSpec, err := json.Marshal(podSpec) if err != nil { - return corev1.PodSpec{}, fmt.Errorf("error marshalling statefulSet podSpec: %v", err) + return corev1.PodSpec{}, fmt.Errorf("error marshalling statefulSet podSpec: %w", err) } patch, err := json.Marshal(podSpecOverride) if err != nil { - return corev1.PodSpec{}, fmt.Errorf("error marshalling statefulSet podSpec override: %v", err) + return corev1.PodSpec{}, fmt.Errorf("error marshalling statefulSet podSpec override: %w", err) } patchedJSON, err := strategicpatch.StrategicMergePatch(originalPodSpec, patch, corev1.PodSpec{}) if err != nil { - return corev1.PodSpec{}, fmt.Errorf("error patching podSpec: %v", err) + return corev1.PodSpec{}, fmt.Errorf("error patching podSpec: %w", err) } patchedPodSpec := corev1.PodSpec{} err = json.Unmarshal(patchedJSON, &patchedPodSpec) if err != nil { - return corev1.PodSpec{}, fmt.Errorf("error unmarshalling patched Stateful Set: %v", err) + return corev1.PodSpec{}, fmt.Errorf("error unmarshalling patched Stateful Set: %w", err) } rmqContainer := containerRabbitmq(podSpecOverride.Containers) diff --git a/system_tests/utils.go b/system_tests/utils.go index da44e1c1f..0003ce9d9 100644 --- a/system_tests/utils.go +++ b/system_tests/utils.go @@ -115,7 +115,7 @@ func makeRequest(url, httpMethod, rabbitmqUsername, rabbitmqPassword string, bod resp, err := client.Do(req) if err != nil { fmt.Printf("Failed to make api request to url %s with err: %+v \n", url, err) - return responseBody, fmt.Errorf("failed with err: %v to api endpoint: %s", err, url) + return responseBody, fmt.Errorf("failed with err: %w to api endpoint: %s", err, url) } defer resp.Body.Close() responseBody, err = ioutil.ReadAll(resp.Body) @@ -727,7 +727,7 @@ func k8sCreateTLSSecret(secretName, secretNamespace, certPath, keyPath string) e ) if err != nil { - return fmt.Errorf("Failed with error: %v\nOutput: %v\n", err.Error(), string(output)) + return fmt.Errorf("Failed with error: %w\nOutput: %v\n", err, string(output)) } return nil @@ -743,7 +743,7 @@ func k8sDeleteSecret(secretName, secretNamespace string) error { ) if err != nil { - return fmt.Errorf("Failed with error: %v\nOutput: %v\n", err.Error(), string(output)) + return fmt.Errorf("Failed with error: %w\nOutput: %v\n", err, string(output)) } return nil