Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions controllers/reconcile_cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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")
Expand All @@ -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)
}
Expand Down
6 changes: 3 additions & 3 deletions controllers/reconcile_finalizer.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ 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.
// But we can't delete it before because the DownwardAPI doesn't update once a Pod enters Terminating.
// 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
Expand Down Expand Up @@ -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)
}
}

Expand Down
2 changes: 1 addition & 1 deletion controllers/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())
Expand Down
2 changes: 1 addition & 1 deletion internal/resource/configmap.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion internal/resource/default_user_secret.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion internal/resource/erlang_cookie.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion internal/resource/headless_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion internal/resource/rabbitmq_plugins.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion internal/resource/role.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
2 changes: 1 addition & 1 deletion internal/resource/role_binding.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down
12 changes: 6 additions & 6 deletions internal/resource/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion internal/resource/service_account.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
16 changes: 8 additions & 8 deletions internal/resource/statefulset.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand Down Expand Up @@ -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])
}
Expand Down Expand Up @@ -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)

Expand All @@ -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)
Expand Down
6 changes: 3 additions & 3 deletions system_tests/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down