Skip to content

Commit b79d77a

Browse files
committed
add replacements every element match test
1 parent 26b9af0 commit b79d77a

File tree

1 file changed

+156
-27
lines changed

1 file changed

+156
-27
lines changed

api/filters/replacement/replacement_test.go

Lines changed: 156 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ spec:
4242
- select:
4343
kind: Deployment
4444
name: deploy
45-
fieldPaths:
45+
fieldPaths:
4646
- spec.template.spec.containers.1.image
4747
`,
4848
expected: `apiVersion: v1
@@ -95,7 +95,7 @@ spec:
9595
targets:
9696
- select:
9797
kind: Deployment
98-
fieldPaths:
98+
fieldPaths:
9999
- spec.template.spec.containers
100100
`,
101101
expected: `apiVersion: v1
@@ -328,7 +328,7 @@ spec:
328328
- select:
329329
kind: Deployment
330330
name: deploy1
331-
fieldPaths:
331+
fieldPaths:
332332
- spec.template.spec.containers.[name=postgresdb].image
333333
`,
334334
expected: `apiVersion: v1
@@ -405,7 +405,7 @@ spec:
405405
targets:
406406
- select:
407407
version: v3
408-
fieldPaths:
408+
fieldPaths:
409409
- spec.template.spec.containers.1.image
410410
`,
411411
expected: `apiVersion: my-group-1/v1
@@ -492,7 +492,7 @@ spec:
492492
targets:
493493
- select:
494494
name: my-name-2
495-
fieldPaths:
495+
fieldPaths:
496496
- spec.template.spec.containers.1.image
497497
`,
498498
expected: `spec:
@@ -582,7 +582,7 @@ spec:
582582
reject:
583583
- name: deploy2
584584
- name: deploy3
585-
fieldPaths:
585+
fieldPaths:
586586
- spec.template.spec.containers.1.image
587587
`,
588588
expected: `apiVersion: v1
@@ -662,7 +662,7 @@ spec:
662662
reject:
663663
- kind: Deployment
664664
name: my-name
665-
fieldPaths:
665+
fieldPaths:
666666
- spec.template.spec.containers.1.image
667667
`,
668668
expected: `apiVersion: v1
@@ -731,7 +731,7 @@ spec:
731731
reject:
732732
- kind: Deployment
733733
- name: my-name
734-
fieldPaths:
734+
fieldPaths:
735735
- spec.template.spec.containers.1.image
736736
`,
737737
expected: `apiVersion: v1
@@ -799,7 +799,7 @@ spec:
799799
- select:
800800
kind: Deployment
801801
name: deploy1
802-
fieldPaths:
802+
fieldPaths:
803803
- spec.template.spec.containers.1.image
804804
options:
805805
delimiter: ':'
@@ -872,7 +872,7 @@ spec:
872872
- select:
873873
kind: Pod
874874
name: pod2
875-
fieldPaths:
875+
fieldPaths:
876876
- spec.volumes.0.projected.sources.0.configMap.items.0.path
877877
options:
878878
delimiter: '/'
@@ -948,7 +948,7 @@ spec:
948948
- select:
949949
kind: Pod
950950
name: pod1
951-
fieldPaths:
951+
fieldPaths:
952952
- spec.volumes.0.projected.sources.0.configMap.items.0.path
953953
options:
954954
delimiter: '/'
@@ -1024,7 +1024,7 @@ spec:
10241024
- select:
10251025
kind: Pod
10261026
name: pod1
1027-
fieldPaths:
1027+
fieldPaths:
10281028
- spec.volumes.0.projected.sources.0.configMap.items.0.path
10291029
options:
10301030
delimiter: '/'
@@ -1100,7 +1100,7 @@ spec:
11001100
- select:
11011101
kind: Pod
11021102
name: pod1
1103-
fieldPaths:
1103+
fieldPaths:
11041104
- spec.volumes.0.projected.sources.0.configMap.items.0.path
11051105
options:
11061106
delimiter: '/'
@@ -1176,7 +1176,7 @@ spec:
11761176
- select:
11771177
kind: Pod
11781178
name: pod1
1179-
fieldPaths:
1179+
fieldPaths:
11801180
- spec.volumes.0.projected.sources.0.configMap.items.0.path
11811181
options:
11821182
delimiter: '/'
@@ -1212,7 +1212,7 @@ metadata:
12121212
targets:
12131213
- select:
12141214
name: deploy1
1215-
fieldPaths:
1215+
fieldPaths:
12161216
- spec.template.spec.containers
12171217
options:
12181218
create: true
@@ -1223,7 +1223,7 @@ metadata:
12231223
targets:
12241224
- select:
12251225
name: deploy2
1226-
fieldPaths:
1226+
fieldPaths:
12271227
- spec.template.spec.containers
12281228
`,
12291229
expected: `apiVersion: v1
@@ -1285,12 +1285,12 @@ spec:
12851285
kind: Pod
12861286
name: pod
12871287
fieldPath: spec.containers
1288-
options:
1288+
options:
12891289
delimiter: "/"
12901290
targets:
12911291
- select:
12921292
kind: Deployment
1293-
fieldPaths:
1293+
fieldPaths:
12941294
- spec.template.spec.containers
12951295
`,
12961296
expectedErr: "delimiter option can only be used with scalar nodes",
@@ -1331,9 +1331,9 @@ spec:
13311331
targets:
13321332
- select:
13331333
kind: Deployment
1334-
fieldPaths:
1334+
fieldPaths:
13351335
- spec.template.spec.containers
1336-
options:
1336+
options:
13371337
delimiter: "/"
13381338
`,
13391339
expectedErr: "delimiter option can only be used with scalar nodes",
@@ -1354,7 +1354,7 @@ metadata:
13541354
targets:
13551355
- select:
13561356
name: custom
1357-
fieldPaths:
1357+
fieldPaths:
13581358
- metadata.annotations.[f.g.h/i-j]
13591359
`,
13601360
expected: `apiVersion: v1
@@ -1431,6 +1431,136 @@ spec:
14311431
name: second
14321432
version: latest
14331433
property: second`,
1434+
},
1435+
"index contains '*' character": {
1436+
input: `apiVersion: apps/v1
1437+
kind: Deployment
1438+
metadata:
1439+
labels:
1440+
app: sample-deploy
1441+
name: sample-deploy
1442+
spec:
1443+
replicas: 1
1444+
selector:
1445+
matchLabels:
1446+
app: sample-deploy
1447+
template:
1448+
metadata:
1449+
labels:
1450+
app: sample-deploy
1451+
spec:
1452+
containers:
1453+
- image: nginx
1454+
name: main
1455+
env:
1456+
- name: deployment-name
1457+
value: XXXXX
1458+
`,
1459+
replacements: `replacements:
1460+
- source:
1461+
kind: Deployment
1462+
name: sample-deploy
1463+
fieldPath: metadata.name
1464+
targets:
1465+
- select:
1466+
kind: Deployment
1467+
fieldPaths:
1468+
- spec.template.spec.containers.*.env.[name=deployment-name].value
1469+
`,
1470+
expected: `apiVersion: apps/v1
1471+
kind: Deployment
1472+
metadata:
1473+
labels:
1474+
app: sample-deploy
1475+
name: sample-deploy
1476+
spec:
1477+
replicas: 1
1478+
selector:
1479+
matchLabels:
1480+
app: sample-deploy
1481+
template:
1482+
metadata:
1483+
labels:
1484+
app: sample-deploy
1485+
spec:
1486+
containers:
1487+
- image: nginx
1488+
name: main
1489+
env:
1490+
- name: deployment-name
1491+
value: sample-deploy`,
1492+
},
1493+
"list index contains '*' character": {
1494+
input: `apiVersion: apps/v1
1495+
kind: Deployment
1496+
metadata:
1497+
labels:
1498+
app: sample-deploy
1499+
name: sample-deploy
1500+
spec:
1501+
replicas: 1
1502+
selector:
1503+
matchLabels:
1504+
app: sample-deploy
1505+
template:
1506+
metadata:
1507+
labels:
1508+
app: sample-deploy
1509+
spec:
1510+
containers:
1511+
- image: nginx
1512+
name: main
1513+
env:
1514+
- name: deployment-name
1515+
value: XXXXX
1516+
- name: foo
1517+
value: bar
1518+
- image: nginx
1519+
name: sidecar
1520+
env:
1521+
- name: deployment-name
1522+
value: YYYYY
1523+
`,
1524+
replacements: `replacements:
1525+
- source:
1526+
kind: Deployment
1527+
name: sample-deploy
1528+
fieldPath: metadata.name
1529+
targets:
1530+
- select:
1531+
kind: Deployment
1532+
fieldPaths:
1533+
- spec.template.spec.containers.*.env.[name=deployment-name].value
1534+
`,
1535+
expected: `apiVersion: apps/v1
1536+
kind: Deployment
1537+
metadata:
1538+
labels:
1539+
app: sample-deploy
1540+
name: sample-deploy
1541+
spec:
1542+
replicas: 1
1543+
selector:
1544+
matchLabels:
1545+
app: sample-deploy
1546+
template:
1547+
metadata:
1548+
labels:
1549+
app: sample-deploy
1550+
spec:
1551+
containers:
1552+
- image: nginx
1553+
name: main
1554+
env:
1555+
- name: deployment-name
1556+
value: sample-deploy
1557+
- name: foo
1558+
value: bar
1559+
- image: nginx
1560+
name: sidecar
1561+
env:
1562+
- name: deployment-name
1563+
value: sample-deploy`,
14341564
},
14351565
"multiple field paths in target": {
14361566
input: `apiVersion: v1
@@ -1513,7 +1643,7 @@ spec:
15131643
kind: Deployment
15141644
metadata:
15151645
name: pre-deploy
1516-
annotations:
1646+
annotations:
15171647
internal.config.kubernetes.io/previousNames: deploy,deploy
15181648
internal.config.kubernetes.io/previousKinds: CronJob,Deployment
15191649
internal.config.kubernetes.io/previousNamespaces: default,default
@@ -1535,7 +1665,7 @@ spec:
15351665
- select:
15361666
kind: Deployment
15371667
name: deploy
1538-
fieldPaths:
1668+
fieldPaths:
15391669
- spec.template.spec.containers.1.image
15401670
`,
15411671
expected: `apiVersion: v1
@@ -1556,7 +1686,6 @@ spec:
15561686
name: postgresdb
15571687
`,
15581688
},
1559-
15601689
"replacement source.fieldPath does not exist": {
15611690
input: `apiVersion: v1
15621691
kind: ConfigMap
@@ -1628,7 +1757,7 @@ spec:
16281757
targets:
16291758
- select:
16301759
annotationSelector: foo=bar-1
1631-
fieldPaths:
1760+
fieldPaths:
16321761
- spec.template.spec.containers.1.image
16331762
`,
16341763
expected: `apiVersion: v1
@@ -1702,7 +1831,7 @@ spec:
17021831
targets:
17031832
- select:
17041833
labelSelector: foo=bar-1
1705-
fieldPaths:
1834+
fieldPaths:
17061835
- spec.template.spec.containers.1.image
17071836
`,
17081837
expected: `apiVersion: v1
@@ -1778,7 +1907,7 @@ spec:
17781907
kind: Deployment
17791908
reject:
17801909
- labelSelector: foo=bar-2
1781-
fieldPaths:
1910+
fieldPaths:
17821911
- spec.template.spec.containers.1.image
17831912
`,
17841913
expected: `apiVersion: v1

0 commit comments

Comments
 (0)