1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2024-12-14 11:57:48 +00:00
kyverno/samples/AddSafeToEvict.md
2020-11-11 13:07:01 -05:00

1.2 KiB

Mutate pods with emptyDir and hostPath with safe-to-evict

The Kubernetes cluster autoscaler does not evict pods that use hostPath or emptyDir volumes. To allow eviction of these pods, the following annotation must be added to the pods:

cluster-autoscaler.kubernetes.io/safe-to-evict: true

This policy matches and mutates pods with emptyDir and hostPath volumes to add the safe-to-evict annotation if it is not specified.

Policy YAML

add_safe_to_evict_annotation.yaml

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: add-safe-to-evict
spec:
  rules:
  - name: "annotate-empty-dir"
    match:
      resources:
        kinds:
        - Pod
    mutate:
      patchStrategicMerge:
        metadata:
          annotations:
            +(cluster-autoscaler.kubernetes.io/safe-to-evict): "true"
        spec:
          volumes:
          - (emptyDir): {}
  - name: annotate-host-path
    match:
      resources:
        kinds:
        - Pod
    mutate:
      patchStrategicMerge:
        metadata:
          annotations:
            +(cluster-autoscaler.kubernetes.io/safe-to-evict): "true"
        spec:
          volumes:
          - (hostPath):
              path: "*"