code: func ValidateNamespaceStatusUpdate(newNamespace, oldNamespace *core.Namespace) field.ErrorList {
  	allErrs := ValidateObjectMetaUpdate(&newNamespace.ObjectMeta, &oldNamespace.ObjectMeta, field.NewPath("metadata"))
  	newNamespace.Spec = oldNamespace.Spec
  	if newNamespace.DeletionTimestamp.IsZero() {
  		if newNamespace.Status.Phase != core.NamespaceActive {
  			allErrs = append(allErrs, field.Invalid(field.NewPath("status", "Phase"), newNamespace.Status.Phase, "may only be 'Active' if `deletionTimestamp` is empty"))
  		}
  	} else {
  		if newNamespace.Status.Phase != core.NamespaceTerminating {
  			allErrs = append(allErrs, field.Invalid(field.NewPath("status", "Phase"), newNamespace.Status.Phase, "may only be 'Terminating' if `deletionTimestamp` is not empty"))
  		}
  	}
  	return allErrs
  }
docs: // ValidateNamespaceStatusUpdate tests to see if the update is legal for an end user to make. newNamespace is updated with fields
  // that cannot be changed.