Expose opensource Helm charts through Istio Gateway/VirtualService










1















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?










share|improve this question
























  • Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway

    – Artem Golenyaev
    Nov 14 '18 at 11:56











  • Nope my question is really if there is an approach or pattern that I can use rather than forking opensource charts. I've updated question

    – DarVar
    Nov 14 '18 at 12:05















1















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?










share|improve this question
























  • Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway

    – Artem Golenyaev
    Nov 14 '18 at 11:56











  • Nope my question is really if there is an approach or pattern that I can use rather than forking opensource charts. I've updated question

    – DarVar
    Nov 14 '18 at 12:05













1












1








1








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?










share|improve this question
















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?







kubernetes istio helm






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 14 '18 at 12:04







DarVar

















asked Nov 13 '18 at 11:48









DarVarDarVar

7,075145888




7,075145888












  • Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway

    – Artem Golenyaev
    Nov 14 '18 at 11:56











  • Nope my question is really if there is an approach or pattern that I can use rather than forking opensource charts. I've updated question

    – DarVar
    Nov 14 '18 at 12:05

















  • Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway

    – Artem Golenyaev
    Nov 14 '18 at 11:56











  • Nope my question is really if there is an approach or pattern that I can use rather than forking opensource charts. I've updated question

    – DarVar
    Nov 14 '18 at 12:05
















Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway

– Artem Golenyaev
Nov 14 '18 at 11:56





Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway

– Artem Golenyaev
Nov 14 '18 at 11:56













Nope my question is really if there is an approach or pattern that I can use rather than forking opensource charts. I've updated question

– DarVar
Nov 14 '18 at 12:05





Nope my question is really if there is an approach or pattern that I can use rather than forking opensource charts. I've updated question

– DarVar
Nov 14 '18 at 12:05












2 Answers
2






active

oldest

votes


















2














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.






share|improve this answer






























    0














    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.






    share|improve this answer
























      Your Answer






      StackExchange.ifUsing("editor", function ()
      StackExchange.using("externalEditor", function ()
      StackExchange.using("snippets", function ()
      StackExchange.snippets.init();
      );
      );
      , "code-snippets");

      StackExchange.ready(function()
      var channelOptions =
      tags: "".split(" "),
      id: "1"
      ;
      initTagRenderer("".split(" "), "".split(" "), channelOptions);

      StackExchange.using("externalEditor", function()
      // Have to fire editor after snippets, if snippets enabled
      if (StackExchange.settings.snippets.snippetsEnabled)
      StackExchange.using("snippets", function()
      createEditor();
      );

      else
      createEditor();

      );

      function createEditor()
      StackExchange.prepareEditor(
      heartbeatType: 'answer',
      autoActivateHeartbeat: false,
      convertImagesToLinks: true,
      noModals: true,
      showLowRepImageUploadWarning: true,
      reputationToPostImages: 10,
      bindNavPrevention: true,
      postfix: "",
      imageUploader:
      brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
      contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
      allowUrls: true
      ,
      onDemand: true,
      discardSelector: ".discard-answer"
      ,immediatelyShowMarkdownHelp:true
      );



      );













      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280401%2fexpose-opensource-helm-charts-through-istio-gateway-virtualservice%23new-answer', 'question_page');

      );

      Post as a guest















      Required, but never shown

























      2 Answers
      2






      active

      oldest

      votes








      2 Answers
      2






      active

      oldest

      votes









      active

      oldest

      votes






      active

      oldest

      votes









      2














      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.






      share|improve this answer



























        2














        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.






        share|improve this answer

























          2












          2








          2







          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.






          share|improve this answer













          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.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 14 '18 at 12:22









          Ryan DawsonRyan Dawson

          4,5923425




          4,5923425























              0














              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.






              share|improve this answer





























                0














                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.






                share|improve this answer



























                  0












                  0








                  0







                  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.






                  share|improve this answer















                  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.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited Dec 14 '18 at 21:46

























                  answered Dec 12 '18 at 15:17









                  nurgasemeteynurgasemetey

                  3192927




                  3192927



























                      draft saved

                      draft discarded
















































                      Thanks for contributing an answer to Stack Overflow!


                      • Please be sure to answer the question. Provide details and share your research!

                      But avoid


                      • Asking for help, clarification, or responding to other answers.

                      • Making statements based on opinion; back them up with references or personal experience.

                      To learn more, see our tips on writing great answers.




                      draft saved


                      draft discarded














                      StackExchange.ready(
                      function ()
                      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53280401%2fexpose-opensource-helm-charts-through-istio-gateway-virtualservice%23new-answer', 'question_page');

                      );

                      Post as a guest















                      Required, but never shown





















































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown

































                      Required, but never shown














                      Required, but never shown












                      Required, but never shown







                      Required, but never shown







                      Popular posts from this blog

                      Use pre created SQLite database for Android project in kotlin

                      Darth Vader #20

                      Ondo