quorate/vendor/platform/kyverno/policies/require-vso-secret-labels.yaml

34 lines
1.1 KiB
YAML

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: require-vso-secret-labels
annotations:
policies.kyverno.io/title: Require VSO ownership labels on VSO Secrets
policies.kyverno.io/category: Secrets
policies.kyverno.io/severity: medium
policies.kyverno.io/description: >-
Secrets that carry secrets.hashicorp.com/vso-ownerRefUID must also set
app.kubernetes.io/managed-by=hashicorp-vso so ownership stays consistent.
spec:
validationFailureAction: Audit
background: true
rules:
- name: vso-owner-implies-managed-by
match:
any:
- resources:
kinds:
- Secret
preconditions:
all:
- key: "{{ request.object.metadata.labels.\"secrets.hashicorp.com/vso-ownerRefUID\" || '' }}"
operator: NotEquals
value: ""
validate:
message: >-
Secrets with secrets.hashicorp.com/vso-ownerRefUID must set
app.kubernetes.io/managed-by to hashicorp-vso.
pattern:
metadata:
labels:
app.kubernetes.io/managed-by: hashicorp-vso