-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
feat(ingress gateway: support configuring limits in ingress-gateway c… #14749
Conversation
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.
I had some editorial comments we could discuss but overall looks great!
website/content/docs/connect/config-entries/ingress-gateway.mdx
Outdated
Show resolved
Hide resolved
{ | ||
name: 'MaxConnections', | ||
type: 'int: 0', | ||
description: `The maximum number of connections a service instance | ||
will be allowed to establish against the given upstream. Use this to limit | ||
HTTP/1.1 traffic, since HTTP/1.1 has a request per connection.`, | ||
}, | ||
{ | ||
name: 'MaxPendingRequests', | ||
type: 'int: 0', | ||
description: `The maximum number of requests that will be queued | ||
while waiting for a connection to be established. For this configuration to | ||
be respected, a L7 protocol must be defined in the \`protocol\` field.`, | ||
}, | ||
{ | ||
name: 'MaxConcurrentRequests', | ||
type: 'int: 0', | ||
description: `The maximum number of concurrent requests that | ||
will be allowed at a single point in time. Use this to limit HTTP/2 traffic, | ||
since HTTP/2 has many requests per connection. For this configuration to be | ||
respected, a L7 protocol must be defined in the \`protocol\` field.`, | ||
}, |
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.
Should we mention the default values?
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.
Added in the following commit
{ | ||
name: 'MaxConnections', | ||
type: 'int: 0', | ||
description: overrides for `Defaults` configuration, |
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.
I would provide a link to these configuration items.
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.
Added in the following commit
MaxConnections int32 | ||
MaxPendingRequests int32 | ||
MaxConcurrentRequests int32 |
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.
uint32
would be more accurate per envoy, correct?
…onfig entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]>
Co-authored-by: Dan Stough <[email protected]>
7a9962b
to
d896381
Compare
13b47ca
to
52c2dd6
Compare
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.
Awesome! 🚀
@huikang This will also need a PR on consul-k8s to apply this new config via CRDs |
#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
…ss-gateway c… into release/1.13.x (#14791) * no-op commit due to failed cherry-picking * feat(ingress gateway: support configuring limits in ingress-gateway c… (#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
…ss-gateway c… into release/1.12.x (#14790) * feat(ingress gateway: support configuring limits in ingress-gateway c… (#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]> * fix flaky integration test (#14843) * remove pbconfigentry Co-authored-by: temp <[email protected]> Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]> Co-authored-by: cskh <[email protected]>
…ss-gateway c… into release/1.12.x (#14790) * feat(ingress gateway: support configuring limits in ingress-gateway c… (#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
…ss-gateway c… into release/1.12.x (#14790) * feat(ingress gateway: support configuring limits in ingress-gateway c… (#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
…ss-gateway c… into release/1.11.x (#14789) * Backport of feat(ingress gateway: support configuring limits in ingress-gateway c… into release/1.12.x (#14790) * feat(ingress gateway: support configuring limits in ingress-gateway c… (#14749) * feat(ingress gateway: support configuring limits in ingress-gateway config entry - a new Defaults field with max_connections, max_pending_connections, max_requests is added to ingress gateway config entry - new field max_connections, max_pending_connections, max_requests in individual services to overwrite the value in Default - added unit test and integration test - updated doc Co-authored-by: Chris S. Kim <[email protected]> Co-authored-by: Jeff Boruszak <[email protected]> Co-authored-by: Dan Stough <[email protected]>
Description
As a user of ingress gateway, I want to increase the max_connections of the service in the ingress-gateway config entry (link to the detailed description). However, in current implementation, max_coonections can’t be changed and is set to the default value of 1024 by envoy.
This PR adds a new field named Defaults to the ingress-gateway config entry and
max_xyz
to individual listening services. The new fields allow user to configure themax_xyz
of the upstream cluster of a specified service behind the ingress gateway.Fixes #13374
Testing & Reproduction steps
test/integration/connect/envoy/case-ingress-gateway-multiple-services/config_entries.hcl
).Links
Address #13374
Supersede #14708
Please be mindful not to leak any customer or confidential information. HashiCorp employees may want to use our internal URL shortener to obfuscate links.
PR Checklist