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 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 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 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 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 at 12:04

























asked Nov 13 at 11:48









DarVar

6,925145588




6,925145588












  • Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway
    – Artem Golenyaev
    Nov 14 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 at 12:05


















  • Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway
    – Artem Golenyaev
    Nov 14 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 at 12:05
















Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway
– Artem Golenyaev
Nov 14 at 11:56




Possible duplicate of kubernetes-dashboard exposing through istio [1.0.0] ingress --istio-ingressgateway
– Artem Golenyaev
Nov 14 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 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 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 at 12:22









          Ryan Dawson

          3,1573324




          3,1573324

























              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 at 21:46

























                  answered Dec 12 at 15:17









                  nurgasemetey

                  3092927




                  3092927






























                      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.





                      Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                      Please pay close attention to the following guidance:


                      • 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

                      Guess what letter conforming each word

                      Port of Spain

                      Run scheduled task as local user group (not BUILTIN)