@@ -75,50 +75,49 @@ func parseResourcesFromComponent(component *dw.Component) (*corev1.ResourceRequi
7575 if component .Container == nil {
7676 return nil , fmt .Errorf ("attemped to parse resource requirements from a non-container component" )
7777 }
78+
79+ resources := & corev1.ResourceRequirements {
80+ Limits : corev1.ResourceList {},
81+ Requests : corev1.ResourceList {},
82+ }
83+
7884 memLimitStr := component .Container .MemoryLimit
79- if memLimitStr == "" {
80- memLimitStr = "0Mi"
85+ if memLimitStr != "" {
86+ memoryLimit , err := resource .ParseQuantity (memLimitStr )
87+ if err != nil {
88+ return nil , fmt .Errorf ("failed to parse memory limit for container component %s: %w" , component .Name , err )
89+ }
90+ resources .Limits [corev1 .ResourceMemory ] = memoryLimit
8191 }
92+
8293 memRequestStr := component .Container .MemoryRequest
83- if memRequestStr == "" {
84- memRequestStr = "0Mi"
94+ if memRequestStr != "" {
95+ memoryRequest , err := resource .ParseQuantity (memRequestStr )
96+ if err != nil {
97+ return nil , fmt .Errorf ("failed to parse memory request for container component %s: %w" , component .Name , err )
98+ }
99+ resources .Requests [corev1 .ResourceMemory ] = memoryRequest
85100 }
101+
86102 cpuLimitStr := component .Container .CpuLimit
87- if cpuLimitStr == "" {
88- cpuLimitStr = "0m"
103+ if cpuLimitStr != "" {
104+ cpuLimit , err := resource .ParseQuantity (cpuLimitStr )
105+ if err != nil {
106+ return nil , fmt .Errorf ("failed to parse CPU limit for container component %s: %w" , component .Name , err )
107+ }
108+ resources .Limits [corev1 .ResourceCPU ] = cpuLimit
89109 }
110+
90111 cpuRequestStr := component .Container .CpuRequest
91- if cpuRequestStr == "" {
92- cpuRequestStr = "0m"
112+ if cpuRequestStr != "" {
113+ cpuRequest , err := resource .ParseQuantity (cpuRequestStr )
114+ if err != nil {
115+ return nil , fmt .Errorf ("failed to parse CPU request for container component %s: %w" , component .Name , err )
116+ }
117+ resources .Requests [corev1 .ResourceCPU ] = cpuRequest
93118 }
94119
95- memoryLimit , err := resource .ParseQuantity (memLimitStr )
96- if err != nil {
97- return nil , fmt .Errorf ("failed to parse memory limit for container component %s: %w" , component .Name , err )
98- }
99- memoryRequest , err := resource .ParseQuantity (memRequestStr )
100- if err != nil {
101- return nil , fmt .Errorf ("failed to parse memory request for container component %s: %w" , component .Name , err )
102- }
103- cpuLimit , err := resource .ParseQuantity (cpuLimitStr )
104- if err != nil {
105- return nil , fmt .Errorf ("failed to parse CPU limit for container component %s: %w" , component .Name , err )
106- }
107- cpuRequest , err := resource .ParseQuantity (cpuRequestStr )
108- if err != nil {
109- return nil , fmt .Errorf ("failed to parse CPU request for container component %s: %w" , component .Name , err )
110- }
111-
112- return & corev1.ResourceRequirements {
113- Limits : corev1.ResourceList {
114- corev1 .ResourceMemory : memoryLimit ,
115- corev1 .ResourceCPU : cpuLimit ,
116- },
117- Requests : corev1.ResourceList {
118- corev1 .ResourceMemory : memoryRequest ,
119- corev1 .ResourceCPU : cpuRequest ,
120- },
121- }, nil
120+ return resources , nil
122121}
123122
124123func addResourceRequirements (resources * corev1.ResourceRequirements , toAdd * dw.Component ) error {
@@ -127,21 +126,19 @@ func addResourceRequirements(resources *corev1.ResourceRequirements, toAdd *dw.C
127126 return err
128127 }
129128
130- memoryLimit := resources .Limits [corev1 .ResourceMemory ]
131- memoryLimit .Add (componentResources .Limits [corev1 .ResourceMemory ])
132- resources .Limits [corev1 .ResourceMemory ] = memoryLimit
133-
134- cpuLimit := resources .Limits [corev1 .ResourceCPU ]
135- cpuLimit .Add (componentResources .Limits [corev1 .ResourceCPU ])
136- resources .Limits [corev1 .ResourceCPU ] = cpuLimit
137-
138- memoryRequest := resources .Requests [corev1 .ResourceMemory ]
139- memoryRequest .Add (componentResources .Requests [corev1 .ResourceMemory ])
140- resources .Requests [corev1 .ResourceMemory ] = memoryRequest
129+ for resourceName , limit := range resources .Limits {
130+ if componentLimit , ok := componentResources .Limits [resourceName ]; ok {
131+ limit .Add (componentLimit )
132+ resources .Limits [resourceName ] = limit
133+ }
134+ }
141135
142- cpuRequest := resources .Requests [corev1 .ResourceCPU ]
143- cpuRequest .Add (componentResources .Requests [corev1 .ResourceCPU ])
144- resources .Requests [corev1 .ResourceCPU ] = cpuRequest
136+ for resourceName , request := range resources .Requests {
137+ if componentRequest , ok := componentResources .Requests [resourceName ]; ok {
138+ request .Add (componentRequest )
139+ resources .Requests [resourceName ] = request
140+ }
141+ }
145142
146143 return nil
147144}
0 commit comments