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?
Actually you can do this without wrapping. In my case I had to expose Keycloak as VirtualService
. Also keycloak was in other namespace.
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: - "*"
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
.
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.