redhat-cop / redhat-cop/group-sync-operator
Keep requests to OKTA under rate limits
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 132
- Forks
- 71
- PR merge metrics
- No merged PRs in 30d
Description
We are seeing an issue where because we are syncing a large number of groups from OKTA the group-sync-operator makes a large number of requests to OKTA and we are exceeding our rate limit.
For example we have a rate limit of 500 requests / minute. When syncing to a cluster with 250 groups we exceed that rate limit, because this operator makes 2x calls for each group (to get group details and to get group membership).
I think because this project uses the OKTA go client it automatically retries when rate limited so groups are eventually synced correctly. However during the time we are over the rate limit all of our OTHER uses of the OKTA API are affected and it is affecting our business.
I'm not sure the best solution but I'd like to consider modifying this operator so that it looks at the rate limit headers returned from requests and slows down it's requests when it nears the rate limit to stay under the limit.
https://developer.okta.com/docs/reference/rl-best-practices/
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how the group-sync-operator uses the Okta Go client for group details and membership requests, then review the linked Okta rate-limit guidance and response headers. Done means synchronization stays below the configured rate limit without disrupting other Okta API users.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100