Expose opensource Helm charts through Istio Gateway/VirtualService

11/13/2018

I want to expose some Helm Charts through Istio ingress.

For example, today I can expose Kubernetes Dashboard via Ingress type (with NginX Ingress): helm install stable/kubernetes-dashboard --set ingress.enabled=true

However, for Istio would I have to fork the Kubernetes Dashboard Helm chart to add the required Gateway and VirtualService yaml?

Or is there a better way to patch opensource charts to work with Istio ingress?

-- DarVar
istio
kubernetes
kubernetes-helm

2 Answers

12/12/2018

Actually you can do this without wrapping. In my case I had to expose Keycloak as VirtualService. Also keycloak was in other namespace.

  1. I wrote Gateway

apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: keycloak-gateway namespace: keycloak spec: selector: istio: ingressgateway # use Istio default gateway implementation servers: - port: number: 80 name: http protocol: HTTP hosts: - "*"

  1. I wrote VirtualService

apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: demo-keycloak-http namespace: keycloak spec: gateways: - keycloak-gateway hosts: - '*' http: - match: - uri: prefix: /auth route: - destination: host: demo-keycloak-http.keycloak.svc.cluster.local port: number: 80 Notice that I am routing the service name. As you can see, it is possible to expose the helm chart from other namespace, in addition. In your case, maybe you will not need to have to write Gateway

You just need find the name of service and write for it VirtualService.

-- nurgasemetey
Source: StackOverflow

11/14/2018

You could create your own chart that includes the stable/kubernetes-dashboard as dependency in the requirements.yaml. Then you effectively have a wrapper chart that includes the dashboard and you can include the Istio ingress configuration at the wrapper level.

-- Ryan Dawson
Source: StackOverflow