@@ -63,19 +63,30 @@ type GatewayTLSConfig struct {
63
63
...
64
64
}
65
65
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.
68
69
//
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:
74
71
//
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.
77
77
//
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`).
79
90
ClientCertificateRef SecretObjectReference ` json:"clientCertificateRef,omitempty"`
80
91
}
81
92
```
0 commit comments