Uploaded image for project: 'SAFe Program'
  1. SAFe Program
  2. SP-4491

Add ingress flexibility to the CANFAR science platform

Change Owns to Parent OfsSet start and due date...
    XporterXMLWordPrintable

Details

    • SRCnet
    • Hide

      Kubernetes applications generally do not have an opinion about the ingress on the cluster and typically helm chart deployments allow deployers to set the ingressClassName to be used to route the relevant services (and configure any specific settings needed by the application or its services)

      Currently, the CANFAR base deployment is deployed with the traefik ingress controller by default and the helm chart has the corresponding dependency.

      This is useful in cases, say, where a user is starting with a blank cluster and wants everything included in the box.

      However, for kubernetes clusters in the SRCNodes, where multiple other services and constraints exist, an assumption on ingress shouldn't be made. 

      As we aim to deploy a steady state of production services now, we have to be mindful of the software stack we are adopting in SRCNet and the operational overheads of the same. Reducing and avoiding complexity where possible is essential and multiple ingress controllers add risk and bloat the SRCNet software stack.

      Show
      Kubernetes applications generally do not have an opinion about the ingress on the cluster and typically helm chart deployments allow deployers to set the ingressClassName to be used to route the relevant services (and configure any specific settings needed by the application or its services) Currently, the CANFAR base deployment is deployed with the traefik ingress controller by default and the helm chart has the corresponding dependency . This is useful in cases, say, where a user is starting with a blank cluster and wants everything included in the box. However, for kubernetes clusters in the SRCNodes, where multiple other services and constraints exist, an assumption on ingress shouldn't be made.  As we aim to deploy a steady state of production services now, we have to be mindful of the software stack we are adopting in SRCNet and the operational overheads of the same. Reducing and avoiding complexity where possible is essential and multiple ingress controllers add risk and bloat the SRCNet software stack.
    • Hide

      AC 1: Helm chart to have ingress class choice, such that nginx (or any other ingress provider) can be used.

      Stretch AC2: Helm chart to create ingress objects based on parametrised ingressClassName (eg here).

      Show
      AC 1: Helm chart to have ingress class choice, such that nginx (or any other ingress provider) can be used. Stretch AC2: Helm chart to create ingress objects based on parametrised ingressClassName (eg here ).
    • 2
    • 0
    • PI24 - UNCOVERED

    • PI24-PB Team_RED

    Description

      There are a host of Ingress Controllers available:
      https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/

      While I'm not suggesting we only support NGINx, it looks like that's the immediate use case, and so will be tested with it.

      The APIs and UIs (posix-mapper, skaha, cavern, storage-ui, and science-portal) all use the spec.ingressClassName Annotation to specify the implementation to the Ingress object. Therefore, altering how the APIs are routed SHOULD be relatively simple.

      For the User Sessions' Ingress, the IngressRoute currently used is Traefik specific, but I'm not sure it needs to be. Now that the Kubernetes Java Client is in use, we could programmatically create the Ingress object with the expected /session route mapped to the appropriate service, and eliminate the need for a Traefik specific solution. This would require some exploration.

      Attachments

        Issue Links

          Structure

            Activity

              People

                b.mort Mort, Ben
                r.joshi Joshi, Rohini
                Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Feature Progress

                  Story Point Burn-up: (0%)

                  Feature Estimate: 2.0

                  IssuesStory Points
                  To Do00.0
                  In Progress   00.0
                  Complete00.0
                  Total00.0

                  Dates

                    Created:
                    Updated:

                    Structure Helper Panel