Struct k8s_gateway_api::TlsRouteSpec
source · [−]pub struct TlsRouteSpec {
pub inner: CommonRouteSpec,
pub hostnames: Option<Vec<Hostname>>,
pub rules: Vec<TlsRouteRule>,
}
Expand description
The TLSRoute resource is similar to TCPRoute, but can be configured to match against TLS-specific metadata. This allows more flexibility in matching streams for a given TLS listener.
If you need to forward traffic to a single target for a TLS listener, you could choose to use a TCPRoute with a TLS listener.
Fields
inner: CommonRouteSpec
Common route information.
hostnames: Option<Vec<Hostname>>
Hostnames defines a set of SNI names that should match against the SNI attribute of TLS ClientHello message in TLS handshake. This matches the RFC 1123 definition of a hostname with 2 notable exceptions:
- IPs are not allowed in SNI names per RFC 6066.
- 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 TLSRoute, there must be at least one intersecting hostname for the TLSRoute to be attached to the Listener. For example:
- A Listener with
test.example.com
as the hostname matches TLSRoutes that have either not specified any hostnames, or have specified at least one oftest.example.com
or*.example.com
. - A Listener with
*.example.com
as the hostname matches TLSRoutes that have either not specified any hostnames or have specified at least one hostname that matches the Listener hostname. For example,test.example.com
and*.example.com
would both match. On the other hand,example.com
andtest.example.net
would not match.
If both the Listener and TLSRoute have specified hostnames, any TLSRoute
hostnames that do not match the Listener hostname MUST be ignored. For
example, if a Listener specified *.example.com
, and the TLSRoute
specified test.example.com
and test.example.net
, test.example.net
must not be considered for a match.
If both the Listener and TLSRoute have specified hostnames, and none
match with the criteria above, then the TLSRoute is not accepted. The
implementation must raise an ‘Accepted’ Condition with a status of
False
in the corresponding RouteParentStatus.
Support: Core
rules: Vec<TlsRouteRule>
Rules are a list of TLS matchers and actions.
Trait Implementations
sourceimpl Clone for TlsRouteSpec
impl Clone for TlsRouteSpec
sourcefn clone(&self) -> TlsRouteSpec
fn clone(&self) -> TlsRouteSpec
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for TlsRouteSpec
impl Debug for TlsRouteSpec
sourceimpl<'de> Deserialize<'de> for TlsRouteSpec
impl<'de> Deserialize<'de> for TlsRouteSpec
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl JsonSchema for TlsRouteSpec
impl JsonSchema for TlsRouteSpec
sourcefn schema_name() -> String
fn schema_name() -> String
The name of the generated JSON Schema. Read more
sourcefn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
sourcefn is_referenceable() -> bool
fn is_referenceable() -> bool
Whether JSON Schemas generated for this type should be re-used where possible using the $ref
keyword. Read more
sourceimpl Serialize for TlsRouteSpec
impl Serialize for TlsRouteSpec
Auto Trait Implementations
impl RefUnwindSafe for TlsRouteSpec
impl Send for TlsRouteSpec
impl Sync for TlsRouteSpec
impl Unpin for TlsRouteSpec
impl UnwindSafe for TlsRouteSpec
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more