Editing Istio as a GKE add-on


I’ve recently shifted from installing Istio via Helm to using the new GKE Istio add-on. As far as I can tell, Istio seems to be installed with the K8s addon-manager. I’m attempting to change the service type of the istio-ingressgateway from LoadBalancer to NodePort, as I am fronting it with an L7 load balancer. Every time I attempt to change the service type with kubectl edit svc istio-ingressgateway -n istio-system, the service shortly reverts back to LoadBalancer. As far as I can tell this is expected behavior with any resource labeled with addonmanager.kubernetes.io/mode: Reconcile, but even changing this label to addonmanager.kubernetes.io/mode: EnsureExists or removing it completely doesn’t do the trick. Any help would be greatly appreciated. I’d prefer not to revert to the Helm installation, but can if completely necessary.


Anything installed via the addon manager with addonmanager.kubernetes.io/mode: Reconcile can’t be modified. This includes changing that attribute. (These resources are actually yaml files on disk on the master and they are re-applied every x seconds.)