mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-09 12:07:47 +00:00
Alert message improved according to standards
Signed-off-by: twelcon <mastermind12210@gmail.com>
This commit is contained in:
parent
9d4b489107
commit
70f979c8da
@ -3070,7 +3070,7 @@ func validateResizePolicy(policyList []core.ContainerResizePolicy, fldPath *fiel
|
|||||||
}
|
}
|
||||||
|
|
||||||
if *podRestartPolicy == core.RestartPolicyNever && p.RestartPolicy != core.NotRequired {
|
if *podRestartPolicy == core.RestartPolicyNever && p.RestartPolicy != core.NotRequired {
|
||||||
allErrors = append(allErrors, field.Invalid(fldPath, p.RestartPolicy, "Only NotRequired is allowed, if pod restartPolicy is Never"))
|
allErrors = append(allErrors, field.Invalid(fldPath, p.RestartPolicy, "must be 'NotRequired' when `restartPolicy` is 'Never'"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return allErrors
|
return allErrors
|
||||||
|
@ -6754,119 +6754,118 @@ func TestValidateResizePolicy(t *testing.T) {
|
|||||||
Errors field.ErrorList
|
Errors field.ErrorList
|
||||||
PodRestartPolicy core.RestartPolicy
|
PodRestartPolicy core.RestartPolicy
|
||||||
}
|
}
|
||||||
// var PodRestartPolicy core.RestartPolicy
|
|
||||||
// PodRestartPolicy = "Never"
|
|
||||||
testCases := map[string]T{
|
testCases := map[string]T{
|
||||||
"ValidCPUandMemoryPolicies": {
|
"ValidCPUandMemoryPolicies": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
||||||
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
||||||
},
|
},
|
||||||
false,
|
ExpectError: false,
|
||||||
nil,
|
Errors: nil,
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"ValidCPUPolicy": {
|
"ValidCPUPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
||||||
},
|
},
|
||||||
false,
|
ExpectError: false,
|
||||||
nil,
|
Errors: nil,
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"ValidMemoryPolicy": {
|
"ValidMemoryPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "memory", RestartPolicy: "NotRequired"},
|
{ResourceName: "memory", RestartPolicy: "NotRequired"},
|
||||||
},
|
},
|
||||||
false,
|
ExpectError: false,
|
||||||
nil,
|
Errors: nil,
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"NoPolicy": {
|
"NoPolicy": {
|
||||||
[]core.ContainerResizePolicy{},
|
PolicyList: []core.ContainerResizePolicy{},
|
||||||
false,
|
ExpectError: false,
|
||||||
nil,
|
Errors: nil,
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"ValidCPUandInvalidMemoryPolicy": {
|
"ValidCPUandInvalidMemoryPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
||||||
{ResourceName: "memory", RestartPolicy: "Restarrrt"},
|
{ResourceName: "memory", RestartPolicy: "Restarrrt"},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("Restarrrt"), tSupportedResizePolicies.List())},
|
Errors: field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("Restarrrt"), tSupportedResizePolicies.List())},
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"ValidMemoryandInvalidCPUPolicy": {
|
"ValidMemoryandInvalidCPUPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "RestartNotRequirrred"},
|
{ResourceName: "cpu", RestartPolicy: "RestartNotRequirrred"},
|
||||||
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartNotRequirrred"), tSupportedResizePolicies.List())},
|
Errors: field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartNotRequirrred"), tSupportedResizePolicies.List())},
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"InvalidResourceNameValidPolicy": {
|
"InvalidResourceNameValidPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpuuu", RestartPolicy: "NotRequired"},
|
{ResourceName: "cpuuu", RestartPolicy: "NotRequired"},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceName("cpuuu"), tSupportedResizeResources.List())},
|
Errors: field.ErrorList{field.NotSupported(field.NewPath("field"), core.ResourceName("cpuuu"), tSupportedResizeResources.List())},
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"ValidResourceNameMissingPolicy": {
|
"ValidResourceNameMissingPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "memory", RestartPolicy: ""},
|
{ResourceName: "memory", RestartPolicy: ""},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.Required(field.NewPath("field"), "")},
|
Errors: field.ErrorList{field.Required(field.NewPath("field"), "")},
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"RepeatedPolicies": {
|
"RepeatedPolicies": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
||||||
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
||||||
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.Duplicate(field.NewPath("field").Index(2), core.ResourceCPU)},
|
Errors: field.ErrorList{field.Duplicate(field.NewPath("field").Index(2), core.ResourceCPU)},
|
||||||
"Always",
|
PodRestartPolicy: "Always",
|
||||||
},
|
},
|
||||||
"InvalidCPUPolicyWithPodRestartPolicy": {
|
"InvalidCPUPolicyWithPodRestartPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
||||||
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never")},
|
Errors: field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'")},
|
||||||
"Never",
|
PodRestartPolicy: "Never",
|
||||||
},
|
},
|
||||||
"InvalidMemoryPolicyWithPodRestartPolicy": {
|
"InvalidMemoryPolicyWithPodRestartPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
||||||
{ResourceName: "memory", RestartPolicy: "NotRequired"},
|
{ResourceName: "memory", RestartPolicy: "NotRequired"},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never")},
|
Errors: field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'")},
|
||||||
"Never",
|
PodRestartPolicy: "Never",
|
||||||
},
|
},
|
||||||
"InvalidMemoryCPUPolicyWithPodRestartPolicy": {
|
"InvalidMemoryCPUPolicyWithPodRestartPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
{ResourceName: "cpu", RestartPolicy: "RestartContainer"},
|
||||||
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
{ResourceName: "memory", RestartPolicy: "RestartContainer"},
|
||||||
},
|
},
|
||||||
true,
|
ExpectError: true,
|
||||||
field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never"), field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "Only NotRequired is allowed, if pod restartPolicy is Never")},
|
Errors: field.ErrorList{field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'"), field.Invalid(field.NewPath("field"), core.ResourceResizeRestartPolicy("RestartContainer"), "must be 'NotRequired' when `restartPolicy` is 'Never'")},
|
||||||
"Never",
|
PodRestartPolicy: "Never",
|
||||||
},
|
},
|
||||||
"ValidMemoryCPUPolicyWithPodRestartPolicy": {
|
"ValidMemoryCPUPolicyWithPodRestartPolicy": {
|
||||||
[]core.ContainerResizePolicy{
|
PolicyList: []core.ContainerResizePolicy{
|
||||||
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
{ResourceName: "cpu", RestartPolicy: "NotRequired"},
|
||||||
{ResourceName: "memory", RestartPolicy: "NotRequired"},
|
{ResourceName: "memory", RestartPolicy: "NotRequired"},
|
||||||
},
|
},
|
||||||
false,
|
ExpectError: false,
|
||||||
nil,
|
Errors: nil,
|
||||||
"Never",
|
PodRestartPolicy: "Never",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for k, v := range testCases {
|
for k, v := range testCases {
|
||||||
@ -6971,6 +6970,16 @@ func TestValidateEphemeralContainers(t *testing.T) {
|
|||||||
if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 {
|
if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 {
|
||||||
t.Errorf("expected success for '%s' but got errors: %v", title, errs)
|
t.Errorf("expected success for '%s' but got errors: %v", title, errs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PodRestartPolicy = "Always"
|
||||||
|
if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 {
|
||||||
|
t.Errorf("expected success for '%s' but got errors: %v", title, errs)
|
||||||
|
}
|
||||||
|
|
||||||
|
PodRestartPolicy = "OnFailure"
|
||||||
|
if errs := validateEphemeralContainers(ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy); len(errs) != 0 {
|
||||||
|
t.Errorf("expected success for '%s' but got errors: %v", title, errs)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Failure Cases
|
// Failure Cases
|
||||||
@ -7223,14 +7232,28 @@ func TestValidateEphemeralContainers(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var PodRestartPolicy core.RestartPolicy
|
var PodRestartPolicy core.RestartPolicy
|
||||||
PodRestartPolicy = "Never"
|
|
||||||
for _, tc := range tcs {
|
for _, tc := range tcs {
|
||||||
t.Run(tc.title+"__@L"+tc.line, func(t *testing.T) {
|
t.Run(tc.title+"__@L"+tc.line, func(t *testing.T) {
|
||||||
|
|
||||||
|
PodRestartPolicy = "Never"
|
||||||
errs := validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy)
|
errs := validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy)
|
||||||
if len(errs) == 0 {
|
if len(errs) == 0 {
|
||||||
t.Fatal("expected error but received none")
|
t.Fatal("expected error but received none")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PodRestartPolicy = "Always"
|
||||||
|
errs = validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy)
|
||||||
|
if len(errs) == 0 {
|
||||||
|
t.Fatal("expected error but received none")
|
||||||
|
}
|
||||||
|
|
||||||
|
PodRestartPolicy = "OnFailure"
|
||||||
|
errs = validateEphemeralContainers(tc.ephemeralContainers, containers, initContainers, vols, nil, field.NewPath("ephemeralContainers"), PodValidationOptions{}, &PodRestartPolicy)
|
||||||
|
if len(errs) == 0 {
|
||||||
|
t.Fatal("expected error but received none")
|
||||||
|
}
|
||||||
|
|
||||||
if diff := cmp.Diff(tc.expectedErrors, errs, cmpopts.IgnoreFields(field.Error{}, "BadValue", "Detail")); diff != "" {
|
if diff := cmp.Diff(tc.expectedErrors, errs, cmpopts.IgnoreFields(field.Error{}, "BadValue", "Detail")); diff != "" {
|
||||||
t.Errorf("unexpected diff in errors (-want, +got):\n%s", diff)
|
t.Errorf("unexpected diff in errors (-want, +got):\n%s", diff)
|
||||||
t.Errorf("INFO: all errors:\n%s", prettyErrorList(errs))
|
t.Errorf("INFO: all errors:\n%s", prettyErrorList(errs))
|
||||||
|
Loading…
Reference in New Issue
Block a user