Declarative setup using Argo CD and Smart Update

I am trying to use Argo CD to declaratively create a pxc cluster in the gitops way. It actually works very well except for one thing: if I want to enable Smart Updates with an automatic schedule, then the operator overwrites the image attribute and conflicts with the desired state.

I could try to use ignoreDifferences from Argo CD but, still, there would be a risk of the manifest being reapplied and rolling back the image, with unpredicted consequences.

They way Argo CD recommends proceeding in these kinds of situation is not only use Argo’s ignoreDifferences but also providing an empty key at the manifest. In that way, only the operator would be able to assign values to the image key. Unfortunately that’s not possible because the CRD does not allow an empty image tag. Is there a workaround? It would be nice to make the image attribute optional in the manifest and let the operator attribute the image tag exclusively.


We also deploy Percona DB and Operator with ArgoCD. IMHO this approach make only little sense combined with having smart update activated, as we want to decide when and what get’s deployed.