Skip to content

Commit 6fcbe2b

Browse files
authored
gep: refine ClientCertificateRef description for backend TLS (#4123)
* gep: refine ClientCertificateRef description for backend TLS Signed-off-by: Norwin Schnyder <norwin.schnyder+github@gmail.com> * remove outdated BackendTLSPolicy override note Signed-off-by: Norwin Schnyder <norwin.schnyder+github@gmail.com> --------- Signed-off-by: Norwin Schnyder <norwin.schnyder+github@gmail.com>
1 parent de5f3e6 commit 6fcbe2b

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

geps/gep-3155/index.md

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,32 @@ 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`).
90+
// +optional
91+
// <gateway:experimental>
7992
ClientCertificateRef SecretObjectReference `json:"clientCertificateRef,omitempty"`
8093
}
8194
```

0 commit comments

Comments
 (0)