@@ -1052,6 +1052,8 @@ func TestInjectLibInitContainer(t *testing.T) {
1052
1052
wantErr bool
1053
1053
wantCPU string
1054
1054
wantMem string
1055
+ limitCPU string
1056
+ limitMem string
1055
1057
secCtx * corev1.SecurityContext
1056
1058
}{
1057
1059
{
@@ -1469,6 +1471,124 @@ func TestInjectLibInitContainer(t *testing.T) {
1469
1471
wantCPU : "700m" ,
1470
1472
wantMem : "151Mi" ,
1471
1473
},
1474
+ {
1475
+ name : "init_container_request_greater_than_limit" ,
1476
+ pod : & corev1.Pod {
1477
+ ObjectMeta : metav1.ObjectMeta {
1478
+ Name : "java-pod" ,
1479
+ },
1480
+ Spec : corev1.PodSpec {
1481
+ InitContainers : []corev1.Container {{Name : "i1" , Resources : corev1.ResourceRequirements {
1482
+ Limits : corev1.ResourceList {}, // No limits
1483
+ Requests : corev1.ResourceList {
1484
+ corev1 .ResourceCPU : resource .MustParse ("200m" ),
1485
+ corev1 .ResourceMemory : resource .MustParse ("200Mi" ),
1486
+ },
1487
+ }}},
1488
+ Containers : []corev1.Container {{Name : "c1" , Resources : corev1.ResourceRequirements {
1489
+ Limits : corev1.ResourceList {
1490
+ corev1 .ResourceCPU : resource .MustParse ("100m" ),
1491
+ corev1 .ResourceMemory : resource .MustParse ("100Mi" ),
1492
+ },
1493
+ Requests : corev1.ResourceList {
1494
+ corev1 .ResourceCPU : resource .MustParse ("100m" ),
1495
+ corev1 .ResourceMemory : resource .MustParse ("100Mi" ),
1496
+ },
1497
+ }}},
1498
+ },
1499
+ },
1500
+ image : "gcr.io/datadoghq/dd-lib-java-init:v1" ,
1501
+ lang : java ,
1502
+ wantErr : false ,
1503
+ wantCPU : "200m" ,
1504
+ wantMem : "200Mi" ,
1505
+ limitCPU : "200m" ,
1506
+ limitMem : "200Mi" ,
1507
+ },
1508
+ {
1509
+ name : "containers_request_greater_than_limit" ,
1510
+ pod : & corev1.Pod {
1511
+ ObjectMeta : metav1.ObjectMeta {
1512
+ Name : "java-pod" ,
1513
+ },
1514
+ Spec : corev1.PodSpec {
1515
+ InitContainers : []corev1.Container {{Name : "i1" , Resources : corev1.ResourceRequirements {
1516
+ Limits : corev1.ResourceList {
1517
+ corev1 .ResourceCPU : resource .MustParse ("100m" ),
1518
+ corev1 .ResourceMemory : resource .MustParse ("100Mi" ),
1519
+ },
1520
+ Requests : corev1.ResourceList {
1521
+ corev1 .ResourceCPU : resource .MustParse ("100m" ),
1522
+ corev1 .ResourceMemory : resource .MustParse ("100Mi" ),
1523
+ },
1524
+ }}},
1525
+ Containers : []corev1.Container {{Name : "c1" , Resources : corev1.ResourceRequirements {
1526
+ Limits : corev1.ResourceList {}, // No limits
1527
+ Requests : corev1.ResourceList {
1528
+ corev1 .ResourceCPU : resource .MustParse ("200m" ),
1529
+ corev1 .ResourceMemory : resource .MustParse ("200Mi" ),
1530
+ },
1531
+ }}},
1532
+ },
1533
+ },
1534
+ image : "gcr.io/datadoghq/dd-lib-java-init:v1" ,
1535
+ lang : java ,
1536
+ wantErr : false ,
1537
+ wantCPU : "200m" ,
1538
+ wantMem : "200Mi" ,
1539
+ limitCPU : "200m" ,
1540
+ limitMem : "200Mi" ,
1541
+ },
1542
+ {
1543
+ name : "sidecar_container_request_greater_than_limit" ,
1544
+ pod : & corev1.Pod {
1545
+ ObjectMeta : metav1.ObjectMeta {
1546
+ Name : "java-pod" ,
1547
+ },
1548
+ Spec : corev1.PodSpec {
1549
+ InitContainers : []corev1.Container {
1550
+ {
1551
+ Name : "init-container-1" ,
1552
+ Resources : corev1.ResourceRequirements {
1553
+ Limits : corev1.ResourceList {
1554
+ corev1 .ResourceCPU : resource .MustParse ("501m" ),
1555
+ corev1 .ResourceMemory : resource .MustParse ("101Mi" ),
1556
+ },
1557
+ Requests : corev1.ResourceList {
1558
+ corev1 .ResourceCPU : resource .MustParse ("501m" ),
1559
+ corev1 .ResourceMemory : resource .MustParse ("101Mi" ),
1560
+ },
1561
+ },
1562
+ }, {
1563
+ Name : "sidecar-container-1" ,
1564
+ RestartPolicy : pointer .Ptr (corev1 .ContainerRestartPolicyAlways ),
1565
+ Resources : corev1.ResourceRequirements {
1566
+ Limits : corev1.ResourceList {},
1567
+ Requests : corev1.ResourceList {
1568
+ corev1 .ResourceCPU : resource .MustParse ("500m" ),
1569
+ corev1 .ResourceMemory : resource .MustParse ("50Mi" ),
1570
+ },
1571
+ },
1572
+ },
1573
+ },
1574
+ Containers : []corev1.Container {{Name : "c1" , Resources : corev1.ResourceRequirements {
1575
+ Limits : corev1.ResourceList {
1576
+ corev1 .ResourceCPU : resource .MustParse ("200m" ),
1577
+ corev1 .ResourceMemory : resource .MustParse ("101Mi" ),
1578
+ },
1579
+ Requests : corev1.ResourceList {
1580
+ corev1 .ResourceCPU : resource .MustParse ("200m" ),
1581
+ corev1 .ResourceMemory : resource .MustParse ("101Mi" ),
1582
+ },
1583
+ }}},
1584
+ },
1585
+ },
1586
+ image : "gcr.io/datadoghq/dd-lib-java-init:v1" ,
1587
+ lang : java ,
1588
+ wantErr : false ,
1589
+ wantCPU : "700m" ,
1590
+ wantMem : "151Mi" ,
1591
+ },
1472
1592
{
1473
1593
name : "todo" ,
1474
1594
pod : & corev1.Pod {
@@ -1579,17 +1699,27 @@ func TestInjectLibInitContainer(t *testing.T) {
1579
1699
1580
1700
req := tt .pod .Spec .InitContainers [initalInitContainerCount ].Resources .Requests [corev1 .ResourceCPU ]
1581
1701
lim := tt .pod .Spec .InitContainers [initalInitContainerCount ].Resources .Limits [corev1 .ResourceCPU ]
1582
- wantCPUQuantity := resource .MustParse (tt .wantCPU )
1583
- t .Log ("CPU wants:" , wantCPUQuantity .String (), "actual lim: " , lim .String ())
1584
- require .Zero (t , wantCPUQuantity .Cmp (req )) // Cmp returns 0 if equal
1585
- require .Zero (t , wantCPUQuantity .Cmp (lim ))
1702
+ requestCPUQuantity := resource .MustParse (tt .wantCPU )
1703
+ limitCPUQuantity := requestCPUQuantity
1704
+ if tt .limitCPU != "" {
1705
+ limitCPUQuantity = resource .MustParse (tt .limitCPU )
1706
+ }
1707
+
1708
+ t .Log ("expected CPU request/limit:" , requestCPUQuantity .String (), "/" , limitCPUQuantity .String (), ", actual request/limit:" , req .String (), "/" , lim .String ())
1709
+ require .Zero (t , requestCPUQuantity .Cmp (req ), "expected CPU request: %s, actual: %s" , requestCPUQuantity .String (), req .String ()) // Cmp returns 0 if equal
1710
+ require .Zero (t , limitCPUQuantity .Cmp (lim ), "expected CPU limit: %s, actual: %s" , limitCPUQuantity .String (), lim .String ())
1586
1711
1587
1712
req = tt .pod .Spec .InitContainers [initalInitContainerCount ].Resources .Requests [corev1 .ResourceMemory ]
1588
1713
lim = tt .pod .Spec .InitContainers [initalInitContainerCount ].Resources .Limits [corev1 .ResourceMemory ]
1589
- wantMemQuantity := resource .MustParse (tt .wantMem )
1590
- t .Log ("memeory wants:" , wantMemQuantity .String (), "actual lim: " , lim .String ())
1591
- require .Zero (t , wantMemQuantity .Cmp (req ))
1592
- require .Zero (t , wantMemQuantity .Cmp (lim ))
1714
+ requestMemQuantity := resource .MustParse (tt .wantMem )
1715
+ limitMemQuantity := requestMemQuantity
1716
+ if tt .limitMem != "" {
1717
+ limitMemQuantity = resource .MustParse (tt .limitMem )
1718
+ }
1719
+
1720
+ t .Log ("expected memory request/limit:" , requestMemQuantity .String (), "/" , limitMemQuantity .String (), ", actual request/limit:" , req .String (), "/" , lim .String ())
1721
+ require .Zero (t , requestMemQuantity .Cmp (req ), "expected memory request: %s, actual: %s" , requestMemQuantity .String (), req .String ())
1722
+ require .Zero (t , limitMemQuantity .Cmp (lim ), "expected memory limit: %s, actual: %s" , limitMemQuantity .String (), lim .String ())
1593
1723
1594
1724
expSecCtx := tt .pod .Spec .InitContainers [0 ].SecurityContext
1595
1725
require .Equal (t , tt .secCtx , expSecCtx )
0 commit comments