Skip to content

Commit

Permalink
fix(operator): Delete scan job for workload that has been deleted (#497)
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Pacak <pacak.daniel@gmail.com>
  • Loading branch information
danielpacak committed Apr 13, 2021
1 parent 020b61d commit 69ec5b4
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions pkg/operator/controller/configauditreport.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,11 @@ func (r *ConfigAuditReportReconciler) processCompleteScanJob(ctx context.Context

ownerObj, err := r.GetObjectFromPartialObject(ctx, owner)
if err != nil {
return err
if errors.IsNotFound(err) {
log.V(1).Info("Deleting complete scan job for workload that must have been deleted")
return r.deleteJob(ctx, job)
}
return fmt.Errorf("getting object from partial object: %w", err)
}

podSpecHash, ok := job.Labels[starboard.LabelPodSpecHash]
Expand All @@ -337,15 +341,15 @@ func (r *ConfigAuditReportReconciler) processCompleteScanJob(ctx context.Context
return fmt.Errorf("expected label %s not set", starboard.LabelPluginConfigHash)
}

hasConfigAuditReport, err := r.hasReport(ctx, owner, podSpecHash, pluginConfigHash)
hasReport, err := r.hasReport(ctx, owner, podSpecHash, pluginConfigHash)
if err != nil {
return err
}

if hasConfigAuditReport {
if hasReport {
log.V(1).Info("ConfigAuditReport already exist", "owner", owner)
log.V(1).Info("Deleting complete scan job", "owner", owner)
return r.Client.Delete(ctx, job, client.PropagationPolicy(metav1.DeletePropagationBackground))
return r.deleteJob(ctx, job)
}

logsStream, err := r.LogsReader.GetLogsByJobAndContainerName(ctx, job, r.Plugin.GetContainerName())
Expand Down Expand Up @@ -373,7 +377,7 @@ func (r *ConfigAuditReportReconciler) processCompleteScanJob(ctx context.Context
return err
}
log.V(1).Info("Deleting complete scan job", "owner", owner)
return r.Client.Delete(ctx, job, client.PropagationPolicy(metav1.DeletePropagationBackground))
return r.deleteJob(ctx, job)
}

func (r *ConfigAuditReportReconciler) processFailedScanJob(ctx context.Context, scanJob *batchv1.Job) error {
Expand All @@ -392,3 +396,14 @@ func (r *ConfigAuditReportReconciler) processFailedScanJob(ctx context.Context,
log.V(1).Info("Deleting failed scan job")
return r.Client.Delete(ctx, scanJob, client.PropagationPolicy(metav1.DeletePropagationBackground))
}

func (r *ConfigAuditReportReconciler) deleteJob(ctx context.Context, job *batchv1.Job) error {
err := r.Client.Delete(ctx, job, client.PropagationPolicy(metav1.DeletePropagationBackground))
if err != nil {
if errors.IsNotFound(err) {
return nil
}
return fmt.Errorf("deleting job: %w", err)
}
return nil
}

0 comments on commit 69ec5b4

Please sign in to comment.