pub struct GatewayListenersTls {
pub certificate_refs: Option<Vec<GatewayListenersTlsCertificateRefs>>,
pub mode: Option<GatewayListenersTlsMode>,
pub options: Option<BTreeMap<String, String>>,
}
Expand description
TLS is the TLS configuration for the Listener. This field is required if the Protocol field is “HTTPS” or “TLS”. It is invalid to set this field if the Protocol field is “HTTP”, “TCP”, or “UDP”.
The association of SNIs to Certificate defined in GatewayTLSConfig is defined based on the Hostname field for this listener.
The GatewayClass MUST use the longest matching SNI out of all available certificates for any TLS handshake.
Support: Core
Fields§
§certificate_refs: Option<Vec<GatewayListenersTlsCertificateRefs>>
CertificateRefs contains a series of references to Kubernetes objects that contains TLS certificates and private keys. These certificates are used to establish a TLS handshake for requests that match the hostname of the associated listener.
A single CertificateRef to a Kubernetes Secret has “Core” support. Implementations MAY choose to support attaching multiple certificates to a Listener, but this behavior is implementation-specific.
References to a resource in different namespace are invalid UNLESS there is a ReferenceGrant in the target namespace that allows the certificate to be attached. If a ReferenceGrant does not allow this reference, the “ResolvedRefs” condition MUST be set to False for this listener with the “RefNotPermitted” reason.
This field is required to have at least one element when the mode is set to “Terminate” (default) and is optional otherwise.
CertificateRefs can reference to standard Kubernetes resources, i.e. Secret, or implementation-specific custom resources.
Support: Core - A single reference to a Kubernetes Secret of type kubernetes.io/tls
Support: Implementation-specific (More than one reference or other resource types)
mode: Option<GatewayListenersTlsMode>
Mode defines the TLS behavior for the TLS session initiated by the client. There are two possible modes:
- Terminate: The TLS session between the downstream client and the Gateway is terminated at the Gateway. This mode requires certificates to be specified in some way, such as populating the certificateRefs field.
- Passthrough: The TLS session is NOT terminated by the Gateway. This implies that the Gateway can’t decipher the TLS stream except for the ClientHello message of the TLS protocol. The certificateRefs field is ignored in this mode.
Support: Core
options: Option<BTreeMap<String, String>>
Options are a list of key/value pairs to enable extended TLS configuration for each implementation. For example, configuring the minimum TLS version or supported cipher suites.
A set of common keys MAY be defined by the API in the future. To avoid
any ambiguity, implementation-specific definitions MUST use
domain-prefixed names, such as example.com/my-custom-option
.
Un-prefixed names are reserved for key names defined by Gateway API.
Support: Implementation-specific
Trait Implementations§
source§impl Clone for GatewayListenersTls
impl Clone for GatewayListenersTls
source§fn clone(&self) -> GatewayListenersTls
fn clone(&self) -> GatewayListenersTls
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for GatewayListenersTls
impl Debug for GatewayListenersTls
source§impl Default for GatewayListenersTls
impl Default for GatewayListenersTls
source§fn default() -> GatewayListenersTls
fn default() -> GatewayListenersTls
source§impl<'de> Deserialize<'de> for GatewayListenersTls
impl<'de> Deserialize<'de> for GatewayListenersTls
source§fn 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>,
source§impl JsonSchema for GatewayListenersTls
impl JsonSchema for GatewayListenersTls
source§fn schema_name() -> String
fn schema_name() -> String
source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
source§fn json_schema(gen: &mut SchemaGenerator) -> Schema
fn json_schema(gen: &mut SchemaGenerator) -> Schema
source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read moresource§impl PartialEq for GatewayListenersTls
impl PartialEq for GatewayListenersTls
source§impl Serialize for GatewayListenersTls
impl Serialize for GatewayListenersTls
impl StructuralPartialEq for GatewayListenersTls
Auto Trait Implementations§
impl Freeze for GatewayListenersTls
impl RefUnwindSafe for GatewayListenersTls
impl Send for GatewayListenersTls
impl Sync for GatewayListenersTls
impl Unpin for GatewayListenersTls
impl UnwindSafe for GatewayListenersTls
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)