All Policies
Add CAST AI Removal Disabled
CAST AI will not downscale a node that includes a pod with the autoscaling.cast.ai/removal-disabled="true" label on it, this protects sensitive workloads from being evicted and can be attributed to any pod to protect against unwanted downscaling. This policy will mutate jobs and cronjobs to add the removal-disabled label to protect against eviction.
Policy Definition
/castai/add-castai-removal-disabled/add-castai-removal-disabled.yaml
1apiVersion: kyverno.io/v1
2kind: ClusterPolicy
3metadata:
4 name: add-castai-removal-disabled
5 annotations:
6 policies.kyverno.io/title: Add CAST AI Removal Disabled
7 policies.kyverno.io/category: CAST AI
8 policies.kyverno.io/severity: medium
9 policies.kyverno.io/subject: "Job, CronJob"
10 kyverno.io/kyverno-version: "1.9"
11 kyverno.io/kubernetes-version: "1.25"
12 policies.kyverno.io/description: >-
13 CAST AI will not downscale a node that includes a pod with the
14 autoscaling.cast.ai/removal-disabled="true" label on it, this protects
15 sensitive workloads from being evicted and can be attributed to any pod to
16 protect against unwanted downscaling. This policy will mutate jobs and
17 cronjobs to add the removal-disabled label to protect against eviction.
18spec:
19 rules:
20 - name: do-not-evict-jobs
21 match:
22 any:
23 - resources:
24 kinds:
25 - Job
26 mutate:
27 patchStrategicMerge:
28 spec:
29 template:
30 metadata:
31 labels:
32 autoscaling.cast.ai/removal-disabled: "true"
33 - name: do-not-evict-cronjobs
34 match:
35 any:
36 - resources:
37 kinds:
38 - CronJob
39 mutate:
40 patchStrategicMerge:
41 spec:
42 jobTemplate:
43 spec:
44 template:
45 metadata:
46 labels:
47 autoscaling.cast.ai/removal-disabled: "true"
yaml