@@ -114,23 +114,24 @@ func (c *Controller) handleClusterScans(ctx context.Context) error {
114114
115115 objects = append (objects , cisjob .New (obj , profile , c .Name , c .ImageConfig ), cmMap ["configcm" ], cmMap ["plugincm" ], cmMap ["skipConfigcm" ], service )
116116
117- if obj . Spec . ScheduledScanConfig != nil && obj . Spec . ScheduledScanConfig . ScanAlertRule != nil {
118- if obj .Spec .ScheduledScanConfig . ScanAlertRule . AlertOnComplete || obj . Spec . ScheduledScanConfig . ScanAlertRule . AlertOnFailure {
119- if obj .Status . ScanAlertingRuleName == "" {
120- alertRule , err := cisalert . NewPrometheusRule (obj , profile , c . ImageConfig )
121- if err != nil {
122- v1 . ClusterScanConditionReconciling . True (obj )
123- return objects , obj . Status , fmt . Errorf ( "Error when trying to create a PrometheusRule: %v" , err )
124- }
125- ruleCreated , err := c . monitoringClient . PrometheusRules ( v1 . ClusterScanNS ). Create ( ctx , alertRule , metav1. CreateOptions {} )
126- if err != nil {
127- logrus . Errorf ( "Alerts will not be sent out for this scan %v due to this error when creating PrometheusRule: %v" , obj . Name , err )
128- } else {
129- obj . Status . ScanAlertingRuleName = ruleCreated .Name
130- }
131- }
117+ if c . ImageConfig . AlertEnabled &&
118+ obj .Spec .ScheduledScanConfig != nil &&
119+ obj .Spec . ScheduledScanConfig . ScanAlertRule != nil &&
120+ (obj . Spec . ScheduledScanConfig . ScanAlertRule . AlertOnComplete || obj . Spec . ScheduledScanConfig . ScanAlertRule . AlertOnFailure ) &&
121+ obj . Status . ScanAlertingRuleName == "" {
122+ alertRule , err := cisalert . NewPrometheusRule (obj , profile , c . ImageConfig )
123+ if err != nil {
124+ v1 . ClusterScanConditionReconciling . True ( obj )
125+ return objects , obj . Status , fmt . Errorf ( "Error when trying to create a PrometheusRule: %v" , err )
126+ }
127+ ruleCreated , err := c . monitoringClient . PrometheusRules ( v1 . ClusterScanNS ). Create ( ctx , alertRule , metav1. CreateOptions {} )
128+ if err != nil {
129+ logrus . Errorf ( "Alerts will not be sent out for this scan %v due to this error when creating PrometheusRule: %v" , obj .Name , err )
130+ } else {
131+ obj . Status . ScanAlertingRuleName = ruleCreated . Name
132132 }
133133 }
134+
134135 if v1 .ClusterScanConditionFailed .IsTrue (obj ) {
135136 //clear the earlier failed status
136137 v1 .ClusterScanConditionFailed .False (obj )
0 commit comments