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

ROX-19562: Add annotations to rate limit managed-central routes traffic #1288

Merged
merged 6 commits into from
Nov 3, 2023

Conversation

rhybrillou
Copy link
Contributor

@rhybrillou rhybrillou commented Sep 20, 2023

Description

In order to protect against (D)DOS attacks, the OpenShift routes to Central managed by FleetShard sync are being annotated in order to activate traffic throttling features.

The default values were derived from the haproxy metrics available in the current ACS CS instances.

  • The most busy central shows a total HTTP response count of 9 averaged over a 5 minute period.
    Assuming all the averaged requests were a burst of concurrent requests, these could have been about 3000 requests.
    Adding a safety 10 factor, and using powers of two as throttling value, the default would be 32768 concurrent requests.
  • The most busy central reported up to 43 concurrent connections on a 5 minute period. The limit derived from here is 512 concurrent connections, allowing at most the half as being established at the same time.

Checklist (Definition of Done)

  • Unit and integration tests added
  • Added test description under Test manual
  • Documentation added if necessary (i.e. changes to dev setup, test execution, ...)
  • CI and all relevant tests are passing
  • Add the ticket number to the PR title if available, i.e. ROX-12345: ...
  • Discussed security and business related topics privately. Will move any security and business related topics that arise to private communication channel.
  • Add secret to app-interface Vault or Secrets Manager if necessary
  • RDS changes were e2e tested manually
  • Check AWS limits are reasonable for changes provisioning new resources

Test manual

TODO: Add manual testing efforts

# To run tests locally run:
make db/teardown db/setup db/migrate
make ocm/setup OCM_OFFLINE_TOKEN=<ocm-offline-token> OCM_ENV=development
make verify lint binary test test/integration

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Sep 20, 2023

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@rhybrillou rhybrillou temporarily deployed to development September 20, 2023 12:16 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development September 20, 2023 12:16 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development September 20, 2023 12:16 — with GitHub Actions Inactive
@rhybrillou rhybrillou requested review from mtodor and a team September 20, 2023 12:16
@rhybrillou rhybrillou temporarily deployed to development September 20, 2023 12:27 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development September 20, 2023 12:27 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development September 20, 2023 12:27 — with GitHub Actions Inactive
@rhybrillou rhybrillou force-pushed the yann/ROX-19562-add_tcp_limits_to_acscs_routes branch from 51c70e7 to 427fd8f Compare October 2, 2023 14:09
@rhybrillou rhybrillou temporarily deployed to development October 2, 2023 14:09 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 2, 2023 14:09 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 2, 2023 14:09 — with GitHub Actions Inactive
@rhybrillou rhybrillou force-pushed the yann/ROX-19562-add_tcp_limits_to_acscs_routes branch from 23f3386 to 591c49a Compare October 13, 2023 06:49
@rhybrillou rhybrillou temporarily deployed to development October 13, 2023 06:49 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 13, 2023 06:49 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 13, 2023 06:49 — with GitHub Actions Inactive
fleetshard/config/config.go Outdated Show resolved Hide resolved
fleetshard/pkg/k8s/route.go Show resolved Hide resolved
fleetshard/pkg/k8s/route.go Show resolved Hide resolved
fleetshard/pkg/k8s/route.go Show resolved Hide resolved
fleetshard/pkg/k8s/route_test.go Outdated Show resolved Hide resolved
fleetshard/pkg/k8s/route_test.go Outdated Show resolved Hide resolved
@rhybrillou rhybrillou temporarily deployed to development October 18, 2023 15:28 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 18, 2023 15:28 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 18, 2023 15:28 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 19, 2023 12:59 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 19, 2023 12:59 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 19, 2023 12:59 — with GitHub Actions Inactive
@rhybrillou rhybrillou force-pushed the yann/ROX-19562-add_tcp_limits_to_acscs_routes branch from 6319464 to f693384 Compare October 19, 2023 13:00
@rhybrillou rhybrillou temporarily deployed to development October 19, 2023 13:00 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development October 19, 2023 13:00 — with GitHub Actions Inactive
@rhybrillou rhybrillou force-pushed the yann/test_route_service branch from fb58e81 to 8b78e0a Compare November 2, 2023 08:06
@rhybrillou rhybrillou force-pushed the yann/ROX-19562-add_tcp_limits_to_acscs_routes branch from d7d2c9b to 2c01aee Compare November 2, 2023 08:06
@openshift-ci openshift-ci bot removed the lgtm label Nov 2, 2023
Copy link
Contributor

openshift-ci bot commented Nov 2, 2023

New changes are detected. LGTM label has been removed.

@rhybrillou rhybrillou temporarily deployed to development November 2, 2023 08:06 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development November 2, 2023 08:08 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development November 2, 2023 08:08 — with GitHub Actions Inactive
@rhybrillou rhybrillou force-pushed the yann/ROX-19562-add_tcp_limits_to_acscs_routes branch from 2c01aee to 9dd71e5 Compare November 2, 2023 11:30
@rhybrillou rhybrillou temporarily deployed to development November 2, 2023 11:30 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development November 2, 2023 11:31 — with GitHub Actions Inactive
@rhybrillou rhybrillou temporarily deployed to development November 2, 2023 11:31 — with GitHub Actions Inactive
Base automatically changed from yann/test_route_service to main November 2, 2023 16:39
@rhybrillou rhybrillou force-pushed the yann/ROX-19562-add_tcp_limits_to_acscs_routes branch from 9dd71e5 to 82ff178 Compare November 3, 2023 12:40
Copy link
Contributor

openshift-ci bot commented Nov 3, 2023

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: janisz, rhybrillou
Once this PR has been reviewed and has the lgtm label, please assign porridge for approval. 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

@rhybrillou rhybrillou merged commit 4a22e2c into main Nov 3, 2023
5 checks passed
@rhybrillou rhybrillou deleted the yann/ROX-19562-add_tcp_limits_to_acscs_routes branch November 3, 2023 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants