Back to Policies

Restrict Jobs in ValidatingPolicy

Jobs can be created directly and indirectly via a CronJob controller. In some cases, users may want to only allow Jobs if they are created via a CronJob. This policy restricts Jobs so they may only be created by a CronJob.

View on GitHub

Policy Definition

apiVersion: policies.kyverno.io/v1alpha1
kind: ValidatingPolicy
metadata:
name: restrict-jobs
annotations:
policies.kyverno.io/title: Restrict Jobs in ValidatingPolicy
policies.kyverno.io/category: Other in Vpol
policies.kyverno.io/severity: medium
policies.kyverno.io/subject: Job
kyverno.io/kyverno-version: 1.12.1
kyverno.io/kubernetes-version: "1.30"
policies.kyverno.io/description: Jobs can be created directly and indirectly via a CronJob controller. In some cases, users may want to only allow Jobs if they are created via a CronJob. This policy restricts Jobs so they may only be created by a CronJob.
spec:
validationActions:
- Deny
matchConstraints:
resourceRules:
- apiGroups:
- batch
apiVersions:
- v1
operations:
- CREATE
- UPDATE
resources:
- jobs
matchConditions:
- name: not-created-by-cronjob
expression: "!has(object.metadata.ownerReferences) || object.metadata.ownerReferences[0].kind != 'CronJob'"
validations:
- expression: "false"
message: Jobs are only allowed if spawned from CronJobs.

Related Policies