<p>I am using helm to install istio-1.0.0 version with <code>--set grafana.enabled=true</code>.</p>

<p>To access the grafana dashboard, I have to do port forwarding using <code>kubectl</code> command. It works okay. However, i want to access it using public ip, hence I am using this gateway yaml file</p>

<pre><code>---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: grafana-gateway
  namespace: agung-ns
spec:
  selector:
    istio: ingressgateway # use Istio default gateway implementation
  servers:
  - port:
      number: 15031
      name: http-grafana
      protocol: HTTP
    hosts:
    - "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: grafana-global-route
  namespace: agung-ns
spec:
  hosts:
  - "grafana.domain"
  gateways:
  - grafana-gateway
  - mesh
  http:
  - route:
    - destination:
        host: "grafana.istio-system"
        port: 
          number: 3000
      weight: 100
</code></pre>

<p>I tried to <code>curl</code> it, but it returns 404 status, which means something wrong with routing logic and/or my configuration above.</p>

<pre><code>curl -HHost:grafana.domain http://&lt;my-istioingressgateway-publicip&gt;:15031 -I
HTTP/1.1 503 Service Unavailable
date: Tue, 14 Aug 2018 13:04:27 GMT
server: envoy
transfer-encoding: chunked
</code></pre>

<p>Any idea?</p>

<p>I did expose it like this:</p>

<p>grafana.yml</p>

<pre><code>---
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
  name: grafana-gateway
  namespace: istio-system
spec:
  selector:
    istio: ingressgateway # use istio default controller
  servers:
  - port:
      number: 80
      name: http
      protocol: HTTP
    hosts:
    - "my.dns.com"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: grafana-vts
  namespace: istio-system
spec:
  hosts:
  - "my.dns.com"
  gateways:
  - grafana-gateway
  http:
  - match:
    - uri:
        prefix: /
    route:
    - destination:
        host: grafana
        port: 
          number: 3000
</code></pre>

<p>then:</p>

<p><code>kubectl apply grafana.yml</code></p>
