Skip to content

Commit fb59621

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

File tree

1 file changed

+25
-10
lines changed

1 file changed

+25
-10
lines changed

geps/gep-3155/index.md

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,34 @@ 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+
// 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

Comments
 (0)