mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-07-17 17:52:12 +00:00
add replacements every element match test
This commit is contained in:
@@ -42,7 +42,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: deploy
|
name: deploy
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -95,7 +95,7 @@ spec:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers
|
- spec.template.spec.containers
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -328,7 +328,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: deploy1
|
name: deploy1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.[name=postgresdb].image
|
- spec.template.spec.containers.[name=postgresdb].image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -405,7 +405,7 @@ spec:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
version: v3
|
version: v3
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: my-group-1/v1
|
expected: `apiVersion: my-group-1/v1
|
||||||
@@ -492,7 +492,7 @@ spec:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
name: my-name-2
|
name: my-name-2
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `spec:
|
expected: `spec:
|
||||||
@@ -582,7 +582,7 @@ spec:
|
|||||||
reject:
|
reject:
|
||||||
- name: deploy2
|
- name: deploy2
|
||||||
- name: deploy3
|
- name: deploy3
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -662,7 +662,7 @@ spec:
|
|||||||
reject:
|
reject:
|
||||||
- kind: Deployment
|
- kind: Deployment
|
||||||
name: my-name
|
name: my-name
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -731,7 +731,7 @@ spec:
|
|||||||
reject:
|
reject:
|
||||||
- kind: Deployment
|
- kind: Deployment
|
||||||
- name: my-name
|
- name: my-name
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -799,7 +799,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: deploy1
|
name: deploy1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
options:
|
options:
|
||||||
delimiter: ':'
|
delimiter: ':'
|
||||||
@@ -872,7 +872,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Pod
|
kind: Pod
|
||||||
name: pod2
|
name: pod2
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
||||||
options:
|
options:
|
||||||
delimiter: '/'
|
delimiter: '/'
|
||||||
@@ -948,7 +948,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Pod
|
kind: Pod
|
||||||
name: pod1
|
name: pod1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
||||||
options:
|
options:
|
||||||
delimiter: '/'
|
delimiter: '/'
|
||||||
@@ -1024,7 +1024,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Pod
|
kind: Pod
|
||||||
name: pod1
|
name: pod1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
||||||
options:
|
options:
|
||||||
delimiter: '/'
|
delimiter: '/'
|
||||||
@@ -1100,7 +1100,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Pod
|
kind: Pod
|
||||||
name: pod1
|
name: pod1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
||||||
options:
|
options:
|
||||||
delimiter: '/'
|
delimiter: '/'
|
||||||
@@ -1176,7 +1176,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Pod
|
kind: Pod
|
||||||
name: pod1
|
name: pod1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
- spec.volumes.0.projected.sources.0.configMap.items.0.path
|
||||||
options:
|
options:
|
||||||
delimiter: '/'
|
delimiter: '/'
|
||||||
@@ -1212,7 +1212,7 @@ metadata:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
name: deploy1
|
name: deploy1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers
|
- spec.template.spec.containers
|
||||||
options:
|
options:
|
||||||
create: true
|
create: true
|
||||||
@@ -1223,7 +1223,7 @@ metadata:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
name: deploy2
|
name: deploy2
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers
|
- spec.template.spec.containers
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -1285,12 +1285,12 @@ spec:
|
|||||||
kind: Pod
|
kind: Pod
|
||||||
name: pod
|
name: pod
|
||||||
fieldPath: spec.containers
|
fieldPath: spec.containers
|
||||||
options:
|
options:
|
||||||
delimiter: "/"
|
delimiter: "/"
|
||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers
|
- spec.template.spec.containers
|
||||||
`,
|
`,
|
||||||
expectedErr: "delimiter option can only be used with scalar nodes",
|
expectedErr: "delimiter option can only be used with scalar nodes",
|
||||||
@@ -1331,9 +1331,9 @@ spec:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers
|
- spec.template.spec.containers
|
||||||
options:
|
options:
|
||||||
delimiter: "/"
|
delimiter: "/"
|
||||||
`,
|
`,
|
||||||
expectedErr: "delimiter option can only be used with scalar nodes",
|
expectedErr: "delimiter option can only be used with scalar nodes",
|
||||||
@@ -1354,7 +1354,7 @@ metadata:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
name: custom
|
name: custom
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- metadata.annotations.[f.g.h/i-j]
|
- metadata.annotations.[f.g.h/i-j]
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -1431,6 +1431,136 @@ spec:
|
|||||||
name: second
|
name: second
|
||||||
version: latest
|
version: latest
|
||||||
property: second`,
|
property: second`,
|
||||||
|
},
|
||||||
|
"index contains '*' character": {
|
||||||
|
input: `apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
name: sample-deploy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: sample-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: nginx
|
||||||
|
name: main
|
||||||
|
env:
|
||||||
|
- name: deployment-name
|
||||||
|
value: XXXXX
|
||||||
|
`,
|
||||||
|
replacements: `replacements:
|
||||||
|
- source:
|
||||||
|
kind: Deployment
|
||||||
|
name: sample-deploy
|
||||||
|
fieldPath: metadata.name
|
||||||
|
targets:
|
||||||
|
- select:
|
||||||
|
kind: Deployment
|
||||||
|
fieldPaths:
|
||||||
|
- spec.template.spec.containers.*.env.[name=deployment-name].value
|
||||||
|
`,
|
||||||
|
expected: `apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
name: sample-deploy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: sample-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: nginx
|
||||||
|
name: main
|
||||||
|
env:
|
||||||
|
- name: deployment-name
|
||||||
|
value: sample-deploy`,
|
||||||
|
},
|
||||||
|
"list index contains '*' character": {
|
||||||
|
input: `apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
name: sample-deploy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: sample-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: nginx
|
||||||
|
name: main
|
||||||
|
env:
|
||||||
|
- name: deployment-name
|
||||||
|
value: XXXXX
|
||||||
|
- name: foo
|
||||||
|
value: bar
|
||||||
|
- image: nginx
|
||||||
|
name: sidecar
|
||||||
|
env:
|
||||||
|
- name: deployment-name
|
||||||
|
value: YYYYY
|
||||||
|
`,
|
||||||
|
replacements: `replacements:
|
||||||
|
- source:
|
||||||
|
kind: Deployment
|
||||||
|
name: sample-deploy
|
||||||
|
fieldPath: metadata.name
|
||||||
|
targets:
|
||||||
|
- select:
|
||||||
|
kind: Deployment
|
||||||
|
fieldPaths:
|
||||||
|
- spec.template.spec.containers.*.env.[name=deployment-name].value
|
||||||
|
`,
|
||||||
|
expected: `apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
name: sample-deploy
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: sample-deploy
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: sample-deploy
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: nginx
|
||||||
|
name: main
|
||||||
|
env:
|
||||||
|
- name: deployment-name
|
||||||
|
value: sample-deploy
|
||||||
|
- name: foo
|
||||||
|
value: bar
|
||||||
|
- image: nginx
|
||||||
|
name: sidecar
|
||||||
|
env:
|
||||||
|
- name: deployment-name
|
||||||
|
value: sample-deploy`,
|
||||||
},
|
},
|
||||||
"multiple field paths in target": {
|
"multiple field paths in target": {
|
||||||
input: `apiVersion: v1
|
input: `apiVersion: v1
|
||||||
@@ -1513,7 +1643,7 @@ spec:
|
|||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
name: pre-deploy
|
name: pre-deploy
|
||||||
annotations:
|
annotations:
|
||||||
internal.config.kubernetes.io/previousNames: deploy,deploy
|
internal.config.kubernetes.io/previousNames: deploy,deploy
|
||||||
internal.config.kubernetes.io/previousKinds: CronJob,Deployment
|
internal.config.kubernetes.io/previousKinds: CronJob,Deployment
|
||||||
internal.config.kubernetes.io/previousNamespaces: default,default
|
internal.config.kubernetes.io/previousNamespaces: default,default
|
||||||
@@ -1535,7 +1665,7 @@ spec:
|
|||||||
- select:
|
- select:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: deploy
|
name: deploy
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -1556,7 +1686,6 @@ spec:
|
|||||||
name: postgresdb
|
name: postgresdb
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
|
|
||||||
"replacement source.fieldPath does not exist": {
|
"replacement source.fieldPath does not exist": {
|
||||||
input: `apiVersion: v1
|
input: `apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
@@ -1628,7 +1757,7 @@ spec:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
annotationSelector: foo=bar-1
|
annotationSelector: foo=bar-1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -1702,7 +1831,7 @@ spec:
|
|||||||
targets:
|
targets:
|
||||||
- select:
|
- select:
|
||||||
labelSelector: foo=bar-1
|
labelSelector: foo=bar-1
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
@@ -1778,7 +1907,7 @@ spec:
|
|||||||
kind: Deployment
|
kind: Deployment
|
||||||
reject:
|
reject:
|
||||||
- labelSelector: foo=bar-2
|
- labelSelector: foo=bar-2
|
||||||
fieldPaths:
|
fieldPaths:
|
||||||
- spec.template.spec.containers.1.image
|
- spec.template.spec.containers.1.image
|
||||||
`,
|
`,
|
||||||
expected: `apiVersion: v1
|
expected: `apiVersion: v1
|
||||||
|
|||||||
Reference in New Issue
Block a user