Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 25 additions & 10 deletions geps/gep-3155/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,34 @@ type GatewayTLSConfig struct {
...
}
type GatewayBackendTLS struct {
// ClientCertificateRef is a reference to an object that contains a Client
// Certificate and the associated private key.
// ClientCertificateRef references an object that contains a client certificate
// and its associated private key. It can reference standard Kubernetes resources,
// i.e., Secret, or implementation-specific custom resources.
//
// References to a resource in different namespace are invalid UNLESS there
// is a ReferenceGrant in the target namespace that allows the certificate
// to be attached. If a ReferenceGrant does not allow this reference, the
// "ResolvedRefs" condition MUST be set to False for this listener with the
// "RefNotPermitted" reason.
// This setting can be overridden on the service level by use of BackendTLSPolicy.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This statement is no longer true. gateway client certificate is part of gateway identity and should be the same for all connections from gateway to backend, this setting cannot be overridden on service level

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was thinking the same, but I didn’t want to remove it without discussing it first. If everyone agrees, I’ll go ahead and remove it.

//
// ClientCertificateRef can reference to standard Kubernetes resources, i.e.
// Secret, or implementation-specific custom resources.
// A ClientCertificateRef is considered invalid if:
//
// This setting can be overridden on the service level by use of BackendTLSPolicy.
// * It refers to a resource that cannot be resolved (e.g., the referenced resource
// does not exist) or is misconfigured (e.g., a Secret does not contain the keys
// named `tls.crt` and `tls.key`). In this case, the `ResolvedRefs` condition
// on the Gateway MUST be set to False with the Reason `InvalidClientCertificateRef`
// and the Message of the Condition MUST indicate why the reference is invalid.
//
// * It refers to a resource in another namespace UNLESS there is a ReferenceGrant
// in the target namespace that allows the certificate to be attached.
// If a ReferenceGrant does not allow this reference, the `ResolvedRefs` condition
// on the Gateway MUST be set to False with the Reason `RefNotPermitted`.
//
// Implementations MAY choose to perform further validation of the certificate
// content (e.g., checking expiry or enforcing specific formats). In such cases,
// an implementation-specific Reason and Message MUST be set.
//
// Support: Core - Reference to a Kubernetes TLS Secret (with the type `kubernetes.io/tls`).
// Support: Implementation-specific - Other resource kinds or Secrets with a
// different type (e.g., `Opaque`).
// +optional
// <gateway:experimental>
ClientCertificateRef SecretObjectReference `json:"clientCertificateRef,omitempty"`
}
```
Expand Down