Hi,
When installing the operator according to the documentation, the fact that kubectl create is used causes the command to not be idempotent :
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/crds/jaegertracing.io_jaegers_crd.yaml
customresourcedefinition.apiextensions.k8s.io/jaegers.jaegertracing.io created
$ kubectl create -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/crds/jaegertracing.io_jaegers_crd.yaml
Error from server (AlreadyExists): error when creating "https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/crds/jaegertracing.io_jaegers_crd.yaml": customresourcedefinitions.apiextensions.k8s.io "jaegers.jaegertracing.io" already exists
It is not very convenient for a CI pipeline.
So I used by kubectl apply instead, but I have this error :
$ kubectl apply -f https://raw.githubusercontent.com/jaegertracing/jaeger-operator/master/deploy/crds/jaegertracing.io_jaegers_crd.yaml
The CustomResourceDefinition "jaegers.jaegertracing.io" is invalid: metadata.annotations: Too long: must have at most 262144 characters
How can the operator be installed in an idempotent way please ?
kubectl version --short
Client Version: v1.17.0
Server Version: v1.15.5
Unfortunately, there's not much we can do, as the schema that is generated is really big due to some big constructs we use (like volumes). As we use them in a quite a few places, our CRD grew bigger than we would want.
As a workaround, you can strip the validation node from the CRD. It will reduce the CRD to a sane size and kubectl apply should work again.