mirror of https://github.com/k3s-io/k3s
Validate numberReady in DaemonSet status
In #32781 numberReady was introduced but it wasn't validated.pull/6/head
parent
f42574893b
commit
e1a19fecf8
|
@ -108,6 +108,7 @@ func validateDaemonSetStatus(status *extensions.DaemonSetStatus, fldPath *field.
|
||||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.CurrentNumberScheduled), fldPath.Child("currentNumberScheduled"))...)
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.CurrentNumberScheduled), fldPath.Child("currentNumberScheduled"))...)
|
||||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.NumberMisscheduled), fldPath.Child("numberMisscheduled"))...)
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.NumberMisscheduled), fldPath.Child("numberMisscheduled"))...)
|
||||||
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.DesiredNumberScheduled), fldPath.Child("desiredNumberScheduled"))...)
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.DesiredNumberScheduled), fldPath.Child("desiredNumberScheduled"))...)
|
||||||
|
allErrs = append(allErrs, apivalidation.ValidateNonnegativeField(int64(status.NumberReady), fldPath.Child("numberReady"))...)
|
||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -96,6 +96,118 @@ func TestValidateDaemonSetStatusUpdate(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"negative CurrentNumberScheduled": {
|
||||||
|
old: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: 1,
|
||||||
|
NumberMisscheduled: 2,
|
||||||
|
DesiredNumberScheduled: 3,
|
||||||
|
NumberReady: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
update: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: -1,
|
||||||
|
NumberMisscheduled: 1,
|
||||||
|
DesiredNumberScheduled: 3,
|
||||||
|
NumberReady: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"negative NumberMisscheduled": {
|
||||||
|
old: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: 1,
|
||||||
|
NumberMisscheduled: 2,
|
||||||
|
DesiredNumberScheduled: 3,
|
||||||
|
NumberReady: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
update: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: 1,
|
||||||
|
NumberMisscheduled: -1,
|
||||||
|
DesiredNumberScheduled: 3,
|
||||||
|
NumberReady: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"negative DesiredNumberScheduled": {
|
||||||
|
old: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: 1,
|
||||||
|
NumberMisscheduled: 2,
|
||||||
|
DesiredNumberScheduled: 3,
|
||||||
|
NumberReady: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
update: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: 1,
|
||||||
|
NumberMisscheduled: 1,
|
||||||
|
DesiredNumberScheduled: -3,
|
||||||
|
NumberReady: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"negative NumberReady": {
|
||||||
|
old: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: 1,
|
||||||
|
NumberMisscheduled: 2,
|
||||||
|
DesiredNumberScheduled: 3,
|
||||||
|
NumberReady: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
update: extensions.DaemonSet{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
ResourceVersion: "10",
|
||||||
|
},
|
||||||
|
Status: extensions.DaemonSetStatus{
|
||||||
|
CurrentNumberScheduled: 1,
|
||||||
|
NumberMisscheduled: 1,
|
||||||
|
DesiredNumberScheduled: 3,
|
||||||
|
NumberReady: -1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for testName, errorCase := range errorCases {
|
for testName, errorCase := range errorCases {
|
||||||
|
|
Loading…
Reference in New Issue