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

[POC] local/global rate limiting #774

Closed
6 tasks done
Tracked by #1365
strekm opened this issue Apr 25, 2024 · 1 comment
Closed
6 tasks done
Tracked by #1365

[POC] local/global rate limiting #774

strekm opened this issue Apr 25, 2024 · 1 comment
Assignees
Labels
area/api-gateway Issues or PRs related to api-gateway kind/feature Categorizes issue or PR as related to a new feature.

Comments

@strekm
Copy link
Contributor

strekm commented Apr 25, 2024

Description

In scope of this POC is documentation of examples on how to configure Istio EnvoyFilters to configure rate limit. Documented examples later on will be used to design API of new CRD. CRD will be part of Istio module. It should be possible to limit workload access by:

  • custom header
  • client IP
  • client cert

Have in mind that rate limiting should be possible on more than 1 condition. Take into consideration that workload can be exposed and secured with API Gateway APIRule CR or directly using Istio resources. Workload might be secured with external authorizer.

Focus of this POC is local rate limiting but have in mind that in the future global rate limiting also should be possible.

Update on 30.04.
After initial tests for local rate limiting, we realised that capabilities of local rate limiting are very limited. Local rate limiting is limited to very static descriptors, which makes it impossible to support use cases such as rate limiting based on client IP in a good way. As we have not yet spent much time on this task, it was decided to also look at global rate limiting and compare global and local rate limiting.

ACs:

  • it is possible to limit access to workload by caller IP, cert or customer header
  • it is possible to limit access by more than 1 condition
  • existing functionalities (APIRule, external authorizer or Istio equivalent) are not affected
  • perf tests executed

DoD:
- [ ] Provide unit and integration tests.

  • Provide documentation.
  • Verify if the solution works for both open-source Kyma and SAP BTP, Kyma runtime.
    - [ ] If you changed the resource limits, explain why it was needed.
    - [ ] If the default configuration of Istio Operator has been changed, you performed a manual upgrade test to verify that the change can be rolled out correctly.
    - [ ] Verify that your contributions don't decrease code coverage. If they do, explain why this is the case.
    - [ ] Add release notes.

Attachments
part of: kyma-project/api-gateway#1365

@strekm strekm added kind/feature Categorizes issue or PR as related to a new feature. area/api-gateway Issues or PRs related to api-gateway labels Apr 25, 2024
@triffer triffer self-assigned this Apr 29, 2024
@triffer triffer mentioned this issue May 7, 2024
@strekm strekm changed the title [POC] local rate limiting [POC] local/global rate limiting May 14, 2024
@strekm strekm closed this as completed May 21, 2024
@strekm strekm mentioned this issue Jul 4, 2024
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api-gateway Issues or PRs related to api-gateway kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

2 participants