apiVersion: kyverno.io/v1 kind: ClusterPolicy metadata: name: generate-namespace-config annotations: policies.kyverno.io/title: "Генерация ConfigMap при создании Namespace" policies.kyverno.io/category: Governance policies.kyverno.io/severity: low policies.kyverno.io/subject: Namespace policies.kyverno.io/description: >- При создании нового Namespace автоматически создаёт ConfigMap с базовой конфигурацией. synchronize: true — ConfigMap обновляется при изменении namespace и удаляется вместе с ним. spec: rules: - name: generate-config match: resources: kinds: - Namespace exclude: resources: names: - kube-system - kube-public - kube-node-lease - kyverno generate: apiVersion: v1 kind: ConfigMap name: namespace-config namespace: "{{ request.object.metadata.name }}" synchronize: true data: kind: ConfigMap metadata: labels: generated-by: kyverno policy: generate-namespace-config data: namespace: "{{ request.object.metadata.name }}" environment: "{{ request.object.metadata.labels.environment || 'unknown' }}" team: "{{ request.object.metadata.labels.team || 'unknown' }}" created-at: "{{ time_now_utc() }}" documentation: "https://wiki.company.com/kubernetes/namespaces"