-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Ingress GA, updated KEP, merged review comments #1036
Conversation
This PR might not the best place for this, but does the following imply every implementation has to implement healthchecking?
It's great you're introducing a separate healthchecking but given not all existing controllers (i.e ingress-nginx) do healthchecking and relies on Readiness probe and this is accepted by users would it not be better to default to whatever the implementation decides to default to? |
I've few proposals, please let me know if you want me create a separate issue for this.
Here's an example manifest:
In the world default backend would be defined using
Next we can extend this further with HTTP verb/method:
This would configure a front-end that proxies only GET requests to When no rule is configured then the Ingress would configure a front-end accepting all HTTP requests and proxying to default backend. |
Adding to @ElvinEfendi Also, Since we are adding support for multiple backend(service/external), can we make backend a list instead of single entry? We can add a weight in each entry to achieve weight based routing, which will benefit canary deployment BTW, I think these parts of istio's API is well designed: https://github.com/istio/api/blob/master/networking/v1alpha3/virtual_service.pb.go#L494 |
Yes, this would be very useful and I've seen users requesting this in ingress-nginx. If for some reason we want to keep the ingress spec lean, we can also introduce "Alternative front-end types" similar to "Alternative backend types" where the implementation decides what configuration options it provides.
IMHO
where If we decide to support HTTP method/verb, header, request params on top of path and host in a rule we have to define their priorities as well. Maybe we can introduce an optional |
@ElvinEfendi To be honest, i'm not a fan to predefine backends in
If we can make big changes like this, i'd also like to see traffic mirroring. path rewrite get included (though seems only nginx ingress controller can support them now :D) |
👍 I guess it would not be necessary to predefine backends if we implement the other suggested proposals. |
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.
Couple of general questions
|
||
Maintaining a regular expression subset is likely not worth the complexity and | ||
is likely impossible across the [many implementations][regex-survey]. | ||
1. v1beta1 will default to `ImplementationSpecific`. |
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.
Why default this to ImplementationSpecific in v1beta1 but not in v1?
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.
Mentioned in sig-net meeting- this is strictly for backwards-compat for now
| `spec.backend` | `spec.defaultBackend` | Explicitly mentions default | | ||
| v1beta1 | v1 | Rationale | | ||
|----------------|-----------------------|----------------------------| | ||
| `spec.backend` | `spec.defaultBackend` | Explicitly mention default | |
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.
How do we rename this safely? IIRC we may need to create a new field at this point in the API process.
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.
fields can be renamed across version boundaries by conversion
/lgtm |
@bowei: PR needs rebase. 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. |
/lgtm |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: bowei, cmluciano, vllry The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
arghh.. accidentally trashed this PR |
Ingress GA, updated KEP, merged review comments (recovered version of #1036)
Merging comment feedback.