Skip to content

Commit bbb947b

Browse files
author
Amir Moualem
authored
Merge pull request #242 from snyk/fix/queue-workload-metadata
Fix/queue workload metadata
2 parents 568fc9d + 657ff03 commit bbb947b

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

config.default.json

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"MAX_AGE_MS": 86400000
99
},
1010
"WORKLOADS_TO_SCAN_QUEUE_WORKER_COUNT": 10,
11+
"METADATA_TO_SEND_QUEUE_WORKER_COUNT": 10,
1112
"INTEGRATION_ID": "203210a3-1de0-4ed3-b6a6-3acd24b71639",
1213
"DEFAULT_KUBERNETES_UPSTREAM_URL": "https://kubernetes-upstream.snyk.io"
1314
}

src/kube-scanner/watchers/handlers/pod.ts

+14-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function deleteFailedKeysFromState(keys): void {
2727
}
2828
}
2929

30-
async function queueWorker(task, callback): Promise<void> {
30+
async function queueWorkerWorkloadScan(task, callback): Promise<void> {
3131
const {workloadWorker, workloadMetadata, imageKeys} = task;
3232
try {
3333
await workloadWorker.process(workloadMetadata);
@@ -37,12 +37,23 @@ async function queueWorker(task, callback): Promise<void> {
3737
}
3838
}
3939

40-
const workloadsToScanQueue = async.queue(queueWorker, config.WORKLOADS_TO_SCAN_QUEUE_WORKER_COUNT);
40+
const workloadsToScanQueue = async.queue(queueWorkerWorkloadScan, config.WORKLOADS_TO_SCAN_QUEUE_WORKER_COUNT);
41+
42+
async function queueWorkerMetadataSender(task, callback): Promise<void> {
43+
const {workloadMetadataPayload} = task;
44+
await sendWorkloadMetadata(workloadMetadataPayload);
45+
}
46+
47+
const metadataToSendQueue = async.queue(queueWorkerMetadataSender, config.METADATA_TO_SEND_QUEUE_WORKER_COUNT);
4148

4249
workloadsToScanQueue.error(function(err, task) {
4350
logger.error({err, task}, 'error processing a workload in the pod handler 1');
4451
});
4552

53+
metadataToSendQueue.error(function(err, task) {
54+
logger.error({err, task}, 'error processing a workload metadata send task');
55+
});
56+
4657
function handleReadyPod(workloadWorker: WorkloadWorker, workloadMetadata: IWorkload[]): void {
4758
const imagesToScan: IWorkload[] = [];
4859
const imageKeys: string[] = [];
@@ -87,7 +98,7 @@ export async function podWatchHandler(pod: V1Pod): Promise<void> {
8798
// every element contains the workload information, so we can get it from the first one
8899
const workloadMember = workloadMetadata[0];
89100
const workloadMetadataPayload = constructHomebaseWorkloadMetadataPayload(workloadMember);
90-
await sendWorkloadMetadata(workloadMetadataPayload);
101+
metadataToSendQueue.push({workloadMetadataPayload});
91102
const workloadName = workloadMember.name;
92103
const workloadWorker = new WorkloadWorker(workloadName);
93104
handleReadyPod(workloadWorker, workloadMetadata);

0 commit comments

Comments
 (0)