@@ -27,54 +27,74 @@ import (
2727
2828func TestParseResourceRequirements (t * testing.T ) {
2929 type args struct {
30- cpuRequest string
31- memRequest string
32- cpuLimit string
33- memLimit string
30+ cpuRequest string
31+ memRequest string
32+ ephemeralStorageRequest string
33+ cpuLimit string
34+ memLimit string
35+ ephemeralStorageLimit string
3436 }
3537 tests := []struct {
3638 name string
3739 args args
3840 wantErr bool
3941 expected * corev1api.ResourceRequirements
4042 }{
41- {"unbounded quantities" , args {"0" , "0" , "0" , "0" }, false , & corev1api.ResourceRequirements {
43+ {"unbounded quantities" , args {"0" , "0" , "0" , "0" , "0" , "0" }, false , & corev1api.ResourceRequirements {
4244 Requests : corev1api.ResourceList {},
4345 Limits : corev1api.ResourceList {},
4446 }},
45- {"valid quantities" , args {"100m" , "128Mi" , "200m" , "256Mi" }, false , nil },
46- {"CPU request with unbounded limit" , args {"100m" , "128Mi" , "0" , "256Mi" }, false , & corev1api.ResourceRequirements {
47+ {"valid quantities" , args {"100m" , "128Mi" , "5Gi" , " 200m" , "256Mi" , "10Gi " }, false , nil },
48+ {"CPU request with unbounded limit" , args {"100m" , "128Mi" , "5Gi" , " 0" , "256Mi" , "10Gi " }, false , & corev1api.ResourceRequirements {
4749 Requests : corev1api.ResourceList {
48- corev1api .ResourceCPU : resource .MustParse ("100m" ),
49- corev1api .ResourceMemory : resource .MustParse ("128Mi" ),
50+ corev1api .ResourceCPU : resource .MustParse ("100m" ),
51+ corev1api .ResourceMemory : resource .MustParse ("128Mi" ),
52+ corev1api .ResourceEphemeralStorage : resource .MustParse ("5Gi" ),
5053 },
5154 Limits : corev1api.ResourceList {
52- corev1api .ResourceMemory : resource .MustParse ("256Mi" ),
55+ corev1api .ResourceMemory : resource .MustParse ("256Mi" ),
56+ corev1api .ResourceEphemeralStorage : resource .MustParse ("10Gi" ),
57+ },
58+ }},
59+ {"Mem request with unbounded limit" , args {"100m" , "128Mi" , "5Gi" , "200m" , "0" , "10Gi" }, false , & corev1api.ResourceRequirements {
60+ Requests : corev1api.ResourceList {
61+ corev1api .ResourceCPU : resource .MustParse ("100m" ),
62+ corev1api .ResourceMemory : resource .MustParse ("128Mi" ),
63+ corev1api .ResourceEphemeralStorage : resource .MustParse ("5Gi" ),
64+ },
65+ Limits : corev1api.ResourceList {
66+ corev1api .ResourceCPU : resource .MustParse ("200m" ),
67+ corev1api .ResourceEphemeralStorage : resource .MustParse ("10Gi" ),
5368 },
5469 }},
55- {"Mem request with unbounded limit" , args {"100m" , "128Mi" , "200m" , "0" }, false , & corev1api.ResourceRequirements {
70+ {"Ephemeral storage request with unbounded limit" , args {"100m" , "128Mi" , "5Gi" , " 200m" , "256Mi " , "0" }, false , & corev1api.ResourceRequirements {
5671 Requests : corev1api.ResourceList {
57- corev1api .ResourceCPU : resource .MustParse ("100m" ),
58- corev1api .ResourceMemory : resource .MustParse ("128Mi" ),
72+ corev1api .ResourceCPU : resource .MustParse ("100m" ),
73+ corev1api .ResourceMemory : resource .MustParse ("128Mi" ),
74+ corev1api .ResourceEphemeralStorage : resource .MustParse ("5Gi" ),
5975 },
6076 Limits : corev1api.ResourceList {
61- corev1api .ResourceCPU : resource .MustParse ("200m" ),
77+ corev1api .ResourceCPU : resource .MustParse ("200m" ),
78+ corev1api .ResourceMemory : resource .MustParse ("256Mi" ),
6279 },
6380 }},
64- {"CPU/Mem requests with unbounded limits" , args {"100m" , "128Mi" , "0" , "0" }, false , & corev1api.ResourceRequirements {
81+
82+ {"CPU/Mem/EphemeralStorage requests with unbounded limits" , args {"100m" , "128Mi" , "5Gi" , "0" , "0" , "0" }, false , & corev1api.ResourceRequirements {
6583 Requests : corev1api.ResourceList {
66- corev1api .ResourceCPU : resource .MustParse ("100m" ),
67- corev1api .ResourceMemory : resource .MustParse ("128Mi" ),
84+ corev1api .ResourceCPU : resource .MustParse ("100m" ),
85+ corev1api .ResourceMemory : resource .MustParse ("128Mi" ),
86+ corev1api .ResourceEphemeralStorage : resource .MustParse ("5Gi" ),
6887 },
6988 Limits : corev1api.ResourceList {},
7089 }},
71- {"invalid quantity" , args {"100m" , "invalid" , "200m" , "256Mi" }, true , nil },
72- {"CPU request greater than limit" , args {"300m" , "128Mi" , "200m" , "256Mi" }, true , nil },
73- {"memory request greater than limit" , args {"100m" , "512Mi" , "200m" , "256Mi" }, true , nil },
90+ {"invalid quantity" , args {"100m" , "invalid" , "1Gi" , "200m" , "256Mi" , "valid" }, true , nil },
91+ {"CPU request greater than limit" , args {"300m" , "128Mi" , "5Gi" , "200m" , "256Mi" , "10Gi" }, true , nil },
92+ {"memory request greater than limit" , args {"100m" , "512Mi" , "5Gi" , "200m" , "256Mi" , "10Gi" }, true , nil },
93+ {"ephemeral storage request greater than limit" , args {"100m" , "128Mi" , "10Gi" , "200m" , "256Mi" , "5Gi" }, true , nil },
7494 }
7595 for _ , tt := range tests {
7696 t .Run (tt .name , func (t * testing.T ) {
77- got , err := ParseResourceRequirements (tt .args .cpuRequest , tt .args .memRequest , tt .args .cpuLimit , tt .args .memLimit )
97+ got , err := ParseResourceRequirements (tt .args .cpuRequest , tt .args .memRequest , tt .args .ephemeralStorageRequest , tt . args . cpuLimit , tt .args .memLimit , tt . args . ephemeralStorageLimit )
7898 if tt .wantErr {
7999 assert .Error (t , err )
80100 return
@@ -85,12 +105,14 @@ func TestParseResourceRequirements(t *testing.T) {
85105 if tt .expected == nil {
86106 expected = corev1api.ResourceRequirements {
87107 Requests : corev1api.ResourceList {
88- corev1api .ResourceCPU : resource .MustParse (tt .args .cpuRequest ),
89- corev1api .ResourceMemory : resource .MustParse (tt .args .memRequest ),
108+ corev1api .ResourceCPU : resource .MustParse (tt .args .cpuRequest ),
109+ corev1api .ResourceMemory : resource .MustParse (tt .args .memRequest ),
110+ corev1api .ResourceEphemeralStorage : resource .MustParse (tt .args .ephemeralStorageRequest ),
90111 },
91112 Limits : corev1api.ResourceList {
92- corev1api .ResourceCPU : resource .MustParse (tt .args .cpuLimit ),
93- corev1api .ResourceMemory : resource .MustParse (tt .args .memLimit ),
113+ corev1api .ResourceCPU : resource .MustParse (tt .args .cpuLimit ),
114+ corev1api .ResourceMemory : resource .MustParse (tt .args .memLimit ),
115+ corev1api .ResourceEphemeralStorage : resource .MustParse (tt .args .ephemeralStorageLimit ),
94116 },
95117 }
96118 } else {
0 commit comments