Commit Graph
77 Commits
Author SHA1 Message Date
Blake PetterssonandGitHub 839188e760 feat: add permitOnlyProjectScopedClusters flag (#10237)
This commit adds a new flag, `permitOnlyProjectScopedClusters`, which
prevents any application from syncing to clusters which are not a part
of the same project. Fixes #10220.

Signed-off-by: Blake Pettersson <[email protected]>

Signed-off-by: Blake Pettersson <[email protected]>
2022-09-08 07:33:10 -04:00
Alexander MatyushentsevandGitHub bedad4340d chore: infer managed resources health from redis instead of storing it in CRD (#10191)
* chore: infer managed resources health from redis instead of storing it in CRD

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

* apply reviewer notes

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

Signed-off-by: Alexander Matyushentsev <[email protected]>
2022-08-17 21:03:24 +00:00
jannfisandGitHub 75d334705a feat: Applications in any namespace (#9755)
* feat: Applications in any namespace

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

* Fix typo in CI

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

* Create argocd-e2e-external namespace

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

* Update from codegen

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

* Remove debug code

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

* Update help text for -N option to app create

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

* Wrap error when retrieving AppProject from cache

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

* Check for controller namespace first before matching on additional ns

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

* Improve TestAppProjectIsSourceNamespacePermitted unit test

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

* Get rid of some debug leftovers

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

* Better error wrapping; return IsNotFound as-is

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

* Updates from codegen

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

* We don't need AppShortName() anymore

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

* Update end-to-end tests to use annotation methods

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

* Add e2e tests to test for app creation in not permitted ns

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

* Remove deprecated code

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

* Remove dead code

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

* Add RBACName() method to application type

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

* Update from codegen

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

* Fix e2e test

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

* Update codegen

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

* Move RBAC name generation to an application receiver

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

* Fix sync window status in UI

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

* Fix pod logs viewer

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

* Fix application events in UI

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

* Fix application search in UI

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

* Fix yarn lint

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

* Only set up cluster-wide application informer when additional namespaces are specified

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

* Adapt e2e test to a changed error message

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

* Application namespace should be taken into account for create

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

* Use non-qualified application name as Helm release name

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

* Support --app-namespace in e2e tests

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

* Enable more e2e tests

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

* Increase e2e timeout for newly added tests

Signed-off-by: jannfis <[email protected]>
2022-08-10 11:39:10 +02:00
Leonardo Luz AlmeidaandGitHub 4cebcfc61e fix: Ignore diff with schema (#9170) 2022-05-31 13:21:22 -04:00
69e82828a3 feat: add --app-hard-resync flag to controller (#8928)
* feat: add --app-hard-resync flag to controller

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

* add to approvers

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

* Merge branch 'master' of github.com:pasha-codefresh/argo-cd into hard-refresh

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

# Conflicts:
#	cmd/argocd-application-controller/main.go
#	controller/appcontroller.go

* merge

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

* merge

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

* regenerate docs

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

* regenerate docs

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

* fix tests

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

* read variable from cm

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

* reconciliation variable

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

* manifest

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

Co-authored-by: darshanime <[email protected]>
2022-04-04 10:44:35 -04:00
a94795cdc4 Merge pull request from GHSA-2f5v-8r3f-8pww
* fix: application resource APIs must enforce project restrictions

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

* Fix unit tests

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

Co-authored-by: jannfis <[email protected]>
2022-03-22 10:57:30 -07:00
Alexander MatyushentsevandGitHub 73843bb01c refactor: avoid loading project in frequently executed controller methods (#7853)
Signed-off-by: Alexander Matyushentsev <[email protected]>
2021-12-03 13:18:08 -08:00
Alexander MatyushentsevandGitHub eeb2b0fb79 fix: Operation has completed with phase: Running (#7482)
* fix: Operation has completed with phase: Running

Signed-off-by: Alexander Matyushentsev <[email protected]>
2021-10-19 17:16:31 -07:00
Leonardo Luz AlmeidaandGitHub 0b8ca7d7d9 Expose Application labels in prometheus metric (#7374)
Expose Application labels in prometheus metric (#7374)

Signed-off-by: Leonardo Luz Almeida <[email protected]>
2021-10-08 10:15:51 -07:00
Jonathan WestandGitHub 3303c634be fix: unable to delete an Application if its target cluster is deleted, Argo CD enters infinite app deletion reconciliation loop (#6557)
Signed-off-by: Jonathan West <[email protected]>
2021-06-29 16:32:21 -04:00
Alexander MatyushentsevandGitHub c0caa8a56e refactor: upgrade gitops engine (argoproj/gitops-engine/#286) (#6491)
Signed-off-by: Alexander Matyushentsev <[email protected]>
2021-06-17 12:06:18 -07:00
Kshama JainandGitHub b6e563b8b4 feat: update app informer to avoid stale cache (#6372)
feat: update app informer to avoid stale cache (#6372)

Signed-off-by: kshamajain99 <[email protected]>
2021-06-03 15:40:35 -07:00
Shoubhik BoseandGitHub 043f559fac chore: Organize Application-related defaults/constants in the Application API's package. (#5893)
chore: Organize Application-related defaults/constants in the Application API's package. (#5893)

Signed-off-by: Shoubhik Bose <[email protected]>
2021-05-19 12:43:04 -07:00
Alexander MatyushentsevandGitHub e6a4826232 feat: cache resolved git/helm repository revisions (#6102)
* feat: cache resolved git/helm repository revisions

Signed-off-by: Alexander Matyushentsev <[email protected]>
2021-05-19 12:30:15 -07: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
Victor BoissiereandGitHub d0ac1e59e8 feat(prom): Add prometheus metrics reset support #5287 (#5304)
* feat(prom): Add prometheus metrics reset support

Signed-off-by: Victor Boissiere <[email protected]>
2021-02-09 17:27:08 -08:00
Alexander MatyushentsevandGitHub 8e53175ee1 fix: controller should load application related nodes from target cluster (#5208)
* fix: controller should load application related nodes from target cluster

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

* fix: make sure node capasity and pod requests are in same unit, improve unit formatting

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

* fix: application hosts should include info about resources requested by app neighbors

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

* apply reviewer notes

Signed-off-by: Alexander Matyushentsev <[email protected]>
2021-01-11 12:35:47 -08:00
Alexander MatyushentsevandGitHub e6992acc3d fix: infer app destination server in indexer to prevent concurrent app object modification (#4993)
Signed-off-by: Alexander Matyushentsev <[email protected]>
2020-12-08 08:45:37 -08:00
Jonathan WestandGitHub 5493e27694 fix: Data race between processAppRefreshQueueItem and processAppOperationQueueItem, in appcontroller.go (#4643) (#4644) 2020-10-23 12:05:41 -07:00
Chetan BanavikalmuttandGitHub f270d94e3b fix: Infer destination server when latest version of app is fetched (#4574) 2020-10-15 08:57:18 -07:00
Alexander MatyushentsevandGitHub 014dfd32c6 chore: fix flaky TestFinalizeAppDeletion/ErrorOnBothDestNameAndServer test (#4571) 2020-10-15 13:22:06 +02:00
Chetan BanavikalmuttandGitHub 700f6beb82 fix: Infer cluster URL while deleting app resource (#4559)
An application can be created by specifying only cluster name. Since cluster URL is used for queries, it should inferred. ValidateDestination() method will infer the cluster URL if cluster name is present.

Fixes: #4534
2020-10-14 10:32:41 -07:00
Alexander MatyushentsevandGitHub d351d134e3 feat: Support controller horizontal scaling (#4285) 2020-10-09 13:16:54 -07:00
May ZhangandGitHub 0c0cff0bf2 feat: autosync protection (#4475)
* feat: autosync protection

* feat: autosync protection - update doc

* feat: autosync protection - update doc with version
2020-10-06 21:10:50 -07:00
Alexander MatyushentsevandGitHub b5b1297a31 refactor: Replace status.observedAt with redis pub/sub channels for resource tree updates (#1340) (#4208) 2020-08-31 10:18:12 -07:00
Alexander MatyushentsevandGitHub ecdb03a154 fix: terminated sync operation should not auto-retry (#4056) 2020-08-05 17:58:59 -07:00
Alexander MatyushentsevandGitHub d7162c8b99 fix: infer app destination server URL prior app deletion and during lightweight reconciliation (#4039)
* fix: infer app destination server URL prior app deletion and during lightweight reconciliation

* apply reviewer notes
2020-08-05 17:58:20 -07:00
Alexander MatyushentsevandGitHub 2326678221 refactor: upgrade k8s client to 1.18 (#4046)
* refactor: upgrade k8s client to 1.18

* remove unnecessary go mod replacements
2020-08-05 11:36:40 -07:00
Alexander MatyushentsevandGitHub 2963f91698 feat: support retrying failed sync attempts (#3997)
* feat: support retrying failed sync attempts

* fix: sync results should be cleared in retry sync attempt
2020-07-28 10:14:17 -07:00
Alexander MatyushentsevandGitHub 0aded13d02 fix: support project finalizer to ensure proper deletion (#3967)
* fix: support project finalizer to ensure proper deletion

* apply reviewer notes
2020-07-21 17:25:41 -07:00
Alexander MatyushentsevandGitHub 8b997ff055 fix: application resources info should be stored in persistent order (#3974) 2020-07-21 16:59:00 -07:00
Alexander MatyushentsevandGitHub 11c844e51d feat: implement 'argocd-util apps get-reconcile-results command' (#3888)
* feat: implement 'argocd-util apps get-reconcile-results' command

* implement missing unit tests
2020-07-02 13:47:56 -07:00
Liviu CosteaandGitHub 8b9f1df56d feat: Support cluster name on Application destination. Closes #1548 (#2808)
feat: Support cluster name on Application destination. Closes #1548 (#2808)
2020-06-20 16:12:46 -07:00
Alexander MatyushentsevandGitHub d57d53f49d fix: upgrade gitops engine dependency (#3668) 2020-05-28 18:42:01 -07:00
Josh SorefandGitHub 53500a12b8 chore: Spelling (#3647)
chore: Spelling (#3647)
2020-05-27 10:22:13 -07:00
Alexander MatyushentsevandGitHub a68b34dd33 feat: move engine code to argoproj/gitops-engine repo (#3599) 2020-05-15 14:39:29 -07:00
Alexander MatyushentsevandGitHub 171127a40f feat: Gitops engine (#3066)
* Move utils packages that are required for gitops engine under engine/pkg/utils package.
Following changes were implemented:
* util/health package is split into two parts: resource health assessement & resource health assessement and moved into engine/pkg/utils
* utils packages moved: Closer and Close method of util package moved into engine/pkg/utils/io package
* packages diff, errors, exec, json, kube and tracing moved into engine/pkg/utils

* Move single cluster caching into engine/kube/cache package

* move sync functionality to engine/kube/sync package

* remove dependency on metrics package from engine/pkg/utils/kube/cache

* move annotation label definitions into engine/pkg/utils/kube/sync

* make sure engine/pkg has no dependencies on other argo-cd packages

* allow importing engine as a go module

* implement a high-level interface that might be consumed by flux

* fix deadlock caused by cluster cache event handler

* ClusterCache should return error if requested group kind not found

* remove obsolete tests

* apply reviewer notes
2020-05-15 10:01:18 -07:00
Alexander MatyushentsevandGitHub 7a4bfb92b4 fix: stop trigging auto-syncing if app only need to prune resources and automated prune is disabled (#3253) 2020-03-18 14:19:54 -07:00
Alexander MatyushentsevandGitHub 53365beda7 feat: use --api-versions during helm chart rendering (#3243) 2020-03-17 14:20:36 -07:00
Alexander MatyushentsevandGitHub 6dbff7a69c fix: self-heal should retry syncing an application after specified delay (#2950)
* fix: self-heal should retry syncing an application after specified delay
2020-01-08 14:07:36 -08:00
Alexander MatyushentsevandGitHub 1b98497e2d fix: prevent user from seeing/deleting resources not permitted in project (#2908) (#2910) 2019-12-26 14:08:14 -08:00
jannfisandAlex Collins ac4a73b0ce Only delete resources during app delete cascade if permitted to (fixes #2693) (#2695)
* Only delete resources during app delete if we're permitted to

* Permission checks need to move to a different place

* Add unit tests

* Return map of actually deleted object, so we can test against it

* Better error handling

* Move logic into shouldBeDeleted()
2019-12-09 08:39:20 -08:00
Alexander MatyushentsevandAlex Collins 496e07bb39 Issue #2721 - cache parsed repositories, repo credentials to avoid unnecessary yaml parsing (#2809) 2019-12-04 15:23:18 -08:00
Alexander MatyushentsevandGitHub e05e6ce390 Issue #2339 - Don't update 'status.reconciledAt' unless compared with latest git version (#2581) 2019-10-28 16:44:23 -07:00
Alexander MatyushentsevandGitHub 803571dee8 Issue #2339 - Controller should compare with latest git revision if app has changed (#2543) 2019-10-22 15:23:15 -07:00
Alex CollinsandGitHub 1b8ab98873 Makes cache timeouts configurable (#2412) 2019-10-16 15:46:45 -07:00
Alexander MatyushentsevandGitHub fbaf0aff0d Issue #2453 - Application controller sometimes accidentally removes duplicated/excluded resource warning condition (#2454) 2019-10-10 17:26:53 -07:00
Alexander MatyushentsevandGitHub 26456ee0ad Issue #2339 - Make sure controller uses latest git version if app reconciliation result expired (#2346) 2019-09-23 10:31:59 -07:00
Alex CollinsandGitHub 2e6392a4fb Support --kube-version. (#2276) 2019-09-11 16:37:00 -07:00
Alexander MatyushentsevandGitHub 245f608ce6 Issue #2022 - Support limiting number of concurrent kubectl fork/execs (#2264) 2019-09-10 09:56:48 -07:00