code: func (rsStrategy) PrepareForUpdate(ctx context.Context, obj, old runtime.Object) {
  	newRS := obj.(*apps.ReplicaSet)
  	oldRS := old.(*apps.ReplicaSet)
  	// update is not allowed to set status
  	newRS.Status = oldRS.Status
  
  	pod.DropDisabledTemplateFields(&newRS.Spec.Template, &oldRS.Spec.Template)
  
  	// Any changes to the spec increment the generation number, any changes to the
  	// status should reflect the generation number of the corresponding object. We push
  	// the burden of managing the status onto the clients because we can't (in general)
  	// know here what version of spec the writer of the status has seen. It may seem like
  	// we can at first -- since obj contains spec -- but in the future we will probably make
  	// status its own object, and even if we don't, writes may be the result of a
  	// read-update-write loop, so the contents of spec may not actually be the spec that
  	// the ReplicaSet has *seen*.
  	if !apiequality.Semantic.DeepEqual(oldRS.Spec, newRS.Spec) {
  		newRS.Generation = oldRS.Generation + 1
  	}
  }
docs: // PrepareForUpdate clears fields that are not allowed to be set by end users on update.