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

RFE-3360: add httpRequestTimeout to IngressController CRD #867

Conversation

EmmanuelKasper
Copy link

This helps to better tune slowloris defensive actions. Setting this parameter was possible with the IngressController shipped with OCP3/Origin but we missed it somehow when the OCP4/OKD4 swithc took place.

This helps to better tune slowloris defensive actions.
Setting this parameter was possible with the IngressController shipped with OCP3/Origin
but we missed it somehow when the OCP4/OKD4 swithc took place.
@openshift-ci openshift-ci bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Dec 13, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 13, 2022

Hi @EmmanuelKasper. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Dec 13, 2022

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign lmzuccarelli for approval by writing /assign @lmzuccarelli in a comment. For more information see the Kubernetes Code Review Process.

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@EmmanuelKasper
Copy link
Author

For this to work, if I get correctly we need before:

Is that correct ?

@candita
Copy link
Contributor

candita commented Dec 21, 2022

Will follow up on the RFE 3360 , which is a duplicate of a rejected RFE 1284

@EmmanuelKasper
Copy link
Author

EmmanuelKasper commented Jan 5, 2023

I think we should follow the discussion in RFE-3360 becase

RFE-1284 is about adding ROUTER_SLOWLORIS_HTTP_KEEPALIVE as a tunable and was rejected
RFE-3360 is about adding ROUTER_SLOWLORIS_TIMEOUT as a tunable

this PR is about adding ROUTER_SLOWLORIS_TIMEOUT as a tunable

@candita
Copy link
Contributor

candita commented Jan 6, 2023

@EmmanuelKasper https://issues.redhat.com//browse/RFE-3360 is currently on our backlog. In order for us to consider accepting it, we kindly ask you to demonstrate that this change 1) solves the original problem for this customer, and 2) doesn't cause any new performance issues with the router. Benchmark a series of documented performance tests without the change, and then compare it to the same tests with the change.

@@ -563,6 +563,9 @@ func desiredRouterDeployment(ci *operatorv1.IngressController, ingressController
if ci.Spec.TuningOptions.ClientTimeout != nil && ci.Spec.TuningOptions.ClientTimeout.Duration > 0*time.Second {
env = append(env, corev1.EnvVar{Name: "ROUTER_DEFAULT_CLIENT_TIMEOUT", Value: durationToHAProxyTimespec(ci.Spec.TuningOptions.ClientTimeout.Duration)})
}
if ci.Spec.TuningOptions.httpRequestTimeout != nil && ci.Spec.TuningOptions.ClientTimeout.Duration > 0*time.Second {
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
if ci.Spec.TuningOptions.httpRequestTimeout != nil && ci.Spec.TuningOptions.ClientTimeout.Duration > 0*time.Second {
if ci.Spec.TuningOptions.HTTPRequestTimeout != nil && ci.Spec.TuningOptions.HTTPRequestTimeout.Duration > 0*time.Second {

@@ -563,6 +563,9 @@ func desiredRouterDeployment(ci *operatorv1.IngressController, ingressController
if ci.Spec.TuningOptions.ClientTimeout != nil && ci.Spec.TuningOptions.ClientTimeout.Duration > 0*time.Second {
env = append(env, corev1.EnvVar{Name: "ROUTER_DEFAULT_CLIENT_TIMEOUT", Value: durationToHAProxyTimespec(ci.Spec.TuningOptions.ClientTimeout.Duration)})
}
if ci.Spec.TuningOptions.httpRequestTimeout != nil && ci.Spec.TuningOptions.ClientTimeout.Duration > 0*time.Second {
env = append(env, corev1.EnvVar{Name: "ROUTER_SLOWLORIS_TIMEOUT", Value: durationToHAProxyTimespec(ci.Spec.TuningOptions.httpRequestTimeout.Duration)})
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
env = append(env, corev1.EnvVar{Name: "ROUTER_SLOWLORIS_TIMEOUT", Value: durationToHAProxyTimespec(ci.Spec.TuningOptions.httpRequestTimeout.Duration)})
env = append(env, corev1.EnvVar{Name: "ROUTER_SLOWLORIS_TIMEOUT", Value: durationToHAProxyTimespec(ci.Spec.TuningOptions.HTTPRequestTimeout.Duration)})

@candita
Copy link
Contributor

candita commented Apr 5, 2023

RFE-3360 has now been accepted, but we have not received any response on this PR nor has the RFE been assigned. @mcurry-rh how is this handled?

@openshift-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jul 5, 2023
@openshift-bot
Copy link
Contributor

Stale issues rot after 30d of inactivity.

Mark the issue as fresh by commenting /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.
Exclude this issue from closing by commenting /lifecycle frozen.

If this issue is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Aug 4, 2023
@openshift-bot
Copy link
Contributor

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

/close

@openshift-ci openshift-ci bot closed this Sep 4, 2023
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 4, 2023

@openshift-bot: Closed this PR.

In response to this:

Rotten issues close after 30d of inactivity.

Reopen the issue by commenting /reopen.
Mark the issue as fresh by commenting /remove-lifecycle rotten.
Exclude this issue from closing again by commenting /lifecycle frozen.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants