HTTPRoute [httproutes.gateway.networking.k8s.io/v1]
- Description
- HTTPRoute provides a way to route HTTP requests. This includes the capability to match requests by hostname, path, header, or query param. Filters can be used to specify additional processing steps. Backends specify where matching requests should be routed.
- Type
object- Required
spec
Specification
.spec
- Description
- Spec defines the desired state of HTTPRoute.
- Type
object
.spec.hostnames
- Description
- Hostnames defines a set of hostnames that should match against the HTTP Host header to select a HTTPRoute used to process the request. Implementations MUST ignore any port value specified in the HTTP Host header while performing a match and (absent of any applicable header modification configuration) MUST forward this header unmodified to the backend. Valid values for Hostnames are determined by RFC 1123 definition of a hostname with 2 notable exceptions: 1. IPs are not allowed. 2. A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. If a hostname is specified by both the Listener and HTTPRoute, there must be at least one intersecting hostname for the HTTPRoute to be attached to the Listener. For example: * A Listener with `test.example.com` as the hostname matches HTTPRoutes that have either not specified any hostnames, or have specified at least one of `test.example.com` or `*.example.com`. * A Listener with `*.example.com` as the hostname matches HTTPRoutes that have either not specified any hostnames or have specified at least one hostname that matches the Listener hostname. For example, `*.example.com`, `test.example.com`, and `foo.test.example.com` would all match. On the other hand, `example.com` and `test.example.net` would not match. Hostnames that are prefixed with a wildcard label (`*.`) are interpreted as a suffix match. That means that a match for `*.example.com` would match both `test.example.com`, and `foo.test.example.com`, but not `example.com`. If both the Listener and HTTPRoute have specified hostnames, any HTTPRoute hostnames that do not match the Listener hostname MUST be ignored. For example, if a Listener specified `*.example.com`, and the HTTPRoute specified `test.example.com` and `test.example.net`, `test.example.net` must not be considered for a match. If both the Listener and HTTPRoute have specified hostnames, and none match with the criteria above, then the HTTPRoute is not accepted. The implementation must raise an 'Accepted' Condition with a status of `False` in the corresponding RouteParentStatus. In the event that multiple HTTPRoutes specify intersecting hostnames (e.g. overlapping wildcard matching and exact matching hostnames), precedence must be given to rules from the HTTPRoute with the largest number of: * Characters in a matching non-wildcard hostname. * Characters in a matching hostname. If ties exist across multiple Routes, the matching precedence rules for HTTPRouteMatches takes over. Support: Core
- Type
array
.spec.hostnames[]
- Description
- Hostname is the fully qualified domain name of a network host. This matches the RFC 1123 definition of a hostname with 2 notable exceptions: 1. IPs are not allowed. 2. A hostname may be prefixed with a wildcard label (`*.`). The wildcard label must appear by itself as the first label. Hostname can be "precise" which is a domain name without the terminating dot of a network host (e.g. "foo.example.com") or "wildcard", which is a domain name prefixed with a single wildcard label (e.g. `*.example.com`). Note that as per RFC1035 and RFC1123, a *label* must consist of lower case alphanumeric characters or '-', and must start and end with an alphanumeric character. No other punctuation is allowed.
- Type
string
.spec.parentRefs
- Description
- ParentRefs references the resources (usually Gateways) that a Route wants to be attached to. Note that the referenced parent resource needs to allow this for the attachment to be complete. For Gateways, that means the Gateway needs to allow attachment from Routes of this kind and namespace. For Services, that means the Service must either be in the same namespace for a "producer" route, or the mesh implementation must support and allow "consumer" routes for the referenced Service. ReferenceGrant is not applicable for governing ParentRefs to Services - it is not possible to create a "producer" route for a Service in a different namespace from the Route. There are two kinds of parent resources with "Core" support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. ParentRefs must be _distinct_. This means either that: * They select different objects. If this is the case, then parentRef entries are distinct. In terms of fields, this means that the multi-part key defined by `group`, `kind`, `namespace`, and `name` must be unique across all parentRef entries in the Route. * They do not select different objects, but for each optional field used, each ParentRef that selects the same object must set the same set of optional fields to different values. If one ParentRef sets a combination of optional fields, all must set the same combination. Some examples: * If one ParentRef sets `sectionName`, all ParentRefs referencing the same object must also set `sectionName`. * If one ParentRef sets `port`, all ParentRefs referencing the same object must also set `port`. * If one ParentRef sets `sectionName` and `port`, all ParentRefs referencing the same object must also set `sectionName` and `port`. It is possible to separately reference multiple distinct objects that may be collapsed by an implementation. For example, some implementations may choose to merge compatible Gateway Listeners together. If that is the case, the list of routes attached to those resources should also be merged. Note that for ParentRefs that cross namespace boundaries, there are specific rules. Cross-namespace references are only valid if they are explicitly allowed by something in the namespace they are referring to. For example, Gateway has the AllowedRoutes field, and ReferenceGrant provides a generic way to enable other kinds of cross-namespace reference.
- Type
array
.spec.parentRefs[]
- Description
- ParentReference identifies an API object (usually a Gateway) that can be considered a parent of this resource (usually a route). There are two kinds of parent resources with "Core" support: * Gateway (Gateway conformance profile) * Service (Mesh conformance profile, ClusterIP Services only) This API may be extended in the future to support additional kinds of parent resources. The API object must be valid in the cluster; the Group and Kind must be registered in the cluster for this reference to be valid.
- Type
object- Required
name
.spec.rules
- Description
- Rules are a list of HTTP matchers, filters and actions.
- Type
array
.spec.rules[]
- Description
- HTTPRouteRule defines semantics for matching an HTTP request based on conditions (matches), processing it (filters), and forwarding the request to an API object (backendRefs).
- Type
object
.spec.rules[].backendRefs
- Description
- BackendRefs defines the backend(s) where matching requests should be sent. Failure behavior here depends on how many BackendRefs are specified and how many are invalid. If *all* entries in BackendRefs are invalid, and there are also no filters specified in this route rule, *all* traffic which matches this rule MUST receive a 500 status code. See the HTTPBackendRef definition for the rules about what makes a single HTTPBackendRef invalid. When a HTTPBackendRef is invalid, 500 status codes MUST be returned for requests that would have otherwise been routed to an invalid backend. If multiple backends are specified, and some are invalid, the proportion of requests that would otherwise have been routed to an invalid backend MUST receive a 500 status code. For example, if two backends are specified with equal weights, and one is invalid, 50 percent of traffic must receive a 500. Implementations may choose how that 50 percent is determined. When a HTTPBackendRef refers to a Service that has no ready endpoints, implementations SHOULD return a 503 for requests to that backend instead. If an implementation chooses to do this, all of the above rules for 500 responses MUST also apply for responses that return a 503. Support: Core for Kubernetes Service Support: Extended for Kubernetes ServiceImport Support: Implementation-specific for any other resource Support for weight: Core
- Type
array
.spec.rules[].backendRefs[]
- Description
- HTTPBackendRef defines how a HTTPRoute forwards a HTTP request. Note that when a namespace different than the local namespace is specified, a ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details.
- Type
object- Required
name
.spec.rules[].backendRefs[].filters
- Description
- Filters defined at this level should be executed if and only if the request is being forwarded to the backend defined here. Support: Implementation-specific (For broader support of filters, use the Filters field in HTTPRouteRule.)
- Type
array
.spec.rules[].backendRefs[].filters[]
- Description
- HTTPRouteFilter defines processing steps that must be completed during the request or response lifecycle. HTTPRouteFilters are meant as an extension point to express processing that may be done in Gateway implementations. Some examples include request or response modification, implementing authentication strategies, rate-limiting, and traffic shaping. API guarantee/conformance is defined based on the type of the filter.
- Type
object- Required
type
.spec.rules[].backendRefs[].filters[].extensionRef
- Description
- ExtensionRef is an optional, implementation-specific extension to the "filter" behavior. For example, resource "myroutefilter" in group "networking.example.net"). ExtensionRef MUST NOT be used for core and extended filters. This filter can be used multiple times within the same rule. Support: Implementation-specific
- Type
object- Required
groupkindname
.spec.rules[].backendRefs[].filters[].requestHeaderModifier
- Description
- RequestHeaderModifier defines a schema for a filter that modifies request headers. Support: Core
- Type
object
.spec.rules[].backendRefs[].filters[].requestHeaderModifier.add
- Description
- Add adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name. Input: GET /foo HTTP/1.1 my-header: foo Config: add: - name: "my-header" value: "bar,baz" Output: GET /foo HTTP/1.1 my-header: foo,bar,baz
- Type
array
.spec.rules[].backendRefs[].filters[].requestHeaderModifier.add[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].backendRefs[].filters[].requestHeaderModifier.remove
- Description
- Remove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2). Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz Config: remove: ["my-header1", "my-header3"] Output: GET /foo HTTP/1.1 my-header2: bar
- Type
array
.spec.rules[].backendRefs[].filters[].requestHeaderModifier.remove[]
- Type
string
.spec.rules[].backendRefs[].filters[].requestHeaderModifier.set
- Description
- Set overwrites the request with the given header (name, value) before the action. Input: GET /foo HTTP/1.1 my-header: foo Config: set: - name: "my-header" value: "bar" Output: GET /foo HTTP/1.1 my-header: bar
- Type
array
.spec.rules[].backendRefs[].filters[].requestHeaderModifier.set[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].backendRefs[].filters[].requestMirror
- Description
- RequestMirror defines a schema for a filter that mirrors requests. Requests are sent to the specified destination, but responses from that destination are ignored. This filter can be used multiple times within the same rule. Note that not all implementations will be able to support mirroring to multiple backends. Support: Extended
- Type
object- Required
backendRef
.spec.rules[].backendRefs[].filters[].requestMirror.backendRef
- Description
- BackendRef references a resource where mirrored requests are sent. Mirrored requests must be sent only to a single destination endpoint within this BackendRef, irrespective of how many endpoints are present within this BackendRef. If the referent cannot be found, this BackendRef is invalid and must be dropped from the Gateway. The controller must ensure the "ResolvedRefs" condition on the Route status is set to `status: False` and not configure this backend in the underlying implementation. If there is a cross-namespace reference to an *existing* object that is not allowed by a ReferenceGrant, the controller must ensure the "ResolvedRefs" condition on the Route is set to `status: False`, with the "RefNotPermitted" reason and not configure this backend in the underlying implementation. In either error case, the Message of the `ResolvedRefs` Condition should be used to provide more detail about the problem. Support: Extended for Kubernetes Service Support: Implementation-specific for any other resource
- Type
object- Required
name
.spec.rules[].backendRefs[].filters[].requestMirror.fraction
- Description
- Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.
- Type
object- Required
numerator
.spec.rules[].backendRefs[].filters[].requestRedirect
- Description
- RequestRedirect defines a schema for a filter that responds to the request with an HTTP redirection. Support: Core
- Type
object
.spec.rules[].backendRefs[].filters[].requestRedirect.path
- Description
- Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the `Location` header. When empty, the request path is used as-is. Support: Extended
- Type
object- Required
type
.spec.rules[].backendRefs[].filters[].responseHeaderModifier
- Description
- ResponseHeaderModifier defines a schema for a filter that modifies response headers. Support: Extended
- Type
object
.spec.rules[].backendRefs[].filters[].responseHeaderModifier.add
- Description
- Add adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name. Input: GET /foo HTTP/1.1 my-header: foo Config: add: - name: "my-header" value: "bar,baz" Output: GET /foo HTTP/1.1 my-header: foo,bar,baz
- Type
array
.spec.rules[].backendRefs[].filters[].responseHeaderModifier.add[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].backendRefs[].filters[].responseHeaderModifier.remove
- Description
- Remove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2). Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz Config: remove: ["my-header1", "my-header3"] Output: GET /foo HTTP/1.1 my-header2: bar
- Type
array
.spec.rules[].backendRefs[].filters[].responseHeaderModifier.remove[]
- Type
string
.spec.rules[].backendRefs[].filters[].responseHeaderModifier.set
- Description
- Set overwrites the request with the given header (name, value) before the action. Input: GET /foo HTTP/1.1 my-header: foo Config: set: - name: "my-header" value: "bar" Output: GET /foo HTTP/1.1 my-header: bar
- Type
array
.spec.rules[].backendRefs[].filters[].responseHeaderModifier.set[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].backendRefs[].filters[].urlRewrite
- Description
- URLRewrite defines a schema for a filter that modifies a request during forwarding. Support: Extended
- Type
object
.spec.rules[].backendRefs[].filters[].urlRewrite.path
- Description
- Path defines a path rewrite. Support: Extended
- Type
object- Required
type
.spec.rules[].filters
- Description
- Filters define the filters that are applied to requests that match this rule. Wherever possible, implementations SHOULD implement filters in the order they are specified. Implementations MAY choose to implement this ordering strictly, rejecting any combination or order of filters that cannot be supported. If implementations choose a strict interpretation of filter ordering, they MUST clearly document that behavior. To reject an invalid combination or order of filters, implementations SHOULD consider the Route Rules with this configuration invalid. If all Route Rules in a Route are invalid, the entire Route would be considered invalid. If only a portion of Route Rules are invalid, implementations MUST set the "PartiallyInvalid" condition for the Route. Conformance-levels at this level are defined based on the type of filter: - ALL core filters MUST be supported by all implementations. - Implementers are encouraged to support extended filters. - Implementation-specific custom filters have no API guarantees across implementations. Specifying the same filter multiple times is not supported unless explicitly indicated in the filter. All filters are expected to be compatible with each other except for the URLRewrite and RequestRedirect filters, which may not be combined. If an implementation cannot support other combinations of filters, they must clearly document that limitation. In cases where incompatible or unsupported filters are specified and cause the `Accepted` condition to be set to status `False`, implementations may use the `IncompatibleFilters` reason to specify this configuration error. Support: Core
- Type
array
.spec.rules[].filters[]
- Description
- HTTPRouteFilter defines processing steps that must be completed during the request or response lifecycle. HTTPRouteFilters are meant as an extension point to express processing that may be done in Gateway implementations. Some examples include request or response modification, implementing authentication strategies, rate-limiting, and traffic shaping. API guarantee/conformance is defined based on the type of the filter.
- Type
object- Required
type
.spec.rules[].filters[].extensionRef
- Description
- ExtensionRef is an optional, implementation-specific extension to the "filter" behavior. For example, resource "myroutefilter" in group "networking.example.net"). ExtensionRef MUST NOT be used for core and extended filters. This filter can be used multiple times within the same rule. Support: Implementation-specific
- Type
object- Required
groupkindname
.spec.rules[].filters[].requestHeaderModifier
- Description
- RequestHeaderModifier defines a schema for a filter that modifies request headers. Support: Core
- Type
object
.spec.rules[].filters[].requestHeaderModifier.add
- Description
- Add adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name. Input: GET /foo HTTP/1.1 my-header: foo Config: add: - name: "my-header" value: "bar,baz" Output: GET /foo HTTP/1.1 my-header: foo,bar,baz
- Type
array
.spec.rules[].filters[].requestHeaderModifier.add[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].filters[].requestHeaderModifier.remove
- Description
- Remove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2). Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz Config: remove: ["my-header1", "my-header3"] Output: GET /foo HTTP/1.1 my-header2: bar
- Type
array
.spec.rules[].filters[].requestHeaderModifier.remove[]
- Type
string
.spec.rules[].filters[].requestHeaderModifier.set
- Description
- Set overwrites the request with the given header (name, value) before the action. Input: GET /foo HTTP/1.1 my-header: foo Config: set: - name: "my-header" value: "bar" Output: GET /foo HTTP/1.1 my-header: bar
- Type
array
.spec.rules[].filters[].requestHeaderModifier.set[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].filters[].requestMirror
- Description
- RequestMirror defines a schema for a filter that mirrors requests. Requests are sent to the specified destination, but responses from that destination are ignored. This filter can be used multiple times within the same rule. Note that not all implementations will be able to support mirroring to multiple backends. Support: Extended
- Type
object- Required
backendRef
.spec.rules[].filters[].requestMirror.backendRef
- Description
- BackendRef references a resource where mirrored requests are sent. Mirrored requests must be sent only to a single destination endpoint within this BackendRef, irrespective of how many endpoints are present within this BackendRef. If the referent cannot be found, this BackendRef is invalid and must be dropped from the Gateway. The controller must ensure the "ResolvedRefs" condition on the Route status is set to `status: False` and not configure this backend in the underlying implementation. If there is a cross-namespace reference to an *existing* object that is not allowed by a ReferenceGrant, the controller must ensure the "ResolvedRefs" condition on the Route is set to `status: False`, with the "RefNotPermitted" reason and not configure this backend in the underlying implementation. In either error case, the Message of the `ResolvedRefs` Condition should be used to provide more detail about the problem. Support: Extended for Kubernetes Service Support: Implementation-specific for any other resource
- Type
object- Required
name
.spec.rules[].filters[].requestMirror.fraction
- Description
- Fraction represents the fraction of requests that should be mirrored to BackendRef. Only one of Fraction or Percent may be specified. If neither field is specified, 100% of requests will be mirrored.
- Type
object- Required
numerator
.spec.rules[].filters[].requestRedirect
- Description
- RequestRedirect defines a schema for a filter that responds to the request with an HTTP redirection. Support: Core
- Type
object
.spec.rules[].filters[].requestRedirect.path
- Description
- Path defines parameters used to modify the path of the incoming request. The modified path is then used to construct the `Location` header. When empty, the request path is used as-is. Support: Extended
- Type
object- Required
type
.spec.rules[].filters[].responseHeaderModifier
- Description
- ResponseHeaderModifier defines a schema for a filter that modifies response headers. Support: Extended
- Type
object
.spec.rules[].filters[].responseHeaderModifier.add
- Description
- Add adds the given header(s) (name, value) to the request before the action. It appends to any existing values associated with the header name. Input: GET /foo HTTP/1.1 my-header: foo Config: add: - name: "my-header" value: "bar,baz" Output: GET /foo HTTP/1.1 my-header: foo,bar,baz
- Type
array
.spec.rules[].filters[].responseHeaderModifier.add[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].filters[].responseHeaderModifier.remove
- Description
- Remove the given header(s) from the HTTP request before the action. The value of Remove is a list of HTTP header names. Note that the header names are case-insensitive (see https://datatracker.ietf.org/doc/html/rfc2616#section-4.2). Input: GET /foo HTTP/1.1 my-header1: foo my-header2: bar my-header3: baz Config: remove: ["my-header1", "my-header3"] Output: GET /foo HTTP/1.1 my-header2: bar
- Type
array
.spec.rules[].filters[].responseHeaderModifier.remove[]
- Type
string
.spec.rules[].filters[].responseHeaderModifier.set
- Description
- Set overwrites the request with the given header (name, value) before the action. Input: GET /foo HTTP/1.1 my-header: foo Config: set: - name: "my-header" value: "bar" Output: GET /foo HTTP/1.1 my-header: bar
- Type
array
.spec.rules[].filters[].responseHeaderModifier.set[]
- Description
- HTTPHeader represents an HTTP Header name and value as defined by RFC 7230.
- Type
object- Required
namevalue
.spec.rules[].filters[].urlRewrite
- Description
- URLRewrite defines a schema for a filter that modifies a request during forwarding. Support: Extended
- Type
object
.spec.rules[].filters[].urlRewrite.path
- Description
- Path defines a path rewrite. Support: Extended
- Type
object- Required
type
.spec.rules[].matches
- Description
- Matches define conditions used for matching the rule against incoming HTTP 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: - path: value: "/foo" headers: - name: "version" value: "v2" - path: value: "/v2/foo" ``` For a request to match against this rule, a request must satisfy EITHER of the two conditions: - path prefixed with `/foo` AND contains the header `version: v2` - path prefix of `/v2/foo` See the documentation for HTTPRouteMatch on how to specify multiple match conditions that should be ANDed together. If no matches are specified, the default is a prefix path match on "/", which has the effect of matching every HTTP request. Proxy or Load Balancer routing configuration generated from HTTPRoutes MUST prioritize matches based on the following criteria, continuing on ties. Across all rules specified on applicable Routes, precedence must be given to the match having: * "Exact" path match. * "Prefix" path match with largest number of characters. * Method match. * Largest number of header matches. * Largest number of query param matches. Note: The precedence of RegularExpression path matches are implementation-specific. 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 an HTTPRoute, matching precedence MUST be granted to the FIRST matching rule (in list order) with a match meeting the above criteria. When no rules matching a request have been successfully attached to the parent a request is coming from, a HTTP 404 status code MUST be returned.
- Type
array
.spec.rules[].matches[]
- Description
- HTTPRouteMatch defines the predicate used to match requests to a given action. Multiple match types are ANDed together, i.e. the match will evaluate to true only if all conditions are satisfied. For example, the match below will match a HTTP request only if its path starts with `/foo` AND it contains the `version: v1` header: ``` match: path: value: "/foo" headers: - name: "version" value "v1" ```
- Type
object
.spec.rules[].matches[].headers
- Description
- Headers specifies HTTP request header matchers. Multiple match values are ANDed together, meaning, a request must match all the specified headers to select the route.
- Type
array
.spec.rules[].matches[].headers[]
- Description
- HTTPHeaderMatch describes how to select a HTTP route by matching HTTP request headers.
- Type
object- Required
namevalue
.spec.rules[].matches[].path
- Description
- Path specifies a HTTP request path matcher. If this field is not specified, a default prefix match on the "/" path is provided.
- Type
object
.spec.rules[].matches[].queryParams
- Description
- QueryParams specifies HTTP query parameter matchers. Multiple match values are ANDed together, meaning, a request must match all the specified query parameters to select the route. Support: Extended
- Type
array
.spec.rules[].matches[].queryParams[]
- Description
- HTTPQueryParamMatch describes how to select a HTTP route by matching HTTP query parameters.
- Type
object- Required
namevalue
.spec.rules[].timeouts
- Description
- Timeouts defines the timeouts that can be configured for an HTTP request. Support: Extended
- Type
object
.status
- Description
- Status defines the current state of HTTPRoute.
- Type
object- Required
parents
.status.parents
- Description
- Parents is a list of parent resources (usually Gateways) that are associated with the route, and the status of the route with respect to each parent. When this route attaches to a parent, the controller that manages the parent must add an entry to this list when the controller first sees the route and should update the entry as appropriate when the route or gateway is modified. Note that parent references that cannot be resolved by an implementation of this API will not be added to this list. Implementations of this API can only populate Route status for the Gateways/parent resources they are responsible for. A maximum of 32 Gateways will be represented in this list. An empty list means the route has not been attached to any Gateway.
- Type
array
.status.parents[]
- Description
- RouteParentStatus describes the status of a route with respect to an associated Parent.
- Type
object- Required
conditionscontrollerNameparentRef
.status.parents[].conditions
- Description
- Conditions describes the status of the route with respect to the Gateway. Note that the route's availability is also subject to the Gateway's own status conditions and listener status. If the Route's ParentRef specifies an existing Gateway that supports Routes of this kind AND that Gateway's controller has sufficient access, then that Gateway's controller MUST set the "Accepted" condition on the Route, to indicate whether the route has been accepted or rejected by the Gateway, and why. A Route MUST be considered "Accepted" if at least one of the Route's rules is implemented by the Gateway. There are a number of cases where the "Accepted" condition may not be set due to lack of controller visibility, that includes when: * The Route refers to a nonexistent parent. * The Route is of a type that the controller does not support. * The Route is in a namespace the controller does not have access to.
- Type
array
.status.parents[].conditions[]
- Description
- Condition contains details for one aspect of the current state of this API Resource.
- Type
object- Required
lastTransitionTimemessagereasonstatustype
.status.parents[].parentRef
- Description
- ParentRef corresponds with a ParentRef in the spec that this RouteParentStatus struct describes the status of.
- Type
object- Required
name
API Endpoints
The following API endpoints are available:
/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutesDELETE: delete collection of HTTPRouteGET: list objects of kind HTTPRoutePOST: create a new HTTPRoute
/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}DELETE: delete the specified HTTPRouteGET: read the specified HTTPRoutePATCH: partially update the specified HTTPRoutePUT: replace the specified HTTPRoute
/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}/statusGET: read status of the specified HTTPRoutePATCH: partially update status of the specified HTTPRoutePUT: replace status of the specified HTTPRoute
/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes
- HTTP method
DELETE- Description
- delete collection of HTTPRoute
- HTTP responses
- HTTP method
GET- Description
- list objects of kind HTTPRoute
- HTTP responses
- HTTP method
POST- Description
- create a new HTTPRoute
- Query parameters
- Body parameters
- HTTP responses
/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}
- HTTP method
DELETE- Description
- delete the specified HTTPRoute
- Query parameters
- HTTP responses
- HTTP method
GET- Description
- read the specified HTTPRoute
- HTTP responses
- HTTP method
PATCH- Description
- partially update the specified HTTPRoute
- Query parameters
- HTTP responses
- HTTP method
PUT- Description
- replace the specified HTTPRoute
- Query parameters
- Body parameters
- HTTP responses
/apis/gateway.networking.k8s.io/v1/namespaces/{namespace}/httproutes/{name}/status
- HTTP method
GET- Description
- read status of the specified HTTPRoute
- HTTP responses
- HTTP method
PATCH- Description
- partially update status of the specified HTTPRoute
- Query parameters
- HTTP responses
- HTTP method
PUT- Description
- replace status of the specified HTTPRoute
- Query parameters
- Body parameters
- HTTP responses