mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-04 18:00:08 +00:00
Merge pull request #13834 from derekwaynecarr/more_improvements_to_limit_range_validation
Auto commit by PR queue bot
This commit is contained in:
commit
86b4e777e1
@ -1458,6 +1458,15 @@ func ValidateLimitRange(limitRange *api.LimitRange) errs.ValidationErrorList {
|
|||||||
keys.Insert(string(k))
|
keys.Insert(string(k))
|
||||||
min[string(k)] = q
|
min[string(k)] = q
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if limit.Type == api.LimitTypePod {
|
||||||
|
if len(limit.Default) > 0 {
|
||||||
|
allErrs = append(allErrs, errs.NewFieldInvalid("spec.limits[%d].default", limit.Default, "Default is not supported when limit type is Pod"))
|
||||||
|
}
|
||||||
|
if len(limit.DefaultRequest) > 0 {
|
||||||
|
allErrs = append(allErrs, errs.NewFieldInvalid("spec.limits[%d].defaultRequest", limit.DefaultRequest, "DefaultRequest is not supported when limit type is Pod"))
|
||||||
|
}
|
||||||
|
} else {
|
||||||
for k, q := range limit.Default {
|
for k, q := range limit.Default {
|
||||||
allErrs = append(allErrs, validateResourceName(string(k), fmt.Sprintf("spec.limits[%d].default[%s]", i, k))...)
|
allErrs = append(allErrs, validateResourceName(string(k), fmt.Sprintf("spec.limits[%d].default[%s]", i, k))...)
|
||||||
keys.Insert(string(k))
|
keys.Insert(string(k))
|
||||||
@ -1468,6 +1477,8 @@ func ValidateLimitRange(limitRange *api.LimitRange) errs.ValidationErrorList {
|
|||||||
keys.Insert(string(k))
|
keys.Insert(string(k))
|
||||||
defaultRequests[string(k)] = q
|
defaultRequests[string(k)] = q
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for k := range limit.MaxLimitRequestRatio {
|
for k := range limit.MaxLimitRequestRatio {
|
||||||
allErrs = append(allErrs, validateResourceName(string(k), fmt.Sprintf("spec.limits[%d].maxLimitRequestRatio[%s]", i, k))...)
|
allErrs = append(allErrs, validateResourceName(string(k), fmt.Sprintf("spec.limits[%d].maxLimitRequestRatio[%s]", i, k))...)
|
||||||
}
|
}
|
||||||
|
@ -2911,6 +2911,12 @@ func TestValidateLimitRange(t *testing.T) {
|
|||||||
Type: api.LimitTypePod,
|
Type: api.LimitTypePod,
|
||||||
Max: getResourceList("100m", "10000Mi"),
|
Max: getResourceList("100m", "10000Mi"),
|
||||||
Min: getResourceList("5m", "100Mi"),
|
Min: getResourceList("5m", "100Mi"),
|
||||||
|
MaxLimitRequestRatio: getResourceList("10", ""),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Type: api.LimitTypeContainer,
|
||||||
|
Max: getResourceList("100m", "10000Mi"),
|
||||||
|
Min: getResourceList("5m", "100Mi"),
|
||||||
Default: getResourceList("50m", "500Mi"),
|
Default: getResourceList("50m", "500Mi"),
|
||||||
DefaultRequest: getResourceList("10m", "200Mi"),
|
DefaultRequest: getResourceList("10m", "200Mi"),
|
||||||
MaxLimitRequestRatio: getResourceList("10", ""),
|
MaxLimitRequestRatio: getResourceList("10", ""),
|
||||||
@ -2923,7 +2929,7 @@ func TestValidateLimitRange(t *testing.T) {
|
|||||||
spec: api.LimitRangeSpec{
|
spec: api.LimitRangeSpec{
|
||||||
Limits: []api.LimitRangeItem{
|
Limits: []api.LimitRangeItem{
|
||||||
{
|
{
|
||||||
Type: api.LimitTypePod,
|
Type: api.LimitTypeContainer,
|
||||||
Max: getResourceList("100m", "10000T"),
|
Max: getResourceList("100m", "10000T"),
|
||||||
Min: getResourceList("5m", "100Mi"),
|
Min: getResourceList("5m", "100Mi"),
|
||||||
Default: getResourceList("50m", "500Mi"),
|
Default: getResourceList("50m", "500Mi"),
|
||||||
@ -2978,6 +2984,32 @@ func TestValidateLimitRange(t *testing.T) {
|
|||||||
}},
|
}},
|
||||||
"",
|
"",
|
||||||
},
|
},
|
||||||
|
"default-limit-type-pod": {
|
||||||
|
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
||||||
|
Limits: []api.LimitRangeItem{
|
||||||
|
{
|
||||||
|
Type: api.LimitTypePod,
|
||||||
|
Max: getResourceList("100m", "10000m"),
|
||||||
|
Min: getResourceList("0m", "100m"),
|
||||||
|
Default: getResourceList("10m", "100m"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
"Default is not supported when limit type is Pod",
|
||||||
|
},
|
||||||
|
"default-request-limit-type-pod": {
|
||||||
|
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
||||||
|
Limits: []api.LimitRangeItem{
|
||||||
|
{
|
||||||
|
Type: api.LimitTypePod,
|
||||||
|
Max: getResourceList("100m", "10000m"),
|
||||||
|
Min: getResourceList("0m", "100m"),
|
||||||
|
DefaultRequest: getResourceList("10m", "100m"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}},
|
||||||
|
"DefaultRequest is not supported when limit type is Pod",
|
||||||
|
},
|
||||||
"min value 100m is greater than max value 10m": {
|
"min value 100m is greater than max value 10m": {
|
||||||
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
||||||
Limits: []api.LimitRangeItem{
|
Limits: []api.LimitRangeItem{
|
||||||
@ -2994,7 +3026,7 @@ func TestValidateLimitRange(t *testing.T) {
|
|||||||
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
||||||
Limits: []api.LimitRangeItem{
|
Limits: []api.LimitRangeItem{
|
||||||
{
|
{
|
||||||
Type: api.LimitTypePod,
|
Type: api.LimitTypeContainer,
|
||||||
Max: getResourceList("1", ""),
|
Max: getResourceList("1", ""),
|
||||||
Min: getResourceList("100m", ""),
|
Min: getResourceList("100m", ""),
|
||||||
Default: getResourceList("2000m", ""),
|
Default: getResourceList("2000m", ""),
|
||||||
@ -3007,7 +3039,7 @@ func TestValidateLimitRange(t *testing.T) {
|
|||||||
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
api.LimitRange{ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: "foo"}, Spec: api.LimitRangeSpec{
|
||||||
Limits: []api.LimitRangeItem{
|
Limits: []api.LimitRangeItem{
|
||||||
{
|
{
|
||||||
Type: api.LimitTypePod,
|
Type: api.LimitTypeContainer,
|
||||||
Max: getResourceList("1", ""),
|
Max: getResourceList("1", ""),
|
||||||
Min: getResourceList("100m", ""),
|
Min: getResourceList("100m", ""),
|
||||||
DefaultRequest: getResourceList("2000m", ""),
|
DefaultRequest: getResourceList("2000m", ""),
|
||||||
|
Loading…
Reference in New Issue
Block a user