<p>I am working to configure Istio in my on prem Kubernetes cluster.  As part of this I have to coordinate with my System Admins to setup DNS and load balancer resources.</p>
<p>I have found with my work learing and setting up Istio, that I need to fully uninstall it and re-install it.  <em>When I do that Istio will pick a new port for the Ingress Gateway.</em>  This then necessitates me coordinating updates with the System Admins.</p>
<p>It would be convenient if I could force Istio to just keep using the same port.</p>
<p>I am using the Istio Operator to manage Istio.  <strong>Is there a way to set an Ingress Gateway's NodePort with the Istio Operator?</strong></p>

<p>In your Istio operator yaml you can define/override ingressgateway settings (k8s section of an ingressgateway definition)</p>
<p><a href="https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#KubernetesResourcesSpec" rel="nofollow noreferrer">https://istio.io/latest/docs/reference/config/istio.operator.v1alpha1/#KubernetesResourcesSpec</a></p>
<p>for example :</p>
<pre><code>components: 
    ingressGateways:
      - name: istio-ingressgateway
        enabled: true
        k8s:
          service:
            ports:
              - name: status-port
                port: 15021
              - name: tls-istiod
                port: 15012
              - name: tls
                port: 15443
                nodePort: 31371
              - name: http2
                port: 80
                nodePort: 31381
                targetPort: 8280
              - name: https
                port: 443
                nodePort: 31391
                targetPort: 8243
</code></pre>
