Questions regarding canary upgrades using helm Charts

Hello Istio Community, nice to meet you all :blush:

I have a question regarding the canary upgrades using istioctl and helm Charts

In our testing environment we are using istio 1.11.4 deployed by istioctl and we want to upgrade to istio 1.13.x using Helm charts.

Following the documentation, we did the following steps

  1. Download the istio 1.13.x chart
  2. Deploy manually the CRDS inside /base/crds with kubectl (Helm doesn’t work to create the helm application when trying to create the istio-base app)
  3. Deploy de Istio Control Plane with helm inside istio-control/istio-discovery
  4. Create a manually canary upgrade of instio-ingress gateway based on this documentation: Istio / Installing Gateways
  5. we migrate our workload with the new istio revision label
  6. We proceed to scale down the old deployment of istiod and istio-ingress gateway.

Everything seems to work perfecty but at the moment of editing or updating some gateway we get an error related to the validatingwebhookconfiguration, that is making reference to our old istio, and there was no new Validating webhook referencing the new istio version deployed with the helm logic.

We proceed to delete the old validatingwebhookconfiguration and we can then edit the gateways perfectly.

I have the following questions regarding of this kind of upgrade

  1. Using helm charts to upgrade istio are certified or stable to use in a production environment?
  2. If we installed istio with istioctl is recommended to always upgrade using the istioctl instead of helm charts?
  3. Is there any extra documentation when making an istio upgrade using helm apart of the official documentation?

Thank you all for your help and time :blush: