What to expect from canary updates


We are trying to upgrade our Istio 1.7.3 deployment, which uses the operator. The way we deploy things is by means of ArgoCD.

Following this guide, does not seem to work as expected. Is the following correct?

  1. Deploy an updated istio operator.
    At this point 2 istio operators should be seen side by side in istio-operator namespace.

  2. Deploy an updated IstioOperator CR.
    At this point we should still see the 2 isito operators in istio-operator namespace, plus the 2 istiod deployments in istio-system. One of them should have the revision in its name.

  3. Migrate workloads using the proper label pointing to the new revision.

  4. Delete the old IstioOperator CR from istio-system namespace.

  5. Delete the old istio operator from istio-operator namespace.

We tried several things, experiencing different errors or unexpected behaviours. Before risking converting this topic into a “XY problem”, are the expected steps correct?