Skip to content

Commit 9a5c578

Browse files
AnishShahvivzbansal
authored andcommitted
test: pod-resize tests for sidecar containers
1 parent 6c5cf68 commit 9a5c578

File tree

2 files changed

+440
-44
lines changed

2 files changed

+440
-44
lines changed

test/e2e/common/node/pod_resize.go

Lines changed: 317 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"strconv"
2323
"time"
2424

25+
v1 "k8s.io/api/core/v1"
2526
"k8s.io/apimachinery/pkg/api/resource"
2627
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2728
"k8s.io/apimachinery/pkg/types"
@@ -33,7 +34,6 @@ import (
3334

3435
"github.com/onsi/ginkgo/v2"
3536
"github.com/onsi/gomega"
36-
v1 "k8s.io/api/core/v1"
3737
)
3838

3939
const (
@@ -968,6 +968,322 @@ func doPodResizeTests() {
968968
},
969969
},
970970
},
971+
{
972+
name: "Guaranteed QoS pod, one restartable init container - increase CPU & memory",
973+
containers: []e2epod.ResizableContainerInfo{
974+
{
975+
Name: "c1",
976+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
977+
CPUPolicy: &noRestart,
978+
MemPolicy: &noRestart,
979+
},
980+
{
981+
Name: "c1-init",
982+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
983+
CPUPolicy: &noRestart,
984+
MemPolicy: &noRestart,
985+
InitCtr: true,
986+
RestartPolicy: v1.ContainerRestartPolicyAlways,
987+
},
988+
},
989+
patchString: `{"spec":{"initContainers":[
990+
{"name":"c1-init", "resources":{"requests":{"cpu":"200m","memory":"400Mi"},"limits":{"cpu":"200m","memory":"400Mi"}}}
991+
]}}`,
992+
expected: []e2epod.ResizableContainerInfo{
993+
{
994+
Name: "c1",
995+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
996+
CPUPolicy: &noRestart,
997+
MemPolicy: &noRestart,
998+
},
999+
{
1000+
Name: "c1-init",
1001+
Resources: &e2epod.ContainerResources{CPUReq: "200m", CPULim: "200m", MemReq: "400Mi", MemLim: "400Mi"},
1002+
CPUPolicy: &noRestart,
1003+
MemPolicy: &noRestart,
1004+
InitCtr: true,
1005+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1006+
},
1007+
},
1008+
},
1009+
{
1010+
name: "Guaranteed QoS pod, one restartable init container - decrease CPU & memory",
1011+
containers: []e2epod.ResizableContainerInfo{
1012+
{
1013+
Name: "c1",
1014+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "300m", MemReq: "500Mi", MemLim: "500Mi"},
1015+
CPUPolicy: &noRestart,
1016+
MemPolicy: &noRestart,
1017+
},
1018+
{
1019+
Name: "c1-init",
1020+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "300m", MemReq: "500Mi", MemLim: "500Mi"},
1021+
CPUPolicy: &noRestart,
1022+
MemPolicy: &noRestart,
1023+
InitCtr: true,
1024+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1025+
},
1026+
},
1027+
patchString: `{"spec":{"initContainers":[
1028+
{"name":"c1-init", "resources":{"requests":{"cpu":"100m","memory":"250Mi"},"limits":{"cpu":"100m","memory":"250Mi"}}}
1029+
]}}`,
1030+
expected: []e2epod.ResizableContainerInfo{
1031+
{
1032+
Name: "c1",
1033+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "300m", MemReq: "500Mi", MemLim: "500Mi"},
1034+
CPUPolicy: &noRestart,
1035+
MemPolicy: &noRestart,
1036+
},
1037+
{
1038+
Name: "c1-init",
1039+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "250Mi", MemLim: "250Mi"},
1040+
CPUPolicy: &noRestart,
1041+
MemPolicy: &noRestart,
1042+
InitCtr: true,
1043+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1044+
},
1045+
},
1046+
},
1047+
{
1048+
name: "Guaranteed QoS pod, one restartable init container - increase CPU & decrease memory",
1049+
containers: []e2epod.ResizableContainerInfo{
1050+
{
1051+
Name: "c1",
1052+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
1053+
},
1054+
{
1055+
Name: "c1-init",
1056+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
1057+
InitCtr: true,
1058+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1059+
},
1060+
},
1061+
patchString: `{"spec":{"initContainers":[
1062+
{"name":"c1-init", "resources":{"requests":{"cpu":"200m","memory":"100Mi"},"limits":{"cpu":"200m","memory":"100Mi"}}}
1063+
]}}`,
1064+
expected: []e2epod.ResizableContainerInfo{
1065+
{
1066+
Name: "c1",
1067+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
1068+
},
1069+
{
1070+
Name: "c1-init",
1071+
Resources: &e2epod.ContainerResources{CPUReq: "200m", CPULim: "200m", MemReq: "100Mi", MemLim: "100Mi"},
1072+
InitCtr: true,
1073+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1074+
},
1075+
},
1076+
},
1077+
{
1078+
name: "Guaranteed QoS pod, one restartable init container - decrease CPU & increase memory",
1079+
containers: []e2epod.ResizableContainerInfo{
1080+
{
1081+
Name: "c1",
1082+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
1083+
},
1084+
{
1085+
Name: "c1-init",
1086+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
1087+
InitCtr: true,
1088+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1089+
},
1090+
},
1091+
patchString: `{"spec":{"initContainers":[
1092+
{"name":"c1-init", "resources":{"requests":{"cpu":"50m","memory":"300Mi"},"limits":{"cpu":"50m","memory":"300Mi"}}}
1093+
]}}`,
1094+
expected: []e2epod.ResizableContainerInfo{
1095+
{
1096+
Name: "c1",
1097+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "100m", MemReq: "200Mi", MemLim: "200Mi"},
1098+
},
1099+
{
1100+
Name: "c1-init",
1101+
Resources: &e2epod.ContainerResources{CPUReq: "50m", CPULim: "50m", MemReq: "300Mi", MemLim: "300Mi"},
1102+
InitCtr: true,
1103+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1104+
},
1105+
},
1106+
},
1107+
{
1108+
name: "Burstable QoS pod, one container, one restartable init container - decrease init container CPU & memory",
1109+
containers: []e2epod.ResizableContainerInfo{
1110+
{
1111+
Name: "c1",
1112+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1113+
},
1114+
{
1115+
Name: "c1-init",
1116+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "400m", MemReq: "300Mi", MemLim: "400Mi"},
1117+
InitCtr: true,
1118+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1119+
},
1120+
},
1121+
patchString: `{"spec":{"initContainers":[
1122+
{"name":"c1-init", "resources":{"requests":{"cpu":"100m","memory":"100Mi"},"limits":{"cpu":"200m","memory":"200Mi"}}}
1123+
]}}`,
1124+
expected: []e2epod.ResizableContainerInfo{
1125+
{
1126+
Name: "c1",
1127+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1128+
},
1129+
{
1130+
Name: "c1-init",
1131+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1132+
InitCtr: true,
1133+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1134+
},
1135+
},
1136+
},
1137+
{
1138+
name: "Burstable QoS pod, one container, one restartable init container - increase init container CPU & memory",
1139+
containers: []e2epod.ResizableContainerInfo{
1140+
{
1141+
Name: "c1",
1142+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1143+
},
1144+
{
1145+
Name: "c1-init",
1146+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1147+
InitCtr: true,
1148+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1149+
},
1150+
},
1151+
patchString: `{"spec":{"initContainers":[
1152+
{"name":"c1-init", "resources":{"requests":{"cpu":"300m","memory":"300Mi"},"limits":{"cpu":"400m","memory":"400Mi"}}}
1153+
]}}`,
1154+
expected: []e2epod.ResizableContainerInfo{
1155+
{
1156+
Name: "c1",
1157+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1158+
},
1159+
{
1160+
Name: "c1-init",
1161+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "400m", MemReq: "300Mi", MemLim: "400Mi"},
1162+
InitCtr: true,
1163+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1164+
},
1165+
},
1166+
},
1167+
{
1168+
name: "Burstable QoS pod, one container, one restartable init container - decrease init container CPU only",
1169+
containers: []e2epod.ResizableContainerInfo{
1170+
{
1171+
Name: "c1",
1172+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1173+
},
1174+
{
1175+
Name: "c1-init",
1176+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "400m", MemReq: "300Mi", MemLim: "400Mi"},
1177+
InitCtr: true,
1178+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1179+
},
1180+
},
1181+
patchString: `{"spec":{"initContainers":[
1182+
{"name":"c1-init", "resources":{"requests":{"cpu":"100m"},"limits":{"cpu":"200m"}}}
1183+
]}}`,
1184+
expected: []e2epod.ResizableContainerInfo{
1185+
{
1186+
Name: "c1",
1187+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1188+
},
1189+
{
1190+
Name: "c1-init",
1191+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "300Mi", MemLim: "400Mi"},
1192+
InitCtr: true,
1193+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1194+
},
1195+
},
1196+
},
1197+
{
1198+
name: "Burstable QoS pod, one container, one restartable init container - increase init container CPU only",
1199+
containers: []e2epod.ResizableContainerInfo{
1200+
{
1201+
Name: "c1",
1202+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1203+
},
1204+
{
1205+
Name: "c1-init",
1206+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1207+
InitCtr: true,
1208+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1209+
},
1210+
},
1211+
patchString: `{"spec":{"initContainers":[
1212+
{"name":"c1-init", "resources":{"requests":{"cpu":"300m"},"limits":{"cpu":"400m"}}}
1213+
]}}`,
1214+
expected: []e2epod.ResizableContainerInfo{
1215+
{
1216+
Name: "c1",
1217+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1218+
},
1219+
{
1220+
Name: "c1-init",
1221+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "400m", MemReq: "100Mi", MemLim: "200Mi"},
1222+
InitCtr: true,
1223+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1224+
},
1225+
},
1226+
},
1227+
{
1228+
name: "Burstable QoS pod, one container, one restartable init container - decrease init container memory only",
1229+
containers: []e2epod.ResizableContainerInfo{
1230+
{
1231+
Name: "c1",
1232+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1233+
},
1234+
{
1235+
Name: "c1-init",
1236+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "400m", MemReq: "300Mi", MemLim: "400Mi"},
1237+
InitCtr: true,
1238+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1239+
},
1240+
},
1241+
patchString: `{"spec":{"initContainers":[
1242+
{"name":"c1-init", "resources":{"requests":{"memory":"100Mi"},"limits":{"memory":"200Mi"}}}
1243+
]}}`,
1244+
expected: []e2epod.ResizableContainerInfo{
1245+
{
1246+
Name: "c1",
1247+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1248+
},
1249+
{
1250+
Name: "c1-init",
1251+
Resources: &e2epod.ContainerResources{CPUReq: "300m", CPULim: "400m", MemReq: "100Mi", MemLim: "200Mi"},
1252+
InitCtr: true,
1253+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1254+
},
1255+
},
1256+
},
1257+
{
1258+
name: "Burstable QoS pod, one container, one restartable init container - increase init container memory only",
1259+
containers: []e2epod.ResizableContainerInfo{
1260+
{
1261+
Name: "c1",
1262+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1263+
},
1264+
{
1265+
Name: "c1-init",
1266+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1267+
InitCtr: true,
1268+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1269+
},
1270+
},
1271+
patchString: `{"spec":{"initContainers":[
1272+
{"name":"c1-init", "resources":{"requests":{"memory":"300Mi"},"limits":{"memory":"400Mi"}}}
1273+
]}}`,
1274+
expected: []e2epod.ResizableContainerInfo{
1275+
{
1276+
Name: "c1",
1277+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "100Mi", MemLim: "200Mi"},
1278+
},
1279+
{
1280+
Name: "c1-init",
1281+
Resources: &e2epod.ContainerResources{CPUReq: "100m", CPULim: "200m", MemReq: "300Mi", MemLim: "400Mi"},
1282+
InitCtr: true,
1283+
RestartPolicy: v1.ContainerRestartPolicyAlways,
1284+
},
1285+
},
1286+
},
9711287
}
9721288

9731289
for idx := range tests {

0 commit comments

Comments
 (0)