pkg/safeguards/lib/manifests/v2.0.0/pod-enforce-antiaffinity/template.yaml (23 lines of code) (raw):

apiVersion: templates.gatekeeper.sh/v1beta1 kind: ConstraintTemplate metadata: name: k8sazurev1antiaffinityrules annotations: description: Requires deployments with multiple replicas have pod anti affinity rules spec: crd: spec: names: kind: K8sAzureV1AntiAffinityRules targets: - target: admission.k8s.gatekeeper.sh rego: | package k8sazurev1antiaffinityrules missing_affinity(obj) { not obj.affinity.podAntiAffinity } violation[{"msg": msg}] { input.review.object.spec.replicas > 1 missing_affinity(input.review.object.spec.template.spec) msg := sprintf("%s with %d replicas should have pod anti-affinity rules set to avoid disruptions due to nodes crashing", [input.review.kind.kind, input.review.object.spec.replicas]) }