diff --git a/internal/controller/helmrelease_controller.go b/internal/controller/helmrelease_controller.go index 10648ae67..43970c2ba 100644 --- a/internal/controller/helmrelease_controller.go +++ b/internal/controller/helmrelease_controller.go @@ -259,6 +259,7 @@ func (r *HelmReleaseReconciler) reconcileRelease(ctx context.Context, patchHelpe conditions.MarkStalled(obj, aclv1.AccessDeniedReason, err.Error()) conditions.MarkFalse(obj, meta.ReadyCondition, aclv1.AccessDeniedReason, err.Error()) conditions.Delete(obj, meta.ReconcilingCondition) + r.Eventf(obj, eventv1.EventSeverityError, aclv1.AccessDeniedReason, err.Error()) // Recovering from this is not possible without a restart of the // controller or a change of spec, both triggering a new @@ -293,6 +294,7 @@ func (r *HelmReleaseReconciler) reconcileRelease(ctx context.Context, patchHelpe values, err := chartutil.ChartValuesFromReferences(ctx, r.Client, obj.Namespace, obj.GetValues(), obj.Spec.ValuesFrom...) if err != nil { conditions.MarkFalse(obj, meta.ReadyCondition, "ValuesError", err.Error()) + r.Eventf(obj, eventv1.EventSeverityError, "ValuesError", err.Error()) return ctrl.Result{}, err } // Remove any stale corresponding Ready=False condition with Unknown. @@ -311,6 +313,7 @@ func (r *HelmReleaseReconciler) reconcileRelease(ctx context.Context, patchHelpe } conditions.MarkFalse(obj, meta.ReadyCondition, v2.ArtifactFailedReason, fmt.Sprintf("Could not load chart: %s", err.Error())) + r.Eventf(obj, eventv1.EventSeverityError, v2.ArtifactFailedReason, err.Error()) return ctrl.Result{}, err } // Remove any stale corresponding Ready=False condition with Unknown. diff --git a/internal/controller/helmrelease_controller_test.go b/internal/controller/helmrelease_controller_test.go index 5de31ad33..54166b445 100644 --- a/internal/controller/helmrelease_controller_test.go +++ b/internal/controller/helmrelease_controller_test.go @@ -166,6 +166,7 @@ func TestHelmReleaseReconciler_reconcileRelease(t *testing.T) { WithStatusSubresource(&v2.HelmRelease{}). WithObjects(obj). Build(), + EventRecorder: record.NewFakeRecorder(32), } res, err := r.reconcileRelease(context.TODO(), patch.NewSerialPatcher(obj, r.Client), obj) @@ -383,6 +384,7 @@ func TestHelmReleaseReconciler_reconcileRelease(t *testing.T) { WithStatusSubresource(&v2.HelmRelease{}). WithObjects(chart, obj). Build(), + EventRecorder: record.NewFakeRecorder(32), } _, err := r.reconcileRelease(context.TODO(), patch.NewSerialPatcher(obj, r.Client), obj)