mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-07 00:17:13 +00:00
85 lines
1.8 KiB
Go
85 lines
1.8 KiB
Go
|
package mutate
|
||
|
|
||
|
// Namespace Description
|
||
|
var namespaceYaml = []byte(`
|
||
|
apiVersion: v1
|
||
|
kind: Namespace
|
||
|
metadata:
|
||
|
name: test-mutate
|
||
|
`)
|
||
|
|
||
|
// Cluster Policy to copy the copy me label from one configmap to the target
|
||
|
var configMapMutationYaml = []byte(`
|
||
|
apiVersion: kyverno.io/v1
|
||
|
kind: ClusterPolicy
|
||
|
metadata:
|
||
|
name: "mutate-policy"
|
||
|
spec:
|
||
|
rules:
|
||
|
- name: "gen-role"
|
||
|
match:
|
||
|
resources:
|
||
|
kinds:
|
||
|
- ConfigMap
|
||
|
context:
|
||
|
- name: labelValue
|
||
|
apiCall:
|
||
|
urlPath: "/api/v1/namespaces/{{ request.object.metadata.namespace }}/configmaps"
|
||
|
jmesPath: "items[*]"
|
||
|
mutate:
|
||
|
patchStrategicMerge:
|
||
|
metadata:
|
||
|
labels:
|
||
|
+(kyverno.key/copy-me): "{{ labelValue[?metadata.name == 'source'].metadata.labels.\"kyverno.key/copy-me\" | [0] }}"
|
||
|
`)
|
||
|
|
||
|
var configMapMutationWithContextLogicYaml = []byte(`
|
||
|
apiVersion: kyverno.io/v1
|
||
|
kind: ClusterPolicy
|
||
|
metadata:
|
||
|
name: "mutate-policy"
|
||
|
spec:
|
||
|
rules:
|
||
|
- name: "gen-role"
|
||
|
match:
|
||
|
resources:
|
||
|
kinds:
|
||
|
- ConfigMap
|
||
|
context:
|
||
|
- name: labelValue
|
||
|
apiCall:
|
||
|
urlPath: "/api/v1/namespaces/{{ request.object.metadata.namespace }}/configmaps"
|
||
|
jmesPath: "items[?metadata.name == 'source'].metadata.labels.\"kyverno.key/copy-me\" | [0]"
|
||
|
mutate:
|
||
|
patchStrategicMerge:
|
||
|
metadata:
|
||
|
labels:
|
||
|
+(kyverno.key/copy-me): "{{ labelValue }}"
|
||
|
`)
|
||
|
|
||
|
// Source ConfigMap from which data is taken to copy
|
||
|
var sourceConfigMapYaml = []byte(`
|
||
|
apiVersion: v1
|
||
|
kind: ConfigMap
|
||
|
metadata:
|
||
|
name: source
|
||
|
namespace: test-mutate
|
||
|
labels:
|
||
|
kyverno.key/copy-me: sample-value
|
||
|
data:
|
||
|
data.yaml: |
|
||
|
some: data
|
||
|
`)
|
||
|
|
||
|
// Target ConfigMap which is mutated
|
||
|
var targetConfigMapYaml = []byte(`
|
||
|
apiVersion: v1
|
||
|
kind: ConfigMap
|
||
|
metadata:
|
||
|
name: target
|
||
|
namespace: test-mutate
|
||
|
data:
|
||
|
data.yaml: |
|
||
|
some: data
|
||
|
`)
|