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

GEP: introduce GEP 820 #822

Merged
merged 1 commit into from
Aug 26, 2021
Merged

Conversation

hbagdi
Copy link
Contributor

@hbagdi hbagdi commented Aug 24, 2021

What type of PR is this?

/kind gep
What this PR does / why we need it:
See #820
Which issue(s) this PR fixes:

None

Does this PR introduce a user-facing change?:

NONE

Preview URL: https://deploy-preview-822--kubernetes-sigs-gateway-api.netlify.app/geps/gep-820/

@k8s-ci-robot k8s-ci-robot added kind/gep PRs related to Gateway Enhancement Proposal(GEP) cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Aug 24, 2021
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hbagdi

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 the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 24, 2021
@hbagdi hbagdi force-pushed the gep/820 branch 3 times, most recently from 23c6a94 to 2e93ddc Compare August 24, 2021 16:34
@hbagdi
Copy link
Contributor Author

hbagdi commented Aug 24, 2021

/cc @robscott @bowei @youngnick

more match criterias might be added to L4 routes.

- Do the same to UDPRoute and TLSRoute

Copy link
Contributor

Choose a reason for hiding this comment

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

I think we should still give a patch to support more match types -- as they are going to come up.

What about this:

Modify HTTPPathMatch.Type:

  • Allow qualified names (e.g. acme.io/my-custom-match). These represent custom match types
  • The standard match types (Exact, Prefix, RegularExpression) stay
  • Remove ImplementationSpecific

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Member

Choose a reason for hiding this comment

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

A few related conversations going on here, but it's helpful to reference Dan's earlier comment in the sig-net review that showed the limitations of a single ImplementationSpecific match type: #780 (comment).

Although not completely in scope for the original purpose of this GEP, I think there's enough overlap to discuss it here. I think @bowei's suggestion to bundle this removal of the ExtensionRef with the ability to provide custom match types would help here. Although we'd be removing one way to extend path matching, we'd be adding other more targeted/clearly scoped extension points. It would also match the pattern we've already chosen to take with Protocol on Gateway listeners (a core set of supported values with clear meaning + a way to use your own custom types when necessary).

What do you think @hbagdi @jpeach @youngnick?

Copy link
Member

Choose a reason for hiding this comment

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

If this is something we want to move forward with, should we take the same approach for header and query param matching that also include ImplementationSpecific match types? I don't think we had a clear purpose for the match types in those cases other than to be consistent with path match types, where we were really trying to be consistent with Ingress...

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm happy to just remove it in this iteration. Specifying a match as a separate object is awkward and verbose, and I haven't heard anyone that plans to implement this.

I also don't think that "ImplementationSpecific" is workable in general, because it doesn't actually let you say what kind of match the implementation wants to make.

Copy link
Member

Choose a reason for hiding this comment

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

I think we're all in agreement on removing it. I hate to scope creep, but it does seem like it could make sense to combine the removal of this extension mechanism with loosened validation on match types as an alternative extension point.

Copy link
Member

Choose a reason for hiding this comment

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

I'm happy to just remove it in this iteration

@jpeach To clarify, were you referring to "extensionRef" or "ImplementationSpecific" match types?

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm happy to just remove it in this iteration

@jpeach To clarify, were you referring to "extensionRef" or "ImplementationSpecific" match types?

The former, per the proposal in this GEP. I was just saying that I don't really think we should also try to replace it in this GEP.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think that the idea of adding qualified path match types is fine, but I don't think that we should push to get it into v1alpha2. It's additive anyway.

I'd support just dumping ImplementationSpecific for now, and ensuring that the thing we're designing actually does what we want.

@bowei
Copy link
Contributor

bowei commented Aug 25, 2021

One small suggestion, the rest LGTM

@jpeach
Copy link
Contributor

jpeach commented Aug 25, 2021

/lgtm
/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 25, 2021
@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 25, 2021
@robscott
Copy link
Member

I think it's fine to keep this GEP simple and leave any potential "ImplementationSpecific" match type changes to a future GEP.

/lgtm

@bowei
Copy link
Contributor

bowei commented Aug 26, 2021

/lgtm -- I think as long as there is a reasonable looking proposal for how to add in extensbility, removal of extensionRef lgtm

@youngnick
Copy link
Contributor

Seems like we all agree that this should go in, let's get it done.

I've opened #832 to cover coming back and adding something like @bowei suggested.

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Aug 26, 2021
@youngnick
Copy link
Contributor

Sigh, also needs #830 merged.

@robscott
Copy link
Member

/retest

@k8s-ci-robot k8s-ci-robot merged commit fe96c69 into kubernetes-sigs:master Aug 26, 2021
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. kind/gep PRs related to Gateway Enhancement Proposal(GEP) lgtm "Looks good to me", indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants