Make the `ExtensionSource` struct use the [union discriminator pattern](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1027-api-unions/README.md#discriminator-field), and add associated CRD schema validation.
Make the
ExtensionSourcestruct use the union discriminator pattern, and add associated CRD schema validation.