Files
kyverno-2026-example/05-variables/01-configmaps/inherit-namespace-labels.yaml
2026-04-08 20:22:14 +07:00

37 lines
1.2 KiB
YAML

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
name: inherit-namespace-labels
annotations:
policies.kyverno.io/title: "Наследование лейблов из Namespace"
policies.kyverno.io/category: Governance
policies.kyverno.io/severity: low
policies.kyverno.io/subject: Pod
policies.kyverno.io/description: >-
Копирует лейблы environment и team из Namespace в Pod.
Позволяет автоматически тегировать поды данными их namespace
без ручного дублирования в каждом манифесте.
spec:
rules:
- name: copy-namespace-labels
match:
resources:
kinds:
- Pod
exclude:
resources:
namespaces:
- kube-system
- kyverno
context:
- name: nsLabels
apiCall:
urlPath: "/api/v1/namespaces/{{ request.object.metadata.namespace }}"
jmesPath: "metadata.labels"
mutate:
patchStrategicMerge:
metadata:
labels:
+(environment): "{{ nsLabels.environment || 'unknown' }}"
+(team): "{{ nsLabels.team || 'unknown' }}"