42
42
- select:
43
43
kind: Deployment
44
44
name: deploy
45
- fieldPaths:
45
+ fieldPaths:
46
46
- spec.template.spec.containers.1.image
47
47
` ,
48
48
expected : `apiVersion: v1
95
95
targets:
96
96
- select:
97
97
kind: Deployment
98
- fieldPaths:
98
+ fieldPaths:
99
99
- spec.template.spec.containers
100
100
` ,
101
101
expected : `apiVersion: v1
@@ -328,7 +328,7 @@ spec:
328
328
- select:
329
329
kind: Deployment
330
330
name: deploy1
331
- fieldPaths:
331
+ fieldPaths:
332
332
- spec.template.spec.containers.[name=postgresdb].image
333
333
` ,
334
334
expected : `apiVersion: v1
@@ -405,7 +405,7 @@ spec:
405
405
targets:
406
406
- select:
407
407
version: v3
408
- fieldPaths:
408
+ fieldPaths:
409
409
- spec.template.spec.containers.1.image
410
410
` ,
411
411
expected : `apiVersion: my-group-1/v1
@@ -492,7 +492,7 @@ spec:
492
492
targets:
493
493
- select:
494
494
name: my-name-2
495
- fieldPaths:
495
+ fieldPaths:
496
496
- spec.template.spec.containers.1.image
497
497
` ,
498
498
expected : `spec:
@@ -582,7 +582,7 @@ spec:
582
582
reject:
583
583
- name: deploy2
584
584
- name: deploy3
585
- fieldPaths:
585
+ fieldPaths:
586
586
- spec.template.spec.containers.1.image
587
587
` ,
588
588
expected : `apiVersion: v1
@@ -662,7 +662,7 @@ spec:
662
662
reject:
663
663
- kind: Deployment
664
664
name: my-name
665
- fieldPaths:
665
+ fieldPaths:
666
666
- spec.template.spec.containers.1.image
667
667
` ,
668
668
expected : `apiVersion: v1
@@ -731,7 +731,7 @@ spec:
731
731
reject:
732
732
- kind: Deployment
733
733
- name: my-name
734
- fieldPaths:
734
+ fieldPaths:
735
735
- spec.template.spec.containers.1.image
736
736
` ,
737
737
expected : `apiVersion: v1
@@ -799,7 +799,7 @@ spec:
799
799
- select:
800
800
kind: Deployment
801
801
name: deploy1
802
- fieldPaths:
802
+ fieldPaths:
803
803
- spec.template.spec.containers.1.image
804
804
options:
805
805
delimiter: ':'
@@ -872,7 +872,7 @@ spec:
872
872
- select:
873
873
kind: Pod
874
874
name: pod2
875
- fieldPaths:
875
+ fieldPaths:
876
876
- spec.volumes.0.projected.sources.0.configMap.items.0.path
877
877
options:
878
878
delimiter: '/'
@@ -948,7 +948,7 @@ spec:
948
948
- select:
949
949
kind: Pod
950
950
name: pod1
951
- fieldPaths:
951
+ fieldPaths:
952
952
- spec.volumes.0.projected.sources.0.configMap.items.0.path
953
953
options:
954
954
delimiter: '/'
@@ -1024,7 +1024,7 @@ spec:
1024
1024
- select:
1025
1025
kind: Pod
1026
1026
name: pod1
1027
- fieldPaths:
1027
+ fieldPaths:
1028
1028
- spec.volumes.0.projected.sources.0.configMap.items.0.path
1029
1029
options:
1030
1030
delimiter: '/'
@@ -1100,7 +1100,7 @@ spec:
1100
1100
- select:
1101
1101
kind: Pod
1102
1102
name: pod1
1103
- fieldPaths:
1103
+ fieldPaths:
1104
1104
- spec.volumes.0.projected.sources.0.configMap.items.0.path
1105
1105
options:
1106
1106
delimiter: '/'
@@ -1176,7 +1176,7 @@ spec:
1176
1176
- select:
1177
1177
kind: Pod
1178
1178
name: pod1
1179
- fieldPaths:
1179
+ fieldPaths:
1180
1180
- spec.volumes.0.projected.sources.0.configMap.items.0.path
1181
1181
options:
1182
1182
delimiter: '/'
@@ -1212,7 +1212,7 @@ metadata:
1212
1212
targets:
1213
1213
- select:
1214
1214
name: deploy1
1215
- fieldPaths:
1215
+ fieldPaths:
1216
1216
- spec.template.spec.containers
1217
1217
options:
1218
1218
create: true
@@ -1223,7 +1223,7 @@ metadata:
1223
1223
targets:
1224
1224
- select:
1225
1225
name: deploy2
1226
- fieldPaths:
1226
+ fieldPaths:
1227
1227
- spec.template.spec.containers
1228
1228
` ,
1229
1229
expected : `apiVersion: v1
@@ -1285,12 +1285,12 @@ spec:
1285
1285
kind: Pod
1286
1286
name: pod
1287
1287
fieldPath: spec.containers
1288
- options:
1288
+ options:
1289
1289
delimiter: "/"
1290
1290
targets:
1291
1291
- select:
1292
1292
kind: Deployment
1293
- fieldPaths:
1293
+ fieldPaths:
1294
1294
- spec.template.spec.containers
1295
1295
` ,
1296
1296
expectedErr : "delimiter option can only be used with scalar nodes" ,
@@ -1331,9 +1331,9 @@ spec:
1331
1331
targets:
1332
1332
- select:
1333
1333
kind: Deployment
1334
- fieldPaths:
1334
+ fieldPaths:
1335
1335
- spec.template.spec.containers
1336
- options:
1336
+ options:
1337
1337
delimiter: "/"
1338
1338
` ,
1339
1339
expectedErr : "delimiter option can only be used with scalar nodes" ,
@@ -1354,7 +1354,7 @@ metadata:
1354
1354
targets:
1355
1355
- select:
1356
1356
name: custom
1357
- fieldPaths:
1357
+ fieldPaths:
1358
1358
- metadata.annotations.[f.g.h/i-j]
1359
1359
` ,
1360
1360
expected : `apiVersion: v1
@@ -1431,6 +1431,136 @@ spec:
1431
1431
name: second
1432
1432
version: latest
1433
1433
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` ,
1434
1564
},
1435
1565
"multiple field paths in target" : {
1436
1566
input : `apiVersion: v1
@@ -1513,7 +1643,7 @@ spec:
1513
1643
kind: Deployment
1514
1644
metadata:
1515
1645
name: pre-deploy
1516
- annotations:
1646
+ annotations:
1517
1647
internal.config.kubernetes.io/previousNames: deploy,deploy
1518
1648
internal.config.kubernetes.io/previousKinds: CronJob,Deployment
1519
1649
internal.config.kubernetes.io/previousNamespaces: default,default
@@ -1535,7 +1665,7 @@ spec:
1535
1665
- select:
1536
1666
kind: Deployment
1537
1667
name: deploy
1538
- fieldPaths:
1668
+ fieldPaths:
1539
1669
- spec.template.spec.containers.1.image
1540
1670
` ,
1541
1671
expected : `apiVersion: v1
@@ -1556,7 +1686,6 @@ spec:
1556
1686
name: postgresdb
1557
1687
` ,
1558
1688
},
1559
-
1560
1689
"replacement source.fieldPath does not exist" : {
1561
1690
input : `apiVersion: v1
1562
1691
kind: ConfigMap
@@ -1628,7 +1757,7 @@ spec:
1628
1757
targets:
1629
1758
- select:
1630
1759
annotationSelector: foo=bar-1
1631
- fieldPaths:
1760
+ fieldPaths:
1632
1761
- spec.template.spec.containers.1.image
1633
1762
` ,
1634
1763
expected : `apiVersion: v1
@@ -1702,7 +1831,7 @@ spec:
1702
1831
targets:
1703
1832
- select:
1704
1833
labelSelector: foo=bar-1
1705
- fieldPaths:
1834
+ fieldPaths:
1706
1835
- spec.template.spec.containers.1.image
1707
1836
` ,
1708
1837
expected : `apiVersion: v1
@@ -1778,7 +1907,7 @@ spec:
1778
1907
kind: Deployment
1779
1908
reject:
1780
1909
- labelSelector: foo=bar-2
1781
- fieldPaths:
1910
+ fieldPaths:
1782
1911
- spec.template.spec.containers.1.image
1783
1912
` ,
1784
1913
expected : `apiVersion: v1
0 commit comments