-
Epic
-
Resolution: Unresolved
-
Undefined
-
None
-
None
-
None
-
Metrics based Load Balancing Algorithm for Even Distribution of Shards
-
False
-
None
-
False
-
SECFLOWOTL-88 - Augment Argo-CD sharding capabilities by implementing additional sharding algorithms
-
-
Story (Required)
As an Argo-CD user, I want the sharding algorithm to evenly distribute the workload across shards to ensure uniform resource utilization and improve performance. The load balancing algorithm should consider factors such as CPU, memory, and network usage to intelligently distribute the workload across shards, avoiding hotspots and bottlenecks.
Background (Required)
https://github.com/argoproj/argo-cd/pull/13018 has introduced the distributionFunction API. The function must be extended to be able to make metrics based distribution.
Out of scope
<Defines what is not included in this story>
Approach (Required)
An initial design must be discussed to determined how can the metrics can be gathered and how arbitrage can be done. Should this be
- a central decision of one elected components getting all the metrics information
- a local decision to each shard computing a load index
Also, there should be a way to get the metrics in a uniform manner. (OpenTelemetry, Prometheus, something else?)
Dependencies
TBD
Acceptance Criteria (Mandatory)
For a running application-controller having at least 2 shards/replicas and managing 4 clusters, if shard#1 becomes overloaded, then when adding a cluster#5, it should be assigned to shard#2
INVEST Checklist
Dependencies identified
Blockers noted and expected delivery timelines set
Design is implementable
Acceptance criteria agreed upon
Story estimated
Legend
Unknown
Verified
Unsatisfied
Done Checklist
- Code is completed, reviewed, documented and checked in
- Unit and integration test automation have been delivered and running cleanly in continuous integration/staging/canary environment
- Continuous Delivery pipeline(s) is able to proceed with new code included
- Customer facing documentation, API docs etc. are produced/updated, reviewed and published
- Acceptance criteria are met