gateway.proto

Package: gateway.solo.io

Types:

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

Gateway

A Gateway describes a single Listener (bind address:port) and the routing configuration to upstreams that are reachable via a specific port on the Gateway Proxy itself.

"ssl": bool
"bindAddress": string
"bindPort": int
"options": .gloo.solo.io.ListenerOptions
"status": .core.solo.io.Status
"metadata": .core.solo.io.Metadata
"useProxyProto": .google.protobuf.BoolValue
"httpGateway": .gateway.solo.io.HttpGateway
"tcpGateway": .gateway.solo.io.TcpGateway
"proxyNames": []string
"routeOptions": .gloo.solo.io.RouteConfigurationOptions

Field Type Description
ssl bool if set to false, only use virtual services without ssl configured. if set to true, only use virtual services with ssl configured.
bindAddress string the bind address the gateway should serve traffic on.
bindPort int bind ports must not conflict across gateways for a single proxy.
options .gloo.solo.io.ListenerOptions top level optional configuration for all routes on the gateway.
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.
useProxyProto .google.protobuf.BoolValue Enable ProxyProtocol support for this listener.
httpGateway .gateway.solo.io.HttpGateway Only one of httpGateway or tcpGateway can be set.
tcpGateway .gateway.solo.io.TcpGateway Only one of tcpGateway or httpGateway can be set.
proxyNames []string Names of the Proxy resources to generate from this gateway. If other gateways exist which point to the same proxy, Gloo will join them together. Proxies have a one-to-many relationship with Envoy bootstrap configuration. In order to connect to Gloo, the Envoy bootstrap configuration sets a role in the node metadata Envoy instances announce their role to Gloo, which maps to the {{ .Namespace }}~{{ .Name }} of the Proxy resource. The template for this value can be seen in the Gloo Helm chart Note: this field also accepts fields written in camel-case. They will be converted to kebab-case in the Proxy name. This allows use of the Gateway Name Helm value for this field Defaults to ["gateway-proxy"].
routeOptions .gloo.solo.io.RouteConfigurationOptions Route configuration options that live under Envoy’s RouteConfigurationOptions.

HttpGateway

"virtualServices": []core.solo.io.ResourceRef
"virtualServiceSelector": map<string, string>
"virtualServiceExpressions": .gateway.solo.io.VirtualServiceSelectorExpressions
"virtualServiceNamespaces": []string
"options": .gloo.solo.io.HttpListenerOptions

Field Type Description
virtualServices []core.solo.io.ResourceRef Names & namespace refs of the virtual services which contain the actual routes for the gateway. If the list is empty, all virtual services in all namespaces that Gloo watches will apply, with accordance to ssl flag on Gateway above. The default namespace matching behavior can be overridden via virtual_service_namespaces flag below. Only one of virtualServices, virtualServiceExpressions or virtualServiceSelector should be provided. If more than one is provided only one will be checked with priority virtualServiceExpressions, virtualServiceSelector, virtualServices.
virtualServiceSelector map<string, string> Select virtual services by their label. If virtual_service_namespaces is provided below, this will apply only to virtual services in the namespaces specified. Only one of virtualServices, virtualServiceExpressions or virtualServiceSelector should be provided. If more than one is provided only one will be checked with priority virtualServiceExpressions, virtualServiceSelector, virtualServices.
virtualServiceExpressions .gateway.solo.io.VirtualServiceSelectorExpressions Select virtual services using expressions. If virtual_service_namespaces is provided below, this will apply only to virtual services in the namespaces specified. Only one of virtualServices, virtualServiceExpressions or virtualServiceSelector should be provided. If more than one is provided only one will be checked with priority virtualServiceExpressions, virtualServiceSelector, virtualServices.
virtualServiceNamespaces []string Restrict the search by providing a list of valid search namespaces here. Setting ‘*’ will search all namespaces, equivalent to omitting this value.
options .gloo.solo.io.HttpListenerOptions HTTP Gateway configuration.

TcpGateway

"tcpHosts": []gloo.solo.io.TcpHost
"options": .gloo.solo.io.TcpListenerOptions

Field Type Description
tcpHosts []gloo.solo.io.TcpHost TCP hosts that the gateway can route to.
options .gloo.solo.io.TcpListenerOptions TCP Gateway configuration.

VirtualServiceSelectorExpressions

Expressions to define which virtual services to select Example: expressions:

"expressions": []gateway.solo.io.VirtualServiceSelectorExpressions.Expression

Field Type Description
expressions []gateway.solo.io.VirtualServiceSelectorExpressions.Expression Expressions allow for more flexible virtual service label matching, such as equality-based requirements, set-based requirements, or a combination of both. https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#equality-based-requirement.

Expression

"key": string
"operator": .gateway.solo.io.VirtualServiceSelectorExpressions.Expression.Operator
"values": []string

Field Type Description
key string Kubernetes label key, must conform to Kubernetes syntax requirements https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#syntax-and-character-set.
operator .gateway.solo.io.VirtualServiceSelectorExpressions.Expression.Operator The operator can only be in, notin, =, ==, !=, exists, ! (DoesNotExist), gt (GreaterThan), lt (LessThan).
values []string

Operator

Virtual Service Selector expression operator, while the set-based syntax differs from Kubernetes (kubernetes: key: !mylabel, gloo: key: mylabel, operator: "!" | kubernetes: key: mylabel, gloo: key: mylabel, operator: exists), the functionality remains the same.

Name Description
Equals =
DoubleEquals ==
NotEquals !=
In in
NotIn notin
Exists exists
DoesNotExist !
GreaterThan gt
LessThan lt