Skip to content

Commit 942dc86

Browse files
committed
workloadController: check if reused reports match container images size before deciding to fetch credentials
Signed-off-by: festeveira <[email protected]>
1 parent 6de6989 commit 942dc86

File tree

2 files changed

+12
-7
lines changed

2 files changed

+12
-7
lines changed

pkg/operator/cluster.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,6 @@ func (r *ClusterController) reconcileKbom() reconcile.Func {
270270
dbs := v1alpha1.SbomReportData{
271271
Bom: kbom.Report.Bom,
272272
}
273-
containerImageName := fmt.Sprintf("%s/%s:%s", K8sRegistry, K8sRepo, r.version)
274273
// trigger kbom scan job
275274
err = r.SubmitScanJob(ctx, &corev1.Pod{
276275
TypeMeta: metav1.TypeMeta{
@@ -283,10 +282,10 @@ func (r *ClusterController) reconcileKbom() reconcile.Func {
283282
Spec: corev1.PodSpec{
284283
Containers: []corev1.Container{{
285284
Name: kbomScanJobIdentifier,
286-
Image: containerImageName,
285+
Image: fmt.Sprintf("%s/%s:%s", K8sRegistry, K8sRepo, r.version),
287286
}},
288287
},
289-
}, kube.ContainerImages{kbomScanJobIdentifier: containerImageName} ,map[string]v1alpha1.SbomReportData{kbomScanJobIdentifier: dbs})
288+
}, map[string]v1alpha1.SbomReportData{kbomScanJobIdentifier: dbs})
290289
if err != nil {
291290
return ctrl.Result{}, err
292291
}

pkg/vulnerabilityreport/controller/workload.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ type ScanJobResult struct {
6565
type ScanJobRequest struct {
6666
Workload client.Object
6767
Context context.Context
68-
ContainerImages kube.ContainerImages
6968
ClusterSbomReport map[string]v1alpha1.SbomReportData
7069
}
7170

@@ -206,7 +205,7 @@ func (r *WorkloadController) reconcileWorkload(workloadKind kube.Kind) reconcile
206205
}
207206
log.V(1).Info("Submitting a scan for the workload", "workload", workloadRef.Name)
208207
// sync all potential workload for scanning
209-
r.SubmitScanJobChan <- ScanJobRequest{Workload: workloadObj, Context: ctx, ContainerImages: containerImages, ClusterSbomReport: reportsData}
208+
r.SubmitScanJobChan <- ScanJobRequest{Workload: workloadObj, Context: ctx, ClusterSbomReport: reportsData}
210209
// collect scan job processing results
211210
scanJobResult := <-r.ResultScanJobChan
212211
return scanJobResult.Result, scanJobResult.Error
@@ -228,7 +227,7 @@ func (r *WorkloadController) ProcessScanJob() {
228227
r.ResultScanJobChan <- ScanJobResult{Result: ctrl.Result{RequeueAfter: r.Config.ScanJobRetryAfter}, Error: nil}
229228
continue
230229
}
231-
err = r.SubmitScanJob(workloadRequest.Context, workloadRequest.Workload, workloadRequest.ContainerImages, workloadRequest.ClusterSbomReport)
230+
err = r.SubmitScanJob(workloadRequest.Context, workloadRequest.Workload, workloadRequest.ClusterSbomReport)
232231
r.ResultScanJobChan <- ScanJobResult{Result: ctrl.Result{}, Error: err}
233232
}
234233
}
@@ -249,12 +248,19 @@ func (r *WorkloadController) hasActiveScanJob(ctx context.Context, owner kube.Ob
249248
return false, nil, nil
250249
}
251250

252-
func (r *WorkloadController) SubmitScanJob(ctx context.Context, owner client.Object, containerImages kube.ContainerImages, reusedReports map[string]v1alpha1.SbomReportData) error {
251+
func (r *WorkloadController) SubmitScanJob(ctx context.Context, owner client.Object, reusedReports map[string]v1alpha1.SbomReportData) error {
253252

254253
log := r.Logger.WithValues("kind", owner.GetObjectKind().GroupVersionKind().Kind,
255254
"name", owner.GetName(), "namespace", owner.GetNamespace())
256255
var err error
257256

257+
podSpec, err := kube.GetPodSpec(owner)
258+
if err != nil {
259+
return err
260+
}
261+
262+
containerImages := kube.GetContainerImagesFromPodSpec(podSpec, r.GetSkipInitContainers())
263+
258264
credentials := make(map[string]docker.Auth, 0)
259265
if len(reusedReports) != len(containerImages) {
260266
privateRegistrySecrets, err := r.Config.GetPrivateRegistryScanSecretsNames()

0 commit comments

Comments
 (0)