pub struct GatewayTlsConfig {
pub mode: Option<TlsModeType>,
pub certificate_refs: Option<Vec<SecretObjectReference>>,
pub options: Option<BTreeMap<String, String>>,
}
Expand description
GatewayTLSConfig describes a TLS configuration.
Fields§
§mode: Option<TlsModeType>
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 certificateRefs to be set and contain at least one element.
- 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. CertificateRefs field is ignored in this mode.
Support: Core
certificate_refs: Option<Vec<SecretObjectReference>>
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 ReferencePolicy in the target namespace that allows the certificate to be attached. If a ReferencePolicy does not allow this reference, the “ResolvedRefs” condition MUST be set to False for this listener with the “InvalidCertificateRef” 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)
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 GatewayTlsConfig
impl Clone for GatewayTlsConfig
Source§fn clone(&self) -> GatewayTlsConfig
fn clone(&self) -> GatewayTlsConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for GatewayTlsConfig
impl Debug for GatewayTlsConfig
Source§impl Default for GatewayTlsConfig
impl Default for GatewayTlsConfig
Source§fn default() -> GatewayTlsConfig
fn default() -> GatewayTlsConfig
Source§impl<'de> Deserialize<'de> for GatewayTlsConfig
impl<'de> Deserialize<'de> for GatewayTlsConfig
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 GatewayTlsConfig
impl JsonSchema for GatewayTlsConfig
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(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref
keyword. Read more