diff --git a/pkg/apis/extensions/validation/validation.go b/pkg/apis/extensions/validation/validation.go index c292d3eb36b..d9d86f91087 100644 --- a/pkg/apis/extensions/validation/validation.go +++ b/pkg/apis/extensions/validation/validation.go @@ -172,7 +172,6 @@ func ValidateDaemonSet(controller *extensions.DaemonSet) field.ErrorList { func ValidateDaemonSetUpdate(controller, oldController *extensions.DaemonSet) field.ErrorList { allErrs := apivalidation.ValidateObjectMetaUpdate(&controller.ObjectMeta, &oldController.ObjectMeta, field.NewPath("metadata")) 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 } @@ -192,21 +191,6 @@ func ValidateDaemonSetStatusUpdate(controller, oldController *extensions.DaemonS 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. func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *field.Path) field.ErrorList { allErrs := field.ErrorList{} diff --git a/pkg/registry/daemonset/etcd/etcd_test.go b/pkg/registry/daemonset/etcd/etcd_test.go index eef1207a397..933f8344c4d 100755 --- a/pkg/registry/daemonset/etcd/etcd_test.go +++ b/pkg/registry/daemonset/etcd/etcd_test.go @@ -103,6 +103,7 @@ func TestUpdate(t *testing.T) { func(obj runtime.Object) runtime.Object { object := obj.(*extensions.DaemonSet) object.Spec.Template.Spec.NodeSelector = map[string]string{"c": "d"} + object.Spec.Template.Spec.DNSPolicy = api.DNSDefault return object }, // invalid updateFunc @@ -121,11 +122,6 @@ func TestUpdate(t *testing.T) { object.Spec.Template.Spec.RestartPolicy = api.RestartPolicyOnFailure return object }, - func(obj runtime.Object) runtime.Object { - object := obj.(*extensions.DaemonSet) - object.Spec.Selector = &unversioned.LabelSelector{MatchLabels: map[string]string{}} - return object - }, ) }