code: func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *field.Path) field.ErrorList {
  	allErrs := field.ErrorList{}
  
  	allErrs = append(allErrs, ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
  
  	if spec.Template == nil {
  		allErrs = append(allErrs, field.Required(fldPath.Child("template"), ""))
  		return allErrs
  	}
  
  	selector, err := extensions.LabelSelectorAsSelector(spec.Selector)
  	if err == nil && !selector.Matches(labels.Set(spec.Template.Labels)) {
  		allErrs = append(allErrs, field.Invalid(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "`selector` does not match template `labels`"))
  	}
  
  	allErrs = append(allErrs, apivalidation.ValidatePodTemplateSpec(spec.Template, fldPath.Child("template"))...)
  	// Daemons typically run on more than one node, so mark Read-Write persistent disks as invalid.
  	allErrs = append(allErrs, apivalidation.ValidateReadOnlyPersistentDisks(spec.Template.Spec.Volumes, fldPath.Child("template", "spec", "volumes"))...)
  	// RestartPolicy has already been first-order validated as per ValidatePodTemplateSpec().
  	if spec.Template.Spec.RestartPolicy != api.RestartPolicyAlways {
  		allErrs = append(allErrs, field.NotSupported(fldPath.Child("template", "spec", "restartPolicy"), spec.Template.Spec.RestartPolicy, []string{string(api.RestartPolicyAlways)}))
  	}
  
  	return allErrs
  }
docs: // ValidateDaemonSetSpec tests if required fields in the DaemonSetSpec are set.