Skip to content
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

Clarifying TLS Spec on HTTPRoute, Moving to Extended Support #739

Closed

Conversation

robscott
Copy link
Member

What type of PR is this?
/kind cleanup
/kind documentation

What this PR does / why we need it:
This PR clarifies the TLS spec on HTTPRoute and moves it to extended support. This has been one of the more confusing parts of the API, and it seemed like an update to the spec around it could help. I think there are at least some implementations that have reservations around supporting this feature, so I'm also proposing dropping the support level to "Extended" here.

Does this PR introduce a user-facing change?:

Usage of TLS Certificates in HTTPRoutes has been clarified, support level has changed from "Core" to "Extended".

@robscott robscott added this to the v1alpha2 milestone Jul 28, 2021
@k8s-ci-robot k8s-ci-robot added kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. kind/documentation Categorizes issue or PR as related to documentation. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Jul 28, 2021
@k8s-ci-robot k8s-ci-robot requested a review from hbagdi July 28, 2021 17:29
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: robscott

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jul 28, 2021
// 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
Copy link
Contributor

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?

@hbagdi
Copy link
Contributor

hbagdi commented Jul 29, 2021

I think there are at least some implementations that have reservations around supporting this feature, so I'm also proposing dropping the support level to "Extended" here.

If I understand correctly, support levels have been mostly been decided based on implementation feasibility and not on reservations on whether something is good or not.
Could you please elaborate on your concerns here?

We can clarify if the spec seems ambiguous or revisit this part of the API entirely if need be.

// 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".
Copy link
Contributor

Choose a reason for hiding this comment

The 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.
Do I miss any restrict/rules somewhere ?

Copy link
Contributor

Choose a reason for hiding this comment

The 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.

// 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
Copy link
Contributor

Choose a reason for hiding this comment

The 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 :)

// 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
Copy link
Contributor

Choose a reason for hiding this comment

The 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

  • all the routes are valid
  • only one of the matching certificates is configured on the proxy
  • there's no update to the route's status conditions

@robscott
Copy link
Member Author

robscott commented Aug 9, 2021

Adding a hold on this while we discuss #749.

@robscott
Copy link
Member Author

robscott commented Aug 9, 2021

/hold

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 9, 2021
@robscott
Copy link
Member Author

With #749 merged in, this PR is irrelevant.

/close

@k8s-ci-robot
Copy link
Contributor

@robscott: Closed this PR.

In response to this:

With #749 merged in, this PR is irrelevant.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@robscott robscott deleted the route-tls-clarification branch January 8, 2022 01:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. kind/documentation Categorizes issue or PR as related to documentation. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants