All Policies
Add prefix to external secret
This Policy mutates secretRef key to add a prefix. External Secret Operator proposes to use kyverno to force ExternalSecrets to have namespace prefix so that kubernetes administrators do not need to define permissions and users per namespace. Doing this developers are abstracted by administrators naming convention and will not be able to access secrets from other namespaces. In this example, in the JSON patch change "prefix-" to your preferred prefix. For example: {{ request.namespace }}
Policy Definition
/external-secret-operator/add-external-secret-prefix/add-external-secret-prefix.yaml
1apiVersion: kyverno.io/v1
2kind: ClusterPolicy
3metadata:
4 name: add-external-secret-prefix
5 annotations:
6 policies.kyverno.io/title: Add prefix to external secret
7 policies.kyverno.io/category: ExternalSecretOperator
8 policies.kyverno.io/severity: medium
9 policies.kyverno.io/subject: ExternalSecret
10 kyverno.io/kyverno-version: 1.7.1
11 policies.kyverno.io/minversion: 1.6.0
12 kyverno.io/kubernetes-version: "1.23"
13 policies.kyverno.io/description: >-
14 This Policy mutates secretRef key to add a prefix.
15 External Secret Operator proposes to use kyverno to force ExternalSecrets
16 to have namespace prefix so that kubernetes administrators do not need to
17 define permissions and users per namespace.
18 Doing this developers are abstracted by administrators naming convention and will not
19 be able to access secrets from other namespaces.
20 In this example, in the JSON patch change "prefix-" to your preferred prefix. For example: {{ request.namespace }}
21spec:
22 rules:
23 - name: add-external-secret-prefix
24 match:
25 any:
26 - resources:
27 kinds:
28 - external-secrets.io/v1beta1/ExternalSecret
29 mutate:
30 foreach:
31 - list: "request.object.spec.data"
32 patchesJson6902: |-
33 - path: /spec/data/{{elementIndex}}/remoteRef
34 op: add
35 value:
36 key: "prefix-{{element.remoteRef.key}}"
37 property: "{{element.remoteRef.property}}"
38 conversionStrategy: "{{element.remoteRef.conversionStrategy}}"
39 decodingStrategy: "{{element.remoteRef.decodingStrategy}}"