Skip to main content

Batch & workload checks

These checks cover Jobs, CronJobs, and general workload hygiene that doesn't fit the pod-container scope.

Medium​

cj_concurrent_allow​

CronJob has concurrencyPolicy: Allow — if a run takes longer than the schedule interval, multiple instances can run simultaneously, causing duplicate processing, data corruption, or resource exhaustion.

Remediation: Use Forbid (skip if previous still running) or Replace (kill previous, start new):

spec:
concurrencyPolicy: Forbid

Low​

job_no_ttl​

Job has no ttlSecondsAfterFinished — completed Jobs accumulate indefinitely, cluttering the namespace and consuming etcd storage.

Remediation:

spec:
ttlSecondsAfterFinished: 86400 # clean up after 24h

cj_missing_deadline​

CronJob has no startingDeadlineSeconds — if the scheduler misses a run window (e.g. cluster was down), it may try to backfill all missed runs at once.

Remediation:

spec:
startingDeadlineSeconds: 300 # give up if >5 min late