44 Commits
Author SHA1 Message Date
Takuma ShibuyaandGitHub 6184e4256a refactor: remove helper pointer functions in pull_request tests (#26598)
Signed-off-by: sivchari <[email protected]>
2026-02-24 13:05:53 -05:00
a02c0bae5f feat(controller): Annotation to pause reconciliation for a specific cluster (#26442)
Signed-off-by: Drew Bailey <[email protected]>
Co-authored-by: Drew Bailey <[email protected]>
2026-02-18 20:30:39 -05:00
9c539cd999 chore(controller): Fix modernize linter (#26313)
Signed-off-by: Matthieu MOREL <[email protected]>
Co-authored-by: Blake Pettersson <[email protected]>
2026-02-07 18:35:48 +01:00
Matthieu MORELandGitHub 8cfcf613e7 chore(controller): Fix modernize linter (#26303)
Signed-off-by: Matthieu MOREL <[email protected]>
2026-02-06 17:16:37 -05:00
Matthieu MORELandGitHub 9bb1efbb02 chore: use Expecter Structs from mockery (#25133)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-11-01 13:07:08 +00:00
Matthieu MORELandGitHub 08aec5b909 chore: enable exposedSyncMutex rule from go-critic (#24026)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-08-03 12:47:33 +00:00
Matthieu MORELandGitHub ac8b1a5d7c chore(lint): enable builtinShadow rule from go-critic (#23430)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-06-16 21:20:57 +00:00
Michael CrenshawandGitHub 05ac7845c0 chore(lint): enable more gocritic linters (#23328)
Signed-off-by: Michael Crenshaw <[email protected]>
2025-06-11 23:50:02 -04:00
sivchariandGitHub b97525c11e chore: upgrade Go to 1.24 (#22242)
Signed-off-by: sivchari <[email protected]>
2025-03-10 10:14:41 -04:00
e666baa151 fix: dynamic cluster distribution issue 20965, update the shard… (#21042)
Signed-off-by: caijing <[email protected]>
Co-authored-by: Ishita Sequeira <[email protected]>
2025-02-09 22:25:34 -05:00
Matthieu MORELandGitHub 2fa86b1259 chore: use testify instead of native testing (#21781)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-02-05 09:46:52 -05:00
Matthieu MORELandGitHub 958209dc4a chore: enable ifElseChain from gocritic (#21636)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-22 16:13:51 -05:00
8334da36f2 Bump major version to 3 (#21410)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: crenshaw-dev <[email protected]>
2025-01-10 16:14:00 -05:00
Matthieu MORELandGitHub a0d38d653a chore: enable early-return from revive (#21423)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-08 15:26:02 -05:00
Matthieu MORELandGitHub 064b5ae081 chore: enable indent-error-flow from revive (#21394)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-07 10:25:22 -05:00
Matthieu MORELandGitHub eec6f8526a chore: enable unused-parameter from revive (#21365)
* chore: enable unused-parameter from revive

Signed-off-by: Matthieu MOREL <[email protected]>

* apply recommandations

Signed-off-by: Matthieu MOREL <[email protected]>

---------

Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-07 10:12:56 -05:00
Matthieu MORELandGitHub bc8756f606 chore: enable receiver-naming from revive (#21372)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-06 14:45:11 -05:00
Matthieu MORELandGitHub 1b3942e0af chore: enable redundant-import-alias from revive (#21386)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-06 11:30:42 -05:00
Matthieu MORELandGitHub bc3c389196 chore: enable importas for k8s.io/apimachinery/pkg/api/errors (#21262)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-03 17:09:37 +00:00
Matthieu MORELandGitHub 961e9bad5e chore: import k8s.io/api/core/v1 as corev1 (#21345)
Signed-off-by: Matthieu MOREL <[email protected]>
2025-01-03 11:10:00 -05:00
Matthieu MORELandGitHub c85bb38a83 chore: enable errorf of perfsprint linter (#21280)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-12-30 10:56:41 +02:00
Michael CrenshawandGitHub ce5d1c9a32 chore(controller): simplify sharding code (#21244)
Signed-off-by: Michael Crenshaw <[email protected]>
2024-12-19 00:15:41 +02:00
Matthieu MORELandGitHub 478219ef2e chore: enable perfsprint linter (#20685)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-11-10 21:00:57 -05:00
Matthieu MORELandGitHub 0e4ac0278a chore: enable thelper linter (#20405)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-10-16 17:37:03 +00:00
c348ce0796 chore: enable require-error rule from errorlint linter on controller folder (#18690)
Signed-off-by: Matthieu MOREL <[email protected]>
Signed-off-by: pasha-codefresh <[email protected]>
Co-authored-by: pasha-codefresh <[email protected]>
2024-06-17 13:05:27 +00:00
Matthieu MORELandGitHub 6580a86fb5 chore: enable errorlint linter on controller folder (#18596)
* chore: enable errorlint linter on controller folder

Signed-off-by: Matthieu MOREL <[email protected]>

* Update cache.go

Signed-off-by: Matthieu MOREL <[email protected]>

* Update cache.go

Signed-off-by: Matthieu MOREL <[email protected]>

---------

Signed-off-by: Matthieu MOREL <[email protected]>
2024-06-11 15:33:22 -04:00
Matthieu MORELandGitHub 417ff7b19e chore: enable gofumpt and whitespace linters (#18567)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-06-11 15:41:55 +00:00
Matthieu MORELandGitHub a30bf57308 chore: enable expected-actual rule from testifylint linter (#18575)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-06-10 20:33:00 +00:00
Matthieu MORELandGitHub 6042442da4 chore: enable error-nil rule from testifylint linter (#18544)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-06-10 10:38:55 -04:00
Matthieu MORELandGitHub eb14360d0b chore: enable goimports linter (#18564)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-06-10 09:18:12 -04:00
Matthieu MORELandGitHub 8421ddbc37 chore: enable len and empty rules from testifylint linter (#18516)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-06-07 15:12:50 -04:00
Akram Ben AissiandGitHub 66019aa39c feat: Consistent hashing with bounded loads algorithm for sharding (#16564)
* Adds consistent hashing with bound loads sharding algorithm

Signed-off-by: Akram Ben Aissi <[email protected]>

* Make the assignement consistent accross all clusters
- The assignment or running of the algorithm has to be consistent across all the clusters. Changed the function to return a map where the consistent hash will be used to build the map

- Modifications to the createConsistentHashsingWithBoundLoads function. This will create the map for cluster to shard. Note that the list must be consistent across all shards so that is why the cluster list must be sorted before going through the consistent hash algorithm

Signed-off-by: Akram Ben Aissi <[email protected]>

* Extracting constant and simplifying boolean expression

Signed-off-by: Akram Ben Aissi <[email protected]>

* Update docs: consistent-hashing sharding algorithm

Signed-off-by: Akram Ben Aissi <[email protected]>

---------

Signed-off-by: Akram Ben Aissi <[email protected]>
2024-06-05 18:28:19 +00:00
Matthieu MORELandGitHub db300bad11 fix: enable misspell linter (#18412)
Signed-off-by: Matthieu MOREL <[email protected]>
2024-05-28 12:51:04 +03:00
EnclavetandGitHub 34309b7e69 feat: Add app data to sharding cache to allow sharding by apps (#17014)
* Adding app list to sharding cache

Signed-off-by: Andrew Lee <[email protected]>

* Add shard by apps test

Signed-off-by: Andrew Lee <[email protected]>

* Fix lint

Signed-off-by: Andrew Lee <[email protected]>

* Add coverage to test

Signed-off-by: Andrew Lee <[email protected]>

* Fix lint

Signed-off-by: Andrew Lee <[email protected]>

* Converted cluster/app accesors to private, add apps-in-any-namespace suport in shardingcache init, added read lock to GetAppDistribution

Signed-off-by: Andrew Lee <[email protected]>

* Fix tests

Signed-off-by: Andrew Lee <[email protected]>

---------

Signed-off-by: Andrew Lee <[email protected]>
2024-03-01 13:56:48 -05:00
Oscar WiemanandGitHub d378ce8931 fix typo (#17272)
Signed-off-by: Oscar Wieman <[email protected]>
2024-02-22 02:07:44 +00:00
Lukas WöhrlandGitHub 868368db69 fix: infer correct shard in statefulset setup (#17124, #17016) (#17167)
* fix: infer correct shard in statefulset setup

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix the case if only a single replica

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: resolving pointer on shard compare

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: add readlock for cluster accessor

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: use defer to protect access of 'shard'

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: revert locking in getclusteraccessor

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: handle nil shard case

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: handle any nil shard value as false

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: handle nil case and fix another missing pointer dereference 

Signed-off-by: Lukas Wöhrl <[email protected]>

* revert

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: added tests and fixed some behaviour bugs

Signed-off-by: Lukas Wöhrl <[email protected]>

* test: add test to validate that Shard value is not overriden

Signed-off-by: Lukas Wöhrl <[email protected]>

* fix: added tests and fixe the case when server is changed inside a secret

Signed-off-by: Lukas Wöhrl <[email protected]>

* tests: add test cases for infering the shard logic

Signed-off-by: Lukas Wöhrl <[email protected]>

---------

Signed-off-by: Lukas Wöhrl <[email protected]>
2024-02-13 11:51:41 -05:00
c6f4dcdda9 fix: Use the cache for sharding (#15237)
* feat(sharding): use a cache

Signed-off-by: Alexandre Gaudreault <[email protected]>

* cluster cmd

Signed-off-by: Alexandre Gaudreault <[email protected]>

* - Assign shard 0 to in-cluster cluster and nil check updates
- Caching clusters while sharding: Fixing unit tests
- Update generated docs
- Debug e2e tests
- Default the shardNumber to the number of replicas if it is calculated to a higher value
- defered Unlock only when a lock is set
- Disabling temporarly other versions of k3s to check if e2e passes
- Do not fail if hostname format is not abc-n
- Fix unit test and skip some e2e
- Skip TestGitSubmoduleHTTPSSupport test
- Remove breaking defer c.lock.Unlock()
- Reverting testing all k3s version
- Default sharding fix
Signed-off-by: Akram Ben Aissi <[email protected]>

Signed-off-by: Akram Ben Aissi <[email protected]>

* fixes related to code review: renaming structure param, moving db initialisation

Signed-off-by: Akram Ben Aissi <[email protected]>

* Code review

Signed-off-by: Akram Ben Aissi <[email protected]>

* Set default shard to 0

Signed-off-by: Akram Ben Aissi <[email protected]>

* Set different default value for Sts and Deployment mode

Signed-off-by: Akram Ben Aissi <[email protected]>

* Expose ClusterShardingCache

Signed-off-by: Akram Ben Aissi <[email protected]>

* Removing use of argoDB.db for DistributionFunction

Signed-off-by: Akram Ben Aissi <[email protected]>

* Update generated documentation

Signed-off-by: Akram Ben Aissi <[email protected]>

* Fix comment about NoShardingDistributionFunction and NoShardingAlgorithm

Signed-off-by: Akram Ben Aissi <[email protected]>

---------

Signed-off-by: Alexandre Gaudreault <[email protected]>
Signed-off-by: Akram Ben Aissi <[email protected]>
Co-authored-by: Alexandre Gaudreault <[email protected]>
2024-01-11 01:32:11 -05:00
1a9a69ef7e feat: dynamic rebalancing of clusters across shards (#15036)
* Migrate Application Controller from Statefulset to Deployment

Signed-off-by: ishitasequeira <[email protected]>

* Add sharding deployment logic

Signed-off-by: ishitasequeira <[email protected]>

* Update sharding logic and add comments

Signed-off-by: ishitasequeira <[email protected]>

* Add heartbeat as an environment variable

Signed-off-by: ishitasequeira <[email protected]>

* Add retry logic, heartbeat timeout environment variable

Signed-off-by: ishitasequeira <[email protected]>

* use the logic of pre-specified shard number on application controller pod

Signed-off-by: ishitasequeira <[email protected]>

* fix manifests

Signed-off-by: ishitasequeira <[email protected]>

* fix lint and e2e tests

Signed-off-by: ishitasequeira <[email protected]>

* comment out failing e2e test

Signed-off-by: ishitasequeira <[email protected]>

* increase readiness probe interval period

Signed-off-by: ishitasequeira <[email protected]>

* "comment out readiness probe to see if e2e tests succeed"

Signed-off-by: ishitasequeira <[email protected]>

* revert commented readiness probe

Signed-off-by: ishitasequeira <[email protected]>

* revert commented test case

Signed-off-by: ishitasequeira <[email protected]>

* read environment variable for application controller deployment name

Signed-off-by: ishitasequeira <[email protected]>

* Add nil check on replica count for deployment of application controller

Signed-off-by: ishitasequeira <[email protected]>

* Address comments

Signed-off-by: ishitasequeira <[email protected]>

* Add Informer, Update documentation, add unit tests

Signed-off-by: ishitasequeira <[email protected]>

* update godoc

Signed-off-by: ishitasequeira <[email protected]>

* remove unwanted code and logs

Signed-off-by: ishitasequeira <[email protected]>

* Add more documentation

Signed-off-by: ishitasequeira <[email protected]>

* revert ApplicationController manifest to StatefulSet

Signed-off-by: ishitasequeira <[email protected]>

* reverting updated docs

Signed-off-by: ishitasequeira <[email protected]>

* Add documentation for the new dynamic distribution feature

Signed-off-by: ishitasequeira <[email protected]>

* update documentation

Signed-off-by: ishitasequeira <[email protected]>

* Add an overlay for application controller deployment and update documentation

Signed-off-by: ishitasequeira <[email protected]>

* fix nit

Signed-off-by: ishitasequeira <[email protected]>

* Marking the feature as alpha

Signed-off-by: ishitasequeira <[email protected]>

* Add feature status link

Signed-off-by: ishitasequeira <[email protected]>

* revert go,mod changes

Signed-off-by: ishitasequeira <[email protected]>

* update docs to avoid focusing on StatefulSet/Deployment (#26)

* update docs to avoid focusing on StatefulSet/Deployment

Signed-off-by: Michael Crenshaw <[email protected]>

---------

Signed-off-by: Michael Crenshaw <[email protected]>

* minor update to the doc

Signed-off-by: ishitasequeira <[email protected]>

---------

Signed-off-by: ishitasequeira <[email protected]>
Signed-off-by: Michael Crenshaw <[email protected]>
Co-authored-by: Michael Crenshaw <[email protected]>
2023-09-22 19:49:09 +00:00
Eng Zer JunandGitHub 9807275c7b chore: use t.Setenv to set env vars in tests (#14377)
This commit replaces `os.Setenv` with `t.Setenv` in tests. The
environment variable is automatically restored to its original value
when the test and all its subtests complete.

Reference: https://pkg.go.dev/testing#T.Setenv

Signed-off-by: Eng Zer Jun <[email protected]>
2023-07-06 19:50:08 -04:00
Alexandre GaudreaultandGitHub 877926526d fix(sharding): recurring info logs to debug (#14383)
Signed-off-by: Alexandre Gaudreault <[email protected]>
2023-07-06 19:39:18 -04:00
a4e32b2cef fix: Fixes sharding placement algorithm and allows development of alternative algorithms (#13018)
* fix: Extraction of DistributionFunction to allow passing different type of functions to filter clusters by shard
- Adding unit tests for sharding
- Refresh clusters list on DistributionFunction call

Signed-off-by: Akram Ben Aissi <[email protected]>
Signed-off-by: ishitasequeira <[email protected]>

* fix: Incorrect conversion of an integer with architecture-dependent bit size from [strconv.Atoi](1) to a lower bit size type uint32 without an upper bound check.

Signed-off-by: Akram Ben Aissi <[email protected]>

* Added config to switch to round-robin sharding

Signed-off-by: Raghavi Shirur <[email protected]>
Signed-off-by: Akram Ben Aissi <[email protected]>

* Documenting sharding more, adding shuffling tests (skipped), re-enable sharding algo env var

Signed-off-by: Akram Ben Aissi <[email protected]>

* Allow configuration through argocd-cmd-params-cm configMap and key: controller.sharding.algorithm

Signed-off-by: Akram Ben Aissi <[email protected]>

* De-duplicate code, remove reflection for default case, shorten distribution methods name, ran codegen on manifests
Signed-off-by: Akram Ben Aissi <[email protected]>

Signed-off-by: Akram Ben Aissi <[email protected]>

---------

Signed-off-by: Akram Ben Aissi <[email protected]>
Signed-off-by: ishitasequeira <[email protected]>
Signed-off-by: Raghavi Shirur <[email protected]>
Co-authored-by: Raghavi Shirur <[email protected]>
2023-06-05 09:19:14 -04:00
1d472ba293 chore: Upgrade Go module to v2 (#5931)
* chore: Upgrade Go module to v2

Signed-off-by: jannfis <[email protected]>

* Restore import order

Signed-off-by: jannfis <[email protected]>

* fix knowntypes_normalizer codegen error

Signed-off-by: Alexander Matyushentsev <[email protected]>

* fix codegen

Signed-off-by: Alexander Matyushentsev <[email protected]>

* fix Procfile

Signed-off-by: Alexander Matyushentsev <[email protected]>

Co-authored-by: Alexander Matyushentsev <[email protected]>
2021-04-01 20:44:18 +02:00
Alexander MatyushentsevandGitHub e558f04561 feat: implement 'argocd-util cluster stats' command (#5733)
Signed-off-by: Alexander Matyushentsev <[email protected]>
2021-03-11 08:53:17 -08:00
Alexander MatyushentsevandGitHub d351d134e3 feat: Support controller horizontal scaling (#4285) 2020-10-09 13:16:54 -07:00