mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-03 17:30:00 +00:00
Add pod restart policy validation for replication controller.
This commit is contained in:
parent
c91306c5bd
commit
a07661dcea
@ -480,6 +480,11 @@ func ValidateReplicationControllerSpec(spec *api.ReplicationControllerSpec) errs
|
|||||||
}
|
}
|
||||||
allErrs = append(allErrs, validateLabels(spec.Template.Labels).Prefix("template.labels")...)
|
allErrs = append(allErrs, validateLabels(spec.Template.Labels).Prefix("template.labels")...)
|
||||||
allErrs = append(allErrs, ValidatePodTemplateSpec(spec.Template).Prefix("template")...)
|
allErrs = append(allErrs, ValidatePodTemplateSpec(spec.Template).Prefix("template")...)
|
||||||
|
// TODO: Provide better error message, current message is not intuitive:
|
||||||
|
// e.g. "spec.template.restartPolicy: invalid value '{<nil> <nil> 0xe68308}"
|
||||||
|
if spec.Template.Spec.RestartPolicy.OnFailure != nil || spec.Template.Spec.RestartPolicy.Never != nil {
|
||||||
|
allErrs = append(allErrs, errs.NewFieldInvalid("template.restartPolicy", spec.Template.Spec.RestartPolicy))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
@ -878,7 +878,11 @@ func TestValidateReplicationController(t *testing.T) {
|
|||||||
invalidSelector := map[string]string{"NoUppercaseOrSpecialCharsLike=Equals": "b"}
|
invalidSelector := map[string]string{"NoUppercaseOrSpecialCharsLike=Equals": "b"}
|
||||||
invalidPodTemplate := api.PodTemplate{
|
invalidPodTemplate := api.PodTemplate{
|
||||||
Spec: api.PodTemplateSpec{
|
Spec: api.PodTemplateSpec{
|
||||||
Spec: api.PodSpec{},
|
Spec: api.PodSpec{
|
||||||
|
RestartPolicy: api.RestartPolicy{
|
||||||
|
Always: &api.RestartPolicyAlways{},
|
||||||
|
},
|
||||||
|
},
|
||||||
ObjectMeta: api.ObjectMeta{
|
ObjectMeta: api.ObjectMeta{
|
||||||
Labels: invalidSelector,
|
Labels: invalidSelector,
|
||||||
},
|
},
|
||||||
@ -979,6 +983,44 @@ func TestValidateReplicationController(t *testing.T) {
|
|||||||
Template: &invalidPodTemplate.Spec,
|
Template: &invalidPodTemplate.Spec,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
"invalid restart policy 1": {
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc-123",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
},
|
||||||
|
Spec: api.ReplicationControllerSpec{
|
||||||
|
Selector: validSelector,
|
||||||
|
Template: &api.PodTemplateSpec{
|
||||||
|
Spec: api.PodSpec{
|
||||||
|
RestartPolicy: api.RestartPolicy{
|
||||||
|
OnFailure: &api.RestartPolicyOnFailure{},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Labels: validSelector,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
"invalid restart policy 2": {
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: "abc-123",
|
||||||
|
Namespace: api.NamespaceDefault,
|
||||||
|
},
|
||||||
|
Spec: api.ReplicationControllerSpec{
|
||||||
|
Selector: validSelector,
|
||||||
|
Template: &api.PodTemplateSpec{
|
||||||
|
Spec: api.PodSpec{
|
||||||
|
RestartPolicy: api.RestartPolicy{
|
||||||
|
Never: &api.RestartPolicyNever{},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Labels: validSelector,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for k, v := range errorCases {
|
for k, v := range errorCases {
|
||||||
errs := ValidateReplicationController(&v)
|
errs := ValidateReplicationController(&v)
|
||||||
|
Loading…
Reference in New Issue
Block a user