@@ -63,19 +63,30 @@ 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+ // A ClientCertificateRef is considered invalid if:
7471 //
75- // ClientCertificateRef can reference to standard Kubernetes resources, i.e.
76- // Secret, or implementation-specific custom resources.
72+ // * It refers to a resource that cannot be resolved (e.g., the referenced resource
73+ // does not exist) or is misconfigured (e.g., a Secret does not contain the keys
74+ // named `tls.crt` and `tls.key`). In this case, the `ResolvedRefs` condition
75+ // on the Gateway MUST be set to False with the Reason `InvalidClientCertificateRef`
76+ // and the Message of the Condition MUST indicate why the reference is invalid.
7777 //
78- // This setting can be overridden on the service level by use of BackendTLSPolicy.
78+ // * It refers to a resource in another namespace UNLESS there is a ReferenceGrant
79+ // in the target namespace that allows the certificate to be attached.
80+ // If a ReferenceGrant does not allow this reference, the `ResolvedRefs` condition
81+ // on the Gateway MUST be set to False with the Reason `RefNotPermitted`.
82+ //
83+ // Implementations MAY choose to perform further validation of the certificate
84+ // content (e.g., checking expiry or enforcing specific formats). In such cases,
85+ // an implementation-specific Reason and Message MUST be set.
86+ //
87+ // Support: Core — Reference to a Kubernetes TLS Secret (with the type `kubernetes.io/tls`).
88+ // Support: Implementation-specific — Other resource kinds or Secrets with a
89+ // different type (e.g., `Opaque`).
7990 ClientCertificateRef SecretObjectReference ` json:"clientCertificateRef,omitempty"`
8091}
8192```
0 commit comments