route_table.proto

Package: gateway.solo.io

Types:

Source File: github.com/solo-io/gloo/projects/gateway/api/v1/route_table.proto

RouteTable

The RouteTable is a child Routing object for the Gloo Gateway.

A RouteTable gets built into the complete routing configuration when it is referenced by a delegateAction, either in a parent VirtualService or another RouteTable.

Routes specified in a RouteTable must have their paths start with the prefix provided in the parent’s matcher.

For example, the following configuration:

virtualService: mydomain.com
match: /a
delegate: a-routes
---
routeTable: a-routes
match: /1

would not be valid, while

virtualService: mydomain.com
match: /a
delegate: a-routes
---
routeTable: a-routes
match: /a/1

would be valid.

A complete configuration might look as follows:

apiVersion: gateway.solo.io/v1
kind: VirtualService
metadata:
  name: 'any'
  namespace: 'any'
spec:
  virtualHost:
    domains:
    - 'any.com'
    routes:
    - matcher:
        prefix: '/a' # delegate ownership of routes for `any.com/a`
      delegateAction:
        name: 'a-routes'
        namespace: 'a'
    - matcher:
        prefix: '/b' # delegate ownership of routes for `any.com/b`
      delegateAction:
        name: 'b-routes'
        namespace: 'b'

Would produce the following route config for mydomain.com:

/a/1 -> foo-upstream
/a/2 -> bar-upstream
/b/3 -> baz-upstream
/b/c/4 -> qux-upstream
"routes": []gateway.solo.io.Route
"status": .core.solo.io.Status
"metadata": .core.solo.io.Metadata
Field Type Description Default
routes []gateway.solo.io.Route the list of routes for the route table.
status .core.solo.io.Status Status indicates the validation status of this resource. Status is read-only by clients, and set by gloo during validation.
metadata .core.solo.io.Metadata Metadata contains the object metadata for this resource.