-
Notifications
You must be signed in to change notification settings - Fork 3.4k
cilium-cli: Support testing with multiple parallel curl requests #35949
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
cilium-cli: Support testing with multiple parallel curl requests #35949
Conversation
/test |
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.
Given this is mainly targetted towards stress-testing agent<->proxy interaction, would it make sense to make this conditional on tests using l7 policies?
It also looks like there are some legitimate failures, mainly in tests involving l7 policies.
Yes, but Just looked at the EKS failures, some of the upstream connections get errno 111 (ECONNREFUSED), unfortunately those flows were not in the hubble-flows files (first flow is just after the last failure). |
3012312
to
eff74d2
Compare
eff74d2
to
b42f93b
Compare
/test |
7a61ec1
to
5552c0d
Compare
/test |
Found an issue with |
5552c0d
to
c962cc6
Compare
/test |
c962cc6
to
b949b6f
Compare
/test |
b949b6f
to
64817c1
Compare
Rebased for a CI fix |
/test |
64817c1
to
cce4572
Compare
/test |
@jrajahalme it looks like this picked up a merge conflict. Could you please rebase? @sayboras could you please review on behalf of @cilium/sig-servicemesh and @cilium/envoy? |
Add new 'connectivity test' option '--curl-parallel' which, when set to a value greater than one causes each curl invocation to issue parallel requests on concurrent connections. This can be used to add stress to agent/proxy (DNS and/or Envoy) synchronization. Signed-off-by: Jarno Rajahalme <jarno@isovalent.com>
Envoy default limit on concurrent retries on a cluster is 3. This has been seen hit on CI when tests use multiple parallel requests from curl. Increase the limit to 128 via a new helm value 'envoy.maxConcurrentRetries' and Cilium Agent command line argument '--proxy-max-concurrent-retries'. Signed-off-by: Jarno Rajahalme <jarno@isovalent.com>
Envoy HTTP retry count defaults to 3. Expose it via helm value 'envoy.httpRetryCount' to make tuning of it easier. Signed-off-by: Jarno Rajahalme <jarno@isovalent.com>
cce4572
to
42defdc
Compare
Rebased. |
/test |
Relates: #35949 Signed-off-by: Tam Mach <tam.mach@cilium.io>
Relates: #35949 Signed-off-by: Tam Mach <tam.mach@cilium.io>
Add new
--curl-parallel
option tocilium connectivity test
to allow testing with multiple parallel curl requests to add stress to agent/proxy synchronization. This is opt-in, so by default only one request will be sent by curl commands. Takes the number of concurrent requests, e.g.,cilium connectivity test --curl-parallel=3
Add new agent command line option
--proxy-max-concurrent-retries
(default 128, helm valueenvoy.maxConcurrentRetries
). This is an increase to the Envoy default of only 3 on each upstream cluster. Higher number is warranted due to the default maximum number of upstream connections being 1024, and the fact that Cilium configures upstream clusters that are shared for all local endpoints. The new default is applied also to Envoy Clusters configured via CEC/CCEC CRDs.Finally, expose the agent command line option
--http-retry-count
(default 3) via a new helm valueenvoy.httpRetryCount
to make tuning this easier.