@@ -63,19 +63,34 @@ type GatewayTLSConfig struct {
6363 ...
6464}
6565type GatewayBackendTLS struct {
66- // ClientCertificateRef is a reference to an object that contains a Client
67- // Certificate and the associated private key.
66+ // ClientCertificateRef references an object that contains a client certificate
67+ // and its associated private key. It can reference standard Kubernetes resources,
68+ // i.e., Secret, or implementation-specific custom resources.
6869 //
69- // References to a resource in different namespace are invalid UNLESS there
70- // is a ReferenceGrant in the target namespace that allows the certificate
71- // to be attached. If a ReferenceGrant does not allow this reference, the
72- // "ResolvedRefs" condition MUST be set to False for this listener with the
73- // "RefNotPermitted" reason.
70+ // This setting can be overridden on the service level by use of BackendTLSPolicy.
7471 //
75- // ClientCertificateRef can reference to standard Kubernetes resources, i.e.
76- // Secret, or implementation-specific custom resources.
72+ // A ClientCertificateRef is considered invalid if:
7773 //
78- // This setting can be overridden on the service level by use of BackendTLSPolicy.
74+ // * It refers to a resource that cannot be resolved (e.g., the referenced resource
75+ // does not exist) or is misconfigured (e.g., a Secret does not contain the keys
76+ // named `tls.crt` and `tls.key`). In this case, the `ResolvedRefs` condition
77+ // on the Gateway MUST be set to False with the Reason `InvalidClientCertificateRef`
78+ // and the Message of the Condition MUST indicate why the reference is invalid.
79+ //
80+ // * It refers to a resource in another namespace UNLESS there is a ReferenceGrant
81+ // in the target namespace that allows the certificate to be attached.
82+ // If a ReferenceGrant does not allow this reference, the `ResolvedRefs` condition
83+ // on the Gateway MUST be set to False with the Reason `RefNotPermitted`.
84+ //
85+ // Implementations MAY choose to perform further validation of the certificate
86+ // content (e.g., checking expiry or enforcing specific formats). In such cases,
87+ // an implementation-specific Reason and Message MUST be set.
88+ //
89+ // Support: Core - Reference to a Kubernetes TLS Secret (with the type `kubernetes.io/tls`).
90+ // Support: Implementation-specific - Other resource kinds or Secrets with a
91+ // different type (e.g., `Opaque`).
92+ // +optional
93+ // <gateway:experimental>
7994 ClientCertificateRef SecretObjectReference ` json:"clientCertificateRef,omitempty"`
8095}
8196```
0 commit comments