All Policies

Validate Schedule in CEL expressions

A Velero Schedule is given in Cron format and must be accurate to ensure operation. This policy validates that the schedule is a valid Cron format.

Policy Definition

/velero-cel/validate-cron-schedule/validate-cron-schedule.yaml

 1apiVersion: kyverno.io/v1
 2kind: ClusterPolicy
 3metadata:
 4  name: validate-cron-schedule
 5  annotations:
 6    policies.kyverno.io/title: Validate Schedule in CEL expressions
 7    policies.kyverno.io/category: Velero in CEL 
 8    policies.kyverno.io/subject: Schedule
 9    kyverno.io/kyverno-version: 1.11.0
10    kyverno.io/kubernetes-version: "1.26-1.27"
11    policies.kyverno.io/description: >-
12      A Velero Schedule is given in Cron format and must be accurate to ensure
13      operation. This policy validates that the schedule is a valid Cron format.
14spec:
15  background: true
16  validationFailureAction: Audit
17  rules:
18  - name: validate-cron
19    match:
20      any:
21      - resources:
22          kinds:
23          - velero.io/v1/Schedule
24          operations:
25          - CREATE
26          - UPDATE
27    validate:
28      cel:
29        expressions:
30          - expression: >-
31              object.spec.schedule.matches('^((?:\\*|[0-5]?[0-9](?:(?:-[0-5]?[0-9])|(?:,[0-5]?[0-9])+)?)(?:\\/[0-9]+)?)\\s+((?:\\*|(?:1?[0-9]|2[0-3])(?:(?:-(?:1?[0-9]|2[0-3]))|(?:,(?:1?[0-9]|2[0-3]))+)?)(?:\\/[0-9]+)?)\\s+((?:\\*|(?:[1-9]|[1-2][0-9]|3[0-1])(?:(?:-(?:[1-9]|[1-2][0-9]|3[0-1]))|(?:,(?:[1-9]|[1-2][0-9]|3[0-1]))+)?)(?:\\/[0-9]+)?)\\s+((?:\\*|(?:[1-9]|1[0-2])(?:(?:-(?:[1-9]|1[0-2]))|(?:,(?:[1-9]|1[0-2]))+)?)(?:\\/[0-9]+)?)\\s+((?:\\*|[0-7](?:-[0-7]|(?:,[0-7])+)?)(?:\\/[0-9]+)?)$')
32            message: The backup schedule must be in a valid cron format.