All Policies
Generate Gold Backup Policy
Generate a backup policy for any Deployment or StatefulSet that adds the labels "dataprotection: k10-goldpolicy" This policy works best to decide the data protection objectives and simply assign backup via application labels.
Policy Definition
/kasten/k10-data-protection-by-label/k10-generate-gold-backup-policy.yaml
1apiVersion: kyverno.io/v1
2kind: ClusterPolicy
3metadata:
4 name: k10-generate-gold-backup-policy
5 annotations:
6 policies.kyverno.io/title: Generate Gold Backup Policy
7 policies.kyverno.io/category: Kasten K10 by Veeam
8 kyverno.io/kyverno-version: 1.6.2
9 policies.kyverno.io/minversion: 1.6.2
10 kyverno.io/kubernetes-version: "1.21-1.22"
11 policies.kyverno.io/subject: Policy
12 policies.kyverno.io/description: >-
13 Generate a backup policy for any Deployment or StatefulSet that adds the labels "dataprotection: k10-goldpolicy"
14 This policy works best to decide the data protection objectives and simply assign backup via application labels.
15spec:
16 background: false
17 rules:
18 - name: k10-generate-gold-backup-policy
19 match:
20 any:
21 - resources:
22 kinds:
23 - Deployment
24 - StatefulSet
25 selector:
26 matchLabels:
27 dataprotection: k10-goldpolicy # match with a corresponding ClusterPolicy that checks for this label
28 generate:
29 apiVersion: config.kio.kasten.io/v1alpha1
30 kind: Policy
31 name: k10-{{request.namespace}}-gold-backup-policy
32 namespace: "{{request.namespace}}"
33 data:
34 metadata:
35 name: k10-{{request.namespace}}-gold-backup-policy
36 namespace: "{{request.namespace}}"
37 spec:
38 comment: K10 "gold" immutable production backup policy
39 frequency: '@daily'
40 retention:
41 daily: 7
42 weekly: 4
43 monthly: 12
44 yearly: 7
45 actions:
46 - action: backup
47 - action: export
48 exportParameters:
49 frequency: '@monthly'
50 profile:
51 name: object-lock-s3
52 namespace: kasten-io
53 exportData:
54 enabled: true
55 retention:
56 monthly: 12
57 yearly: 5
58 selector:
59 matchExpressions:
60 - key: k10.kasten.io/appNamespace
61 operator: In
62 values:
63 - "{{request.namespace}}"