mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-02 16:29:21 +00:00
Move resource.Quantity rounding to defaulter
This reverts commit feb56cc486
.
This commit is contained in:
parent
d089eda524
commit
3ff5cb6ec7
@ -739,15 +739,15 @@ func Convert_v1_ResourceList_To_api_ResourceList(in *ResourceList, out *api.Reso
|
|||||||
if *in == nil {
|
if *in == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if *out == nil {
|
if *out == nil {
|
||||||
*out = make(api.ResourceList, len(*in))
|
*out = make(api.ResourceList, len(*in))
|
||||||
}
|
}
|
||||||
for key, val := range *in {
|
for key, val := range *in {
|
||||||
|
// Moved to defaults
|
||||||
// TODO(#18538): We round up resource values to milli scale to maintain API compatibility.
|
// TODO(#18538): We round up resource values to milli scale to maintain API compatibility.
|
||||||
// In the future, we should instead reject values that need rounding.
|
// In the future, we should instead reject values that need rounding.
|
||||||
const milliScale = -3
|
// const milliScale = -3
|
||||||
val.RoundUp(milliScale)
|
// val.RoundUp(milliScale)
|
||||||
|
|
||||||
(*out)[api.ResourceName(key)] = val
|
(*out)[api.ResourceName(key)] = val
|
||||||
}
|
}
|
||||||
|
@ -52,9 +52,21 @@ func addDefaultingFuncs(scheme *runtime.Scheme) error {
|
|||||||
SetDefaults_LimitRangeItem,
|
SetDefaults_LimitRangeItem,
|
||||||
SetDefaults_ConfigMap,
|
SetDefaults_ConfigMap,
|
||||||
SetDefaults_RBDVolumeSource,
|
SetDefaults_RBDVolumeSource,
|
||||||
|
SetDefaults_ResourceList,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetDefaults_ResourceList(obj *ResourceList) {
|
||||||
|
for key, val := range *obj {
|
||||||
|
// TODO(#18538): We round up resource values to milli scale to maintain API compatibility.
|
||||||
|
// In the future, we should instead reject values that need rounding.
|
||||||
|
const milliScale = -3
|
||||||
|
val.RoundUp(milliScale)
|
||||||
|
|
||||||
|
(*obj)[ResourceName(key)] = val
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func SetDefaults_PodExecOptions(obj *PodExecOptions) {
|
func SetDefaults_PodExecOptions(obj *PodExecOptions) {
|
||||||
obj.Stdout = true
|
obj.Stdout = true
|
||||||
obj.Stderr = true
|
obj.Stderr = true
|
||||||
|
@ -574,6 +574,31 @@ func TestSetDefaultObjectFieldSelectorAPIVersion(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSetMinimumScalePod(t *testing.T) {
|
||||||
|
// verify we default if limits are specified (and that request=0 is preserved)
|
||||||
|
s := versioned.PodSpec{}
|
||||||
|
s.Containers = []versioned.Container{
|
||||||
|
{
|
||||||
|
Resources: versioned.ResourceRequirements{
|
||||||
|
Requests: versioned.ResourceList{
|
||||||
|
versioned.ResourceMemory: resource.MustParse("1n"),
|
||||||
|
},
|
||||||
|
Limits: versioned.ResourceList{
|
||||||
|
versioned.ResourceCPU: resource.MustParse("2n"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
pod := &versioned.Pod{
|
||||||
|
Spec: s,
|
||||||
|
}
|
||||||
|
versioned.SetObjectDefaults_Pod(pod)
|
||||||
|
|
||||||
|
if expect := resource.MustParse("1m"); expect.Cmp(pod.Spec.Containers[0].Resources.Requests[versioned.ResourceMemory]) != 0 {
|
||||||
|
t.Errorf("did not round resources: %#v", pod.Spec.Containers[0].Resources)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestSetDefaultRequestsPod(t *testing.T) {
|
func TestSetDefaultRequestsPod(t *testing.T) {
|
||||||
// verify we default if limits are specified (and that request=0 is preserved)
|
// verify we default if limits are specified (and that request=0 is preserved)
|
||||||
s := versioned.PodSpec{}
|
s := versioned.PodSpec{}
|
||||||
|
Loading…
Reference in New Issue
Block a user