-
Notifications
You must be signed in to change notification settings - Fork 621
Clarifying TLS Spec on HTTPRoute, Moving to Extended Support #739
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -113,21 +113,26 @@ type HTTPRouteSpec struct { | |
|
|
||
| // TLS defines the TLS certificate to use for Hostnames defined in this | ||
| // Route. This configuration only takes effect if the AllowRouteOverride | ||
| // field is set to true in the associated Gateway resource. | ||
| // field is set to true in the associated Gateway Listener. | ||
| // | ||
| // Collisions can happen if multiple HTTPRoutes define a TLS certificate | ||
| // for the same hostname. In such a case, conflict resolution guiding | ||
| // principles apply, specifically, if hostnames are same and two different | ||
| // certificates are specified then the certificate in the | ||
| // oldest resource wins. | ||
| // Attaching a TLS certificate to HTTPRoutes provides a way for HTTPRoute | ||
| // owners to effectively populate certificates on Gateway Listeners. Note | ||
| // that only one certificate may be attached to a Gateway Listener for a | ||
| // specified hostname. It is not possible to use different certificates for | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Only one secret can be attached to a listener, but we don't specify what is in that secret. You could have a whole pile of certificates if you want :) |
||
| // different HTTPRoutes for the same hostname on the same Gateway Listener. | ||
| // | ||
| // Please note that HTTP Route-selection takes place after the | ||
| // TLS Handshake (ClientHello). Due to this, TLS certificate defined | ||
| // here will take precedence even if the request has the potential to | ||
| // match multiple routes (in case multiple HTTPRoutes share the same | ||
| // hostname). | ||
| // If multiple HTTPRoutes define a TLS certificate for the same hostname and | ||
| // are bound to the same Gateway Listener, precedence MUST be determined in | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are you are referring to the precedence of the certificate here? So in this case
|
||
| // order of the following criteria, continuing on ties: | ||
| // | ||
| // Support: Core | ||
| // * The oldest Route based on creation timestamp. For example, a Route with | ||
| // a creation timestamp of "2021-07-28 01:02:03" is given precedence over | ||
| // a Route with a creation timestamp of "2021-07-28 01:02:04". | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Shouldn't we apply latest timestamp win previous timestamp, which is similar to overwrite.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. https://gateway-api.sigs.k8s.io/concepts/guidelines/#conflicts Oldest-wins is least likely to break existing configurations. |
||
| // * The Route appearing first in alphabetical order by | ||
| // "<namespace>/<name>". For example, foo/bar is given precedence over | ||
| // foo/baz. | ||
| // | ||
| // Support: Extended | ||
| // | ||
| // +optional | ||
| TLS *RouteTLSConfig `json:"tls,omitempty"` | ||
|
|
||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we need to talk about how wildcards are handled?