A starting deadline for a CronJob is important to prevent jobs from running at unexpected times, for example, after a long downtime.
apiVersion: rules.spotter.dev/v1alpha1
kind: SpotterRule
metadata:
name: spotter-config-007
labels:
severity: "medium"
category: "config"
annotations:
rules.spotter.dev/title: "CronJob Deadline Not Configured"
rules.spotter.dev/version: "1.0.0"
rules.spotter.dev/cwe: "CWE-730"
rules.spotter.dev/description: "A starting deadline for a CronJob is important to prevent jobs from running at unexpected times, for example, after a long downtime."
spec:
match:
resources:
kubernetes:
apiGroups:
- "batch"
versions:
- "v1"
- "v1beta1"
kinds:
- CronJob
namespaces:
include: ["*"]
exclude: ["kube-system", "kube-public"]
labels:
exclude:
rules.spotter.dev/ignore: ["true"]
cel: |
!has(object.spec.startingDeadlineSeconds) || object.spec.startingDeadlineSeconds <= 0
remediation:
manual: "Set a startingDeadlineSeconds value for the CronJob."
references:
- title: "CronJob Limitations"
url: "https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#limitations"