Skip to content

Commit bd596c1

Browse files
committed
fix: reduce audit condition event noise
1 parent 7b2c4ff commit bd596c1

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

controllers/mondooauditconfig_controller.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,7 @@ func (r *MondooAuditConfigReconciler) Reconcile(ctx context.Context, req ctrl.Re
232232

233233
deferFuncErr = mondoo.UpdateMondooAuditStatus(deferCtx, r.Client, mondooAuditConfigCopy, mondooAuditConfig, log)
234234
if deferFuncErr == nil {
235+
// mondooAuditConfigCopy holds the original conditions; mondooAuditConfig was updated in-place.
235236
r.recordConditionEvents(mondooAuditConfig, mondooAuditConfigCopy.Status.Conditions, mondooAuditConfig.Status.Conditions)
236237
}
237238
// do not overwrite errors which happened before the defered function is called
@@ -378,7 +379,12 @@ func (r *MondooAuditConfigReconciler) recordConditionEvents(
378379
}
379380

380381
for _, condition := range newConditions {
381-
if oldCondition, ok := oldByType[condition.Type]; ok && conditionEventFieldsEqual(oldCondition, condition) {
382+
oldCondition, ok := oldByType[condition.Type]
383+
if ok {
384+
if conditionEventFieldsEqual(oldCondition, condition) {
385+
continue
386+
}
387+
} else if condition.Status == corev1.ConditionFalse {
382388
continue
383389
}
384390

controllers/mondooauditconfig_controller_test.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,12 @@ func TestRecordConditionEvents(t *testing.T) {
572572
Reason: "KubernetesResourcesScanningAvailable",
573573
Message: "Kubernetes Resources Scanning is available",
574574
},
575+
{
576+
Type: v1alpha2.NodeScanningDegraded,
577+
Status: corev1.ConditionTrue,
578+
Reason: "NodeScanningUnavailable",
579+
Message: "Node Scanning is unavailable",
580+
},
575581
}
576582
newConditions := []v1alpha2.MondooAuditConfigCondition{
577583
{
@@ -595,6 +601,25 @@ func TestRecordConditionEvents(t *testing.T) {
595601
assertNoRecordedEvent(t, recorder)
596602
}
597603

604+
func TestRecordConditionEventsSkipsInitialHealthyConditions(t *testing.T) {
605+
config := testMondooAuditConfig()
606+
recorder := record.NewFakeRecorder(1)
607+
reconciler := &MondooAuditConfigReconciler{EventRecorder: recorder}
608+
609+
newConditions := []v1alpha2.MondooAuditConfigCondition{
610+
{
611+
Type: v1alpha2.K8sContainerImageScanningDegraded,
612+
Status: corev1.ConditionFalse,
613+
Reason: "KubernetesContainerImageScanningAvailable",
614+
Message: "Kubernetes Container Image Scanning is available",
615+
},
616+
}
617+
618+
reconciler.recordConditionEvents(config, nil, newConditions)
619+
620+
assertNoRecordedEvent(t, recorder)
621+
}
622+
598623
func TestRecordConditionEventsSkipsUnchangedConditions(t *testing.T) {
599624
config := testMondooAuditConfig()
600625
recorder := record.NewFakeRecorder(1)

0 commit comments

Comments
 (0)