rancher / rio

Application Deployment Engine for Kubernetes
https://rio.io
Apache License 2.0
2.27k stars 228 forks source link

Routing #1032

Open harshsharma22 opened 4 years ago

harshsharma22 commented 4 years ago

Feature Utilization problem statement :- i have multiple docker services each service expose some endpoint example (authentication/login/ , authentication/user/ these route belong authentication service ) and in those multiple service i have a service which append name of the service in route i.e (example my route become /api/authentication/authentication/login service added this route /api/authentication so as of now i have been using nginx as my router in which i have added this conf location /api/authentication/ to my authentication service how can i achieve this in rio i have solved this but for only one route by adding rewrite in i m my route . but my other endpoint give 405 as gloo doesn't consider them the end point because of one of my service which is appending name as describe above.. so how can i give route so that rio gloo can understand them via rio ?

To Reproduce

  1. start multiple service and in one service try adding name of the service to route

Expected behavior should be able to route

Kubernetes version & type (GKE, on-prem): kubectl version

k3s. 1.17x

Type: Rio version: rio info

version 0.0.7

here my riofile and route

lil-auth: env:

routers: foo: routes:

j-wil commented 4 years ago

I believe I am running into the same issue.

Rio Version: v0.8.0 (af7ad687)
Rio CLI Version: v0.8.0 (af7ad687)

Runnin on AKS 1.17.11

routers:
  abc:
    routes:
      - match:
          path: 
            exact: /users
        to:
          - app: abc-ui
            namespace: abc
            port: 80
      - match:
          path: 
            regxp: /password.*
        to:
          - app: abc-users
            namespace: abc
            port: 8180
      - match:
          path: 
            regxp: /tokens.*
        to:
          - app: abc-users
            namespace: abc
            port: 8180