mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
Merge pull request #21101 from madhusudancs/daemonset-dontprohibit-update
Auto commit by PR queue bot
This commit is contained in:
commit
14e9b3cff2
@ -172,7 +172,6 @@ func ValidateDaemonSet(controller *extensions.DaemonSet) field.ErrorList {
|
|||||||
func ValidateDaemonSetUpdate(controller, oldController *extensions.DaemonSet) field.ErrorList {
|
func ValidateDaemonSetUpdate(controller, oldController *extensions.DaemonSet) field.ErrorList {
|
||||||
allErrs := apivalidation.ValidateObjectMetaUpdate(&controller.ObjectMeta, &oldController.ObjectMeta, field.NewPath("metadata"))
|
allErrs := apivalidation.ValidateObjectMetaUpdate(&controller.ObjectMeta, &oldController.ObjectMeta, field.NewPath("metadata"))
|
||||||
allErrs = append(allErrs, ValidateDaemonSetSpec(&controller.Spec, field.NewPath("spec"))...)
|
allErrs = append(allErrs, ValidateDaemonSetSpec(&controller.Spec, field.NewPath("spec"))...)
|
||||||
allErrs = append(allErrs, ValidateDaemonSetTemplateUpdate(controller.Spec.Template, oldController.Spec.Template, field.NewPath("spec", "template"))...)
|
|
||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,21 +191,6 @@ func ValidateDaemonSetStatusUpdate(controller, oldController *extensions.DaemonS
|
|||||||
return allErrs
|
return allErrs
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidateDaemonSetTemplateUpdate tests that certain fields in the daemon set's pod template are not updated.
|
|
||||||
func ValidateDaemonSetTemplateUpdate(podTemplate, oldPodTemplate api.PodTemplateSpec, fldPath *field.Path) field.ErrorList {
|
|
||||||
allErrs := field.ErrorList{}
|
|
||||||
podSpec := podTemplate.Spec
|
|
||||||
// podTemplate.Spec is not a pointer, so we can modify NodeSelector and NodeName directly.
|
|
||||||
podSpec.NodeSelector = oldPodTemplate.Spec.NodeSelector
|
|
||||||
podSpec.NodeName = oldPodTemplate.Spec.NodeName
|
|
||||||
// In particular, we do not allow updates to container images at this point.
|
|
||||||
if !api.Semantic.DeepEqual(oldPodTemplate.Spec, podSpec) {
|
|
||||||
// TODO: Pinpoint the specific field that causes the invalid error after we have strategic merge diff
|
|
||||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("spec"), "daemonSet updates may not change fields other than `nodeSelector`"))
|
|
||||||
}
|
|
||||||
return allErrs
|
|
||||||
}
|
|
||||||
|
|
||||||
// ValidateDaemonSetSpec tests if required fields in the DaemonSetSpec are set.
|
// ValidateDaemonSetSpec tests if required fields in the DaemonSetSpec are set.
|
||||||
func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *field.Path) field.ErrorList {
|
func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *field.Path) field.ErrorList {
|
||||||
allErrs := field.ErrorList{}
|
allErrs := field.ErrorList{}
|
||||||
|
@ -103,6 +103,7 @@ func TestUpdate(t *testing.T) {
|
|||||||
func(obj runtime.Object) runtime.Object {
|
func(obj runtime.Object) runtime.Object {
|
||||||
object := obj.(*extensions.DaemonSet)
|
object := obj.(*extensions.DaemonSet)
|
||||||
object.Spec.Template.Spec.NodeSelector = map[string]string{"c": "d"}
|
object.Spec.Template.Spec.NodeSelector = map[string]string{"c": "d"}
|
||||||
|
object.Spec.Template.Spec.DNSPolicy = api.DNSDefault
|
||||||
return object
|
return object
|
||||||
},
|
},
|
||||||
// invalid updateFunc
|
// invalid updateFunc
|
||||||
@ -121,11 +122,6 @@ func TestUpdate(t *testing.T) {
|
|||||||
object.Spec.Template.Spec.RestartPolicy = api.RestartPolicyOnFailure
|
object.Spec.Template.Spec.RestartPolicy = api.RestartPolicyOnFailure
|
||||||
return object
|
return object
|
||||||
},
|
},
|
||||||
func(obj runtime.Object) runtime.Object {
|
|
||||||
object := obj.(*extensions.DaemonSet)
|
|
||||||
object.Spec.Selector = &unversioned.LabelSelector{MatchLabels: map[string]string{}}
|
|
||||||
return object
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user