{{- if .Values.clusterConfig.kyverno.enabled }}
apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: sync-regcred-secret
  annotations:
    policies.clusterConfig.kyverno.io/title: Sync Secrets
    policies.clusterConfig.kyverno.io/category: Sample
    policies.clusterConfig.kyverno.io/subject: Secret
    policies.clusterConfig.kyverno.io/description: >-
      Secrets like registry credentials often need to exist in multiple
      Namespaces so Pods there have access. Manually duplicating those Secrets
      is time consuming and error prone. This policy will copy a
      Secret called `regcred` which exists in the `default` Namespace to
      new Namespaces when they are created. It will also push updates to
      the copied Secrets should the source Secret be changed.
spec:
  rules:
  - name: sync-image-pull-secret
    skipBackgroundRequests: true
    match:
      resources:
        kinds:
        - Namespace
    generate:
      apiVersion: v1
      kind: Secret
      name: regcred
      namespace: "{{`{{request.object.metadata.name}}`}}"
      synchronize: true
      clone:
        namespace: default
        name: regcred
{{- end }}
