Skip to content

Commit b30e6c8

Browse files
committed
keeping the qos code as-is for the existing case when pod-level resources are not set
Signed-off-by: ndixita <[email protected]>
1 parent b78f6e2 commit b30e6c8

File tree

2 files changed

+64
-8
lines changed

2 files changed

+64
-8
lines changed

pkg/apis/core/helper/qos/qos.go

+32-4
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,39 @@ func ComputePodQOS(pod *core.Pod) core.PodQOSClass {
113113
allContainers = append(allContainers, pod.Spec.InitContainers...)
114114
for _, container := range allContainers {
115115
// process requests
116-
processResourceList(requests, container.Resources.Requests)
116+
for name, quantity := range container.Resources.Requests {
117+
if !isSupportedQoSComputeResource(name) {
118+
continue
119+
}
120+
if quantity.Cmp(zeroQuantity) == 1 {
121+
delta := quantity.DeepCopy()
122+
if _, exists := requests[name]; !exists {
123+
requests[name] = delta
124+
} else {
125+
delta.Add(requests[name])
126+
requests[name] = delta
127+
}
128+
}
129+
}
117130
// process limits
118-
processResourceList(limits, container.Resources.Limits)
119-
qosLimitResources := getQOSResources(container.Resources.Limits)
120-
if !qosLimitResources.HasAll(string(core.ResourceMemory), string(core.ResourceCPU)) {
131+
qosLimitsFound := sets.NewString()
132+
for name, quantity := range container.Resources.Limits {
133+
if !isSupportedQoSComputeResource(name) {
134+
continue
135+
}
136+
if quantity.Cmp(zeroQuantity) == 1 {
137+
qosLimitsFound.Insert(string(name))
138+
delta := quantity.DeepCopy()
139+
if _, exists := limits[name]; !exists {
140+
limits[name] = delta
141+
} else {
142+
delta.Add(limits[name])
143+
limits[name] = delta
144+
}
145+
}
146+
}
147+
148+
if !qosLimitsFound.HasAll(string(core.ResourceMemory), string(core.ResourceCPU)) {
121149
isGuaranteed = false
122150
}
123151
}

pkg/apis/core/v1/helper/qos/qos.go

+32-4
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,39 @@ func ComputePodQOS(pod *v1.Pod) v1.PodQOSClass {
116116
allContainers = append(allContainers, pod.Spec.InitContainers...)
117117
for _, container := range allContainers {
118118
// process requests
119-
processResourceList(requests, container.Resources.Requests)
119+
for name, quantity := range container.Resources.Requests {
120+
if !isSupportedQoSComputeResource(name) {
121+
continue
122+
}
123+
if quantity.Cmp(zeroQuantity) == 1 {
124+
delta := quantity.DeepCopy()
125+
if _, exists := requests[name]; !exists {
126+
requests[name] = delta
127+
} else {
128+
delta.Add(requests[name])
129+
requests[name] = delta
130+
}
131+
}
132+
}
120133
// process limits
121-
processResourceList(limits, container.Resources.Limits)
122-
qosLimitResources := getQOSResources(container.Resources.Limits)
123-
if !qosLimitResources.HasAll(string(v1.ResourceMemory), string(v1.ResourceCPU)) {
134+
qosLimitsFound := sets.NewString()
135+
for name, quantity := range container.Resources.Limits {
136+
if !isSupportedQoSComputeResource(name) {
137+
continue
138+
}
139+
if quantity.Cmp(zeroQuantity) == 1 {
140+
qosLimitsFound.Insert(string(name))
141+
delta := quantity.DeepCopy()
142+
if _, exists := limits[name]; !exists {
143+
limits[name] = delta
144+
} else {
145+
delta.Add(limits[name])
146+
limits[name] = delta
147+
}
148+
}
149+
}
150+
151+
if !qosLimitsFound.HasAll(string(v1.ResourceMemory), string(v1.ResourceCPU)) {
124152
isGuaranteed = false
125153
}
126154
}

0 commit comments

Comments
 (0)