Skip to content

Commit 2470661

Browse files
committed
gep: refine ClientCertificateRef description for backend TLS
Signed-off-by: Norwin Schnyder <[email protected]>
1 parent 8f9ee2c commit 2470661

File tree

1 file changed

+21
-10
lines changed

1 file changed

+21
-10
lines changed

geps/gep-3155/index.md

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,30 @@ type GatewayTLSConfig struct {
6363
...
6464
}
6565
type 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

Comments
 (0)