After working with Kubernetes for a few years now I’ve only just today learnt about kubectl replace which, you guessed it, completely replaces a resource.

I’ve always used kubectl apply to update existing resources (or create new ones) which does a merge between the existing and the supplied manifest.

Hat tip to @vdemeest for this: