an issue with this is that if any of these structs contain pointer fields (which they do) we don't recurse on the pointers, instead the new struct will have the same pointers.
this nullifies some of the point of copying the objects in controllers as not to mutate the cached versions held in the informers
currently, we're simply using pointer dereferences to copy types not living in the
v1
package, such as: https://github.com/mlab-lattice/lattice/blob/216-latticectl-overhaul/pkg/backend/kubernetes/customresource/apis/lattice/v1/deepcopy.go#L21an issue with this is that if any of these structs contain pointer fields (which they do) we don't recurse on the pointers, instead the new struct will have the same pointers.
this nullifies some of the point of copying the objects in controllers as not to mutate the cached versions held in the informers