27 lines
768 B
YAML
27 lines
768 B
YAML
apiVersion: templates.gatekeeper.sh/v1beta1
|
|
kind: ConstraintTemplate
|
|
metadata:
|
|
name: requiredlabels
|
|
spec:
|
|
crd:
|
|
spec:
|
|
names:
|
|
kind: RequiredLabels
|
|
validation:
|
|
openAPIV3Schema:
|
|
properties:
|
|
labels:
|
|
type: array
|
|
items: string
|
|
targets:
|
|
- target: admission.k8s.gatekeeper.sh
|
|
rego: |
|
|
package requiredlabels
|
|
|
|
violation[{"msg": msg, "details": {"missing_labels": missing}}] {
|
|
provided := {label | input.review.object.metadata.labels[label]}
|
|
required := {label | label := input.parameters.labels[_]}
|
|
missing := required - provided
|
|
count(missing) > 0
|
|
msg := sprintf("you must provide labels: %v", [missing])
|
|
} |