Store the results of PodSet inference in the Status, not the Spec. This means we end up doing the inference twice for each AppWrapper (once in the ValidatingWebHook for error checking and again later in the Controller when we have access to the Status), but it avoids mutating the user-provided Spec. Avoiding Spec mutations avoids spurious rejections when the user does multiple kubectl apply operations that do not change the Component itself.
Store the results of PodSet inference in the Status, not the Spec. This means we end up doing the inference twice for each AppWrapper (once in the ValidatingWebHook for error checking and again later in the Controller when we have access to the Status), but it avoids mutating the user-provided Spec. Avoiding Spec mutations avoids spurious rejections when the user does multiple
kubectl apply
operations that do not change the Component itself.