mirror of
https://github.com/kubernetes/kubernetes.git
synced 2026-05-28 04:04:39 -04:00
test(scheduling): cover PodGroup and Workload DV gaps
Closes spec.resourceClaims[].name Required and status.resourceClaimStatuses TooMany on PodGroup, and spec.podGroupTemplates[].resourceClaims[].name Required and spec.podGroupTemplates[].schedulingConstraints Forbidden on Workload, from the DV coverage guardrail.
This commit is contained in:
parent
431104b3cc
commit
d865ea83a6
2 changed files with 50 additions and 0 deletions
|
|
@ -331,6 +331,12 @@ func testDeclarativeValidate(t *testing.T, apiVersion string) {
|
|||
field.TooMany(field.NewPath("spec", "resourceClaims"), scheduling.MaxPodGroupResourceClaims+1, scheduling.MaxPodGroupResourceClaims).WithOrigin("maxItems"),
|
||||
},
|
||||
},
|
||||
"empty claim name": {
|
||||
input: mkValidPodGroup(addResourceClaims(scheduling.PodGroupResourceClaim{Name: "", ResourceClaimName: new("resource-claim")})),
|
||||
expectedErrs: field.ErrorList{
|
||||
field.Required(field.NewPath("spec", "resourceClaims").Index(0).Child("name"), ""),
|
||||
},
|
||||
},
|
||||
}
|
||||
for k, tc := range testCases {
|
||||
t.Run(k, func(t *testing.T) {
|
||||
|
|
@ -685,6 +691,18 @@ func testDeclarativeValidateStatusUpdate(t *testing.T, apiVersion string) {
|
|||
field.Duplicate(field.NewPath("status", "resourceClaimStatuses").Index(2), nil),
|
||||
},
|
||||
},
|
||||
"too many resource claim statuses": {
|
||||
oldObj: mkValidPodGroup(setResourceVersion("1"),
|
||||
addManyResourceClaims(scheduling.MaxPodGroupResourceClaims+1),
|
||||
),
|
||||
updateObj: mkValidPodGroup(setResourceVersion("1"),
|
||||
addManyResourceClaims(scheduling.MaxPodGroupResourceClaims+1),
|
||||
addManyResourceClaimStatuses(scheduling.MaxPodGroupResourceClaims+1),
|
||||
),
|
||||
expectedErrs: field.ErrorList{
|
||||
field.TooMany(field.NewPath("status", "resourceClaimStatuses"), scheduling.MaxPodGroupResourceClaims+1, scheduling.MaxPodGroupResourceClaims).WithOrigin("maxItems"),
|
||||
},
|
||||
},
|
||||
}
|
||||
for k, tc := range testCases {
|
||||
t.Run(k, func(t *testing.T) {
|
||||
|
|
@ -788,6 +806,28 @@ func addResourceClaimStatuses(statuses ...scheduling.PodGroupResourceClaimStatus
|
|||
}
|
||||
}
|
||||
|
||||
func addManyResourceClaims(n int) func(obj *scheduling.PodGroup) {
|
||||
claims := make([]scheduling.PodGroupResourceClaim, n)
|
||||
for i := range n {
|
||||
claims[i] = scheduling.PodGroupResourceClaim{
|
||||
Name: "c" + strconv.Itoa(i),
|
||||
ResourceClaimName: new("r" + strconv.Itoa(i)),
|
||||
}
|
||||
}
|
||||
return addResourceClaims(claims...)
|
||||
}
|
||||
|
||||
func addManyResourceClaimStatuses(n int) func(obj *scheduling.PodGroup) {
|
||||
statuses := make([]scheduling.PodGroupResourceClaimStatus, n)
|
||||
for i := range n {
|
||||
statuses[i] = scheduling.PodGroupResourceClaimStatus{
|
||||
Name: "c" + strconv.Itoa(i),
|
||||
ResourceClaimName: new("r" + strconv.Itoa(i)),
|
||||
}
|
||||
}
|
||||
return addResourceClaimStatuses(statuses...)
|
||||
}
|
||||
|
||||
func addCondition(conditionType string) func(obj *scheduling.PodGroup) {
|
||||
return func(obj *scheduling.PodGroup) {
|
||||
obj.Status.Conditions = append(obj.Status.Conditions, metav1.Condition{
|
||||
|
|
|
|||
|
|
@ -349,6 +349,16 @@ func testDeclarativeValidate(t *testing.T, apiVersion string) {
|
|||
field.TooMany(field.NewPath("spec", "podGroupTemplates").Index(0).Child("resourceClaims"), scheduling.MaxPodGroupResourceClaims+1, scheduling.MaxPodGroupResourceClaims).WithOrigin("maxItems"),
|
||||
},
|
||||
},
|
||||
"empty claim name": {
|
||||
input: mkValidWorkload(addResourceClaims(scheduling.PodGroupResourceClaim{Name: "", ResourceClaimName: new("resource-claim")})),
|
||||
expectedErrs: field.ErrorList{
|
||||
field.Required(field.NewPath("spec", "podGroupTemplates").Index(0).Child("resourceClaims").Index(0).Child("name"), ""),
|
||||
},
|
||||
},
|
||||
"schedulingConstraints set with TAS disabled": {
|
||||
input: mkValidWorkload(setSchedulingConstraints(0)),
|
||||
expectedErrs: field.ErrorList{field.Forbidden(field.NewPath("spec", "podGroupTemplates").Index(0).Child("schedulingConstraints"), "")},
|
||||
},
|
||||
}
|
||||
for k, tc := range testCases {
|
||||
t.Run(k, func(t *testing.T) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue