Cloud Service Mesh GKE API reference

This document is the API reference for Cloud Service Mesh with the Kubernetes Gateway API.

TDMesh

Field Description
apiVersion string
net.gke.io/v1alpha1
kind string
TDMesh
metadata Kubernetes ObjectMeta
spec MeshSpec
status MeshStatus

MeshSpec

Field Description
allowedRoutes gateway.networking.k8s.io/v1.AllowedRoutes
gatewayClassName string
gke-td

MeshStatus

Field Description
conditions The conditions field describes the current conditions of the Mesh.
Known condition types:
  • Scheduled
  • Ready
For more information, read Kubernetes meta/v1.23Condition.

GatewayClass

See the reference documentation for the GatewayClass.

TDGRPCRoute

TDGRPCRoute specifies routing behavior of gRPC requests from a TDMesh or Gateway listener to an API object, for example, Service.

Field Description
apiVersion string
net.gke.io/v1alpha1
kind string
TDGRPCRoute
metadata metav1.23ObjectMeta
spec GRPCRouteSpec
Defines the preferred state of `GRPCRoute.`
Status GRPCRouteStatus
Same as HTTPRouteStatus.

GRPCRouteSpec

The specification of a TDGRPCRoute consists of the values in the following table:

Field Description
CommonRouteSpec CommonRouteSpec
Hostnames []Hostname
Hostnames defines a set of hostnames that should match against the gRPC Host header to select a GRPCRoute to process the request.

Hostname is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in the RFC:
  • IP addresses are not allowed.
  • The `:` delimiter is not respected because ports are not allowed.
Incoming requests are matched against the hostnames before the TDGRPCRoute rules. If no hostname is specified, traffic is routed based on the GRPCRouteRules.

Hostname can be "precise" which is a domain name without the terminating

dot of a network host (for example, butterfly.example.com) or wildcard, which is a domain name prefixed with a single wildcard label, for example, `*.example.com`. The wildcard character `*` must appear by itself as the first DNS label and matches only a single label. You cannot have a wildcard label by itself (for example, Host == "*"). Requests are matched against the `Host` field in the following order:
  • If Host is precise, the request matches this rule if the gRPC host header is equal to Host.
  • If Host is a wildcard, then the request matches this rule if the gRPC host header is to equal to the suffix (removing the first label) of the wildcard rule.
Rules []GRPCRouteRule
Defines a list of gRPC matchers, filters, and actions.

GRPCRouteRule

Rules define semantics for matching a gRPC request based on conditions, and optionally forwarding the request to an API object. Rules consist of the following:

Field Description
Matches GRPCRouteMatch
Defines conditions used for matching a gRPC request. Each match is independent. In other words, this rule is matched if any single match is satisfied.
BackendRefs []GRPCBackendRef

Defines the backends where matching requests should be sent. If unspecified or invalid (refers to a non-existent resource or a Service with no endpoints), the rule performs no forwarding.

GRPCBackendRef is the same as HTTPBackendRef.
GRPCRouteMatch

Rules define semantics for matching a gRPC request based on conditions, and optionally forwarding the request to an API object. Rules are defined as follows:


Field

Description
Method GRPCMethodMatch

Defines a gRPC method to match against.
Headers []GRPCHeaderMatch
Defines a gRPC request header matcher. Multiple match values are combined with an AND operation, meaning, a request must match all the specified headers to select the route.
Note: The definition of GRPCHeaderMatch is the same as `HTTPHeaderMatch`.
GRPCMethodMatch

The GRPCMethodMatch consists of the following:

Field Description
Type MethodMatchType

Defines the type specifying how to match against the name. If not specified, a default value of EXACT is used. You can choose EXACT or RegularExpression.
Service string

Defines the name of the service to match against. If unspecified, will match all services.
Method string

Defines the method to match against. If unspecified, it will match all methods.
GRPCHeaderMatch

The GRPCHeaderMatch consists of the following:

Field Description
Type HeaderMatchType

Defines how to match against the value of the header.
Name String

Name is the name of the gRPC header to be matched. Name matching must be case insensitive. (See https://tools.ietf.org/html/rfc7230#section-3.2).
Value String

Value is the value of HTTP header to be matched.
GRPCBackendRef
Field Description
BackendRef BackendRef

`BackendRef` is a reference to a backend to forward matched requests to.

HTTPRoute

See the open source Gateway API reference for HTTPRoute.

TCPRoute

See the open source Gateway API reference for TCPRoute.