Reading Istio documentation about who to perform [canary upgrades][1] for Istio itself is confusing. I don't understand how the procedure should go and what to expect in every step of it, further more, it does not cover an upgrade by means of yaml files when also using an operator.
What would a high level summary of the steps for updating IsitioOperator CR in a Kubernetes cluster using only yamls. Considering for example Kubernetes 1.18 and Istio 1.7.x to 1.9.x update. yamls could be generated by means of "helm" or "istioctl" but at the end of the day, the update should be performed by "kubectl apply" commands (since ArgoCD is in place for applying GitOps way of deployment).
Error example to answer one of the questions in comments:
2021-04-29T08:19:27.727502Z info klog attempting to acquire leader lease istio-operator/istio-operator-lock-1-8-5...[]
2021-04-29T08:19:27.740752Z info klog successfully acquired lease istio-operator/istio-operator-lock-1-8-5[]
2021-04-29T08:19:32.349465Z info installer Reconciling IstioOperator
2021-04-29T08:19:32.349837Z info installer Ignoring IstioOperator CR example-istiocontrolplane with revision , since operator revision is 1-8-5.
2021-04-29T08:31:41.222974Z info installer Reconciling IstioOperator
2021-04-29T08:31:41.223180Z info Adding finalizer istio-finalizer.install.istio.io to istio-system/example-istiocontrolplane-1-8-5
2021-04-29T08:31:41.250667Z info installer Could not add finalizer to example-istiocontrolplane-1-8-5 due to conflict. Operation will be retried in next reconcile attempt.