Upgrading istio 1.4.3 to 1.6.0

I was able to upgrade from 1.4.3 -> 1.4.10 -> 1.5.8 -> 1.6.4. I could not have done it without help from Istio community (Prune and Vito).

Prior upgrading to other version, make sure to add newline character on ca-cert.pem as describe here.

  • 1.4.3 -> 1.4.10: I did the upgrade using istioctl experimental upgrade -f IstioControlPlane.yaml
    • You might need to use --force
  • 1.4.10 -> 1.5.8:
    • First, convert IstioControlPlane.yaml to IstioOperator.yaml
    • Before the upgrade
      kubectl -n istio-system delete service/istio-galley deployment.apps/istio-galley
      kubectl delete validatingwebhookconfiguration.admissionregistration.k8s.io/istio-galley
    • Use istioctl upgrade -f IstioOperator.yaml to upgrade (--force might be required)
    • After the upgrade
      kubectl -n istio-system delete deployment istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetry
      kubectl -n istio-system delete service istio-citadel istio-policy istio-sidecar-injector istio-telemetry
      kubectl -n istio-system delete horizontalpodautoscaler.autoscaling/istio-pilot horizontalpodautoscaler.autoscaling/istio-telemetry
      kubectl -n istio-system delete pdb istio-citadel istio-galley istio-pilot istio-policy istio-sidecar-injector istio-telemetry
      kubectl -n istio-system delete deployment istiocoredns
      kubectl -n istio-system delete service istiocoredns
  • 1.5.8 to 1.64
    • Make necessary changes of IstioOperator.yaml Version 1.5.8 file to support Version 1.6.4
    • Use istioctl upgrade -f IstioOperator.yaml to upgrade (--force might be required)