@@ -63,19 +63,34 @@ 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
+ // This setting can be overridden on the service level by use of BackendTLSPolicy.
74
71
//
75
- // ClientCertificateRef can reference to standard Kubernetes resources, i.e.
76
- // Secret, or implementation-specific custom resources.
72
+ // A ClientCertificateRef is considered invalid if:
77
73
//
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>
79
94
ClientCertificateRef SecretObjectReference ` json:"clientCertificateRef,omitempty"`
80
95
}
81
96
```
0 commit comments