gateway api v1.1.0 experimental

GRPCRoute.spec.rules[].backendRefs[].filters.extensionRef.spec.rules.matches

Matches define conditions used for matching the rule against incoming gRPC requests. Each match is independent, i.e. this rule will be matched if **any** one of the matches is satisfied. For example, take the following matches configuration: ``` matches: - method: service: foo.bar headers: values: version: 2 - method: service: foo.bar.v2 ``` For a request to match against this rule, it MUST satisfy EITHER of the two conditions: - service of foo.bar AND contains the header `version: 2` - service of foo.bar.v2 See the documentation for GRPCRouteMatch on how to specify multiple match conditions to be ANDed together. If no matches are specified, the implementation MUST match every gRPC request. Proxy or Load Balancer routing configuration generated from GRPCRoutes MUST prioritize rules based on the following criteria, continuing on ties. Merging MUST not be done between GRPCRoutes and HTTPRoutes. Precedence MUST be given to the rule with the largest number of: * Characters in a matching non-wildcard hostname. * Characters in a matching hostname. * Characters in a matching service. * Characters in a matching method. * Header matches. If ties still exist across multiple Routes, matching precedence MUST be determined in order of the following criteria, continuing on ties: * The oldest Route based on creation timestamp. * The Route appearing first in alphabetical order by "{namespace}/{name}". If ties still exist within the Route that has been given precedence, matching precedence MUST be granted to the first matching rule meeting the above criteria.

2 fields
GRPCRoute.spec.rules[].backendRefs[].filters.extensionRef.spec.rules.matches fields and descriptions
Field / TypeDescription
object[]

Headers specifies gRPC request header matchers. Multiple match values are ANDed together, meaning, a request MUST match all the specified headers to select the route.

  • maxItems: 16
  • x-kubernetes-list-map-keys: ["name"]
  • x-kubernetes-list-type: "map"
object

Method specifies a gRPC request service/method matcher. If this field is not specified, all services and methods will match.

  • x-kubernetes-validations: [{"message":"One or both of 'service' or 'method' must be specified","rule":"has(self.type) ? has(self.service) || has(self.method) : true"},{"message":"service must only contain valid characters (matching ^(?i)\\.?[a-z_][a-z_0-9]*(\\.[a-z_][a-z_0-9]*)*$)","rule":"(!has(self.type) || self.type == 'Exact') \u0026\u0026 has(self.service) ? self.service.matches(r\"\"\"^(?i)\\.?[a-z_][a-z_0-9]*(\\.[a-z_][a-z_0-9]*)*$\"\"\"): true"},{"message":"method must only contain valid characters (matching ^[A-Za-z_][A-Za-z_0-9]*$)","rule":"(!has(self.type) || self.type == 'Exact') \u0026\u0026 has(self.method) ? self.method.matches(r\"\"\"^[A-Za-z_][A-Za-z_0-9]*$\"\"\"): true"}]