Istioctl 1.6.3 upgrade with dry-run option keep checking component version

Hi, I am trying to upgrade to 1.6.3 from 1.5.5 but need to test the upgrade first. So basically I use dry-run to check the installation process.

But in Istioctl 1.6.3, the dry-run checking the remote component version, and make it fail.

istioctl upgrade -f cluster.yaml --force --skip-confirmation --dry-run 
.
✔ Istio core installed                                                                                                                                                       
✔ Istiod installed                                                                                                                                                           
✔ Ingress gateways installed                                                                                                                                                 
✔ Addons installed                                                                                                                                                           
✔ Installation complete                                                                                                                                                      ..........
Control Plane - ingressgateway pod - istio-ingressgateway-585bd46745-895l5 - version: 1.5.5 does not match the target version 1.6.3
Control Plane - ingressgateway pod - istio-ingressgateway-585bd46745-r2hs9 - version: 1.5.5 does not match the target version 1.6.3
Control Plane - ingressgateway pod - istio-ingressgateway-585bd46745-r52jv - version: 1.5.5 does not match the target version 1.6.3
Control Plane - pilot pod - istiod-79cd4cbb44-4dk5t - version: 1.5.5 does not match the target version 1.6.3
Control Plane - pilot pod - istiod-79cd4cbb44-6rts2 - version: 1.5.5 does not match the target version 1.6.3
Control Plane - pilot pod - istiod-79cd4cbb44-7wlpd - version: 1.5.5 does not match the target version 1.6.3
..........
Control Plane - ingressgateway pod - istio-ingressgateway-585bd46745-895l5 - version: 1.5.5 does not match the target version 1.6.3
Control Plane - ingressgateway pod - istio-ingressgateway-585bd46745-r2hs9 - version: 1.5.5 does not match the target version 1.6.3
Control Plane - ingressgateway pod - istio-ingressgateway-585bd46745-r52jv - version: 1.5.5 does not match the target version 1.6.3
Control Plane - pilot pod - istiod-79cd4cbb44-4dk5t - version: 1.5.5 does not match the target version 1.6.3
Control Plane - pilot pod - istiod-79cd4cbb44-6rts2 - version: 1.5.5 does not match the target version 1.6.3
Control Plane - pilot pod - istiod-79cd4cbb44-7wlpd - version: 1.5.5 does not match the target version 1.6.3

When upgrading directly without dry-run, it works fine. But we need to implement istioctl on CI and cannot upgrade directly (must check first with dry-run).

Any solution to this?

It’s a bug - created issue https://github.com/istio/istio/issues/24865 to track it. Unfortunately I can’t think of a workaround but maybe @taohe can think of something.

Hi thank you. I check the code but it is same with 1.5.x. I dont know the behaviour.