Commit Graph
455 Commits
Author SHA1 Message Date
Alexander MatyushentsevandGitHub 4955121494 fix: prevent 'argocd app sync' hangs if sync is completed too quickly (#4373) 2020-09-17 16:21:25 -07:00
Alex CollinsandGitHub 626e680073 chore: Upgrade to pkg v0.2.0 (#4356) 2020-09-17 14:05:27 -07:00
Alexander MatyushentsevandGitHub a27b18c4e0 fix: argocd app wait/sync might stuck (#4350) 2020-09-16 19:03:48 -07:00
Jonathan WestandGitHub 07c47e82da fix: Log output stops if message is too long (#3258) (#4334) 2020-09-15 14:10:52 -07:00
Gagan HegdeandGitHub 7a89a4c616 Add status badge for project #4001 (#4301)
* The status badge for the project has been added : //Sample url: http://localhost:8080/api/badge?project=default, creates a badge with the health and sync status
2020-09-15 09:55:32 -07:00
Alexander MatyushentsevandGitHub 2f57f77774 fix: fix possible deadlock in /v1/api/stream/applications and /v1/api/application APIs (#4315) 2020-09-11 20:39:58 -07:00
Alexander MatyushentsevandGitHub 595d67216d fix: WatchResourceTree does not enforce RBAC (#4311) 2020-09-11 11:14:08 -07:00
Alexander MatyushentsevandGitHub 76ea28ae10 fix: app refresh API should use app resource version (#4303) 2020-09-11 10:26:45 -07:00
Alexander MatyushentsevandGitHub b78762fdf0 fix: use informer instead of k8s watch to ensure app is refreshed (#4290) 2020-09-09 13:08:18 -07:00
dhermanandGitHub 046719f076 perf: upgrade redis deps to enable compression (#4259)
Newer versions of the redis go libraries include built-in support for
compression of values going to and from redis.  Since the controller
is extremely chatty and makes heavy use of redis for caching, this
reduces the amount of bandwidth requires significantly.

This change should be backwards compatible since the redis libraries
detect whether or not compression was used and does not error in the
no compression case.

Fixes #4256
2020-09-04 13:59:59 -07:00
Alexander MatyushentsevandGitHub 85fff667bf fix: application stream API should not return 'ADDED' events if resource version is provided (#4260) 2020-09-03 22:13:49 -07:00
Alexander MatyushentsevandGitHub ecdf82a3aa fix: improve applications list page client side performance (#4244) 2020-09-02 15:37:37 -07:00
Alexander MatyushentsevandGitHub b73ac568b7 fix: api-server unnecessary normalize projects on every start (#4219) 2020-09-01 13:06:11 -07:00
Alexander MatyushentsevandGitHub ca582b36e7 feat: support gzip compression in api server (#4218) 2020-09-01 10:08:08 -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
Maxime BrunetandGitHub a1101662c0 feat: Add Jsonnet version to version endpoint (#4207) 2020-08-31 10:29:32 +02:00
Oleg SucharevichandGitHub b65ec36104 feat: do not include kube-api check in application liveness flow (#4163)
* feat: do not include kube-api liveness check in application liveness flow
2020-08-26 10:33:36 -07:00
Alexander MatyushentsevandGitHub fe7b2c8443 feat: support disabling grpc histogram (#4075) 2020-08-11 13:28:57 -07:00
Alex SteinandGitHub 1031ad4c95 feat: add user-defined css overlay (#3642) (#4065) 2020-08-10 19:13:40 +02:00
rachelwang20andGitHub e4ab874882 feat: Switch to use weighted semaphore (#4049)
* Switch to use weighted semaphore

* Add replica count env

* fixed codegen
2020-08-06 13:29:30 -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
Darshan ChaudharyandGitHub 84a6574ac0 feat: add cluster resource blacklist to projects (#3960)
feat: add cluster resource blacklist to projects (#3960)

Signed-off-by: darshanime <[email protected]>
2020-08-04 08:06:28 -07:00
May ZhangandGitHub f9af56e60c feat: adding validate for app create and app set (#4016)
* feat: adding disable-validation for app create and app set

* feat: adding disable-validation for app create and app set

* feat: change test func name

* feat: added support of app unset and app edit in addition to app create and app set.

* feat: remove extra space.
2020-07-30 13:28:36 -07:00
Alexander MatyushentsevandGitHub 9217757212 fix: handle encoded URL parameter in cluster details page (#4011) 2020-07-28 14:16:49 -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
rachelwang20andGitHub 837f35e374 feat: User can define Orphaned exception avoiding unnecessary warnings (#3900)
* Include sub and and iat in PermissionDenied message

* iat fromat changing

* Adding MapClaims convertion

* Adding Orphaned exception list

* Adding group kind label

* Fixed lint errors

* Method rename
2020-07-09 16:19:47 -07:00
May ZhangandGitHub 281974f0af fix: permission denied due to NormalizeProjs failed to get list of pr… (#3883)
* fix: permission denied due to NormalizeProjs failed to get list of projects

* fix: permission denied due to NormalizeProjs failed to get list of projects

* fix: return error if normalization failed.

* fix: return error if normalization failed.

* fix: return error if normalization failed.

* fix: in GetJWTToken, remove normalize. It causes issue with delete token.

* Moved get project to only when apierr.IsConflict(err)
2020-07-02 15:31:35 -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
Alexander MatyushentsevandGitHub 88dab51be1 fix: application list page consumes too much CPU (#3849)
* fix: application list page consumes too much CPU

* add broadcasterHandler tests
2020-06-29 15:32:18 -07:00
May ZhangandGitHub 03d39650e0 fix: jwtTokens are reset when applying AppProjects (#3791)
* jwtTokens are reset when applying AppProjects

* fix unit tests in server_test.go
checking in generated.pb.go

* fix unit tests in rbackpolicy_test.go

* fix yarnl lint errors

* fix delete token in both spec and status

* add tests

* fixing failed test

* fixing failed test

* retry 3 times during update

* renamed CRD fields.
Updated nomalize method.

* fixed UI

* fixing merge conflicts

* fixing merge conflicts

* removed unused variables in UI
renamed a CRD field
updated combineToken logic using map

* Only update project which needs normalize token.

* Changed logging.

* check for nil

* Fix UI

* added project role get tests

* rename variables

* clean up

* fixing failed tests

* fixing failed tests

* fixing error handling for remove token

* log err when we have retried 3 times

* sort tokens

* sort tokens
2020-06-25 15:11:24 -07:00
jannfisandGitHub f7951cabf7 refactor: Migrate JSON marshaler from gitops-engine to argo-cd (#3839)
* fix: Migrate JSON marshaler from gitops-engine to argo-cd

* Lint
2020-06-24 18:07:49 +02:00
Alexander MatyushentsevandGitHub ca0967a624 feat: Display cluster info on cluster details page (#3793)
* feat: Display cluster info on cluster details page

* Store cluster info in cache instead of secret
2020-06-22 17:51:20 -07:00
Povilas VersockasandGitHub abb10bead0 feat: add grpc histogram metric in server (#3776) 2020-06-22 16:02:31 -07:00
Alexander MatyushentsevandGitHub 09f9e991db fix: application controller should not modify cached applications (#3821) 2020-06-22 11:04:25 -07:00
jannfisandGitHub 52d0c684ab feat: GPG commit signature verification (#2492) (#3242)
* Add initial primitives and tests for GPG related operations

* More tests and test documentation

* Move gpg primitives to own module

* Add initial primitives for running git verify-commit and tests

* Improve and better comment test

* Implement VerifyCommitSignature() primitive for metrics wrapper

* More commentary

* Make reposerver verify gpg signatures when generating manifests

* Make signature validation optional

* Forbid use of local manifests when signature verification is enabled

* Introduce new signatureKeys field in project CRD

* Initial support for only syncing against signed revisions

* Updates to GnuPG primitives and more test cases

* Move signature verification to correct place and add tests

* Add signature verification result to revision metadata and display it in UI

* Add more primitives and move out some stuff to common module

* Add more testdata

* Add key management primitives to ArgoDB

* Move type GnuPGPublicKey to appsv1 package

* Add const ArgoCDGPGKeysConfigMapName

* Handle key operations with appsv1.GnuPGPublicKey

* Add initial API for managing GPG keys

* Remove deprecated code

* Add primitives for adding public keys to configuration

* Change semantics of ValidateGPGKeys to return more key information

* Add key import functionality to public key API

* Fix code quirks reported by linter

* More code quirks fixes

* Fix test

* Add primitives for deleting keys from configuration

* Add delete key operation to API and CLI

* Cosmetics

* Implement logic to sync configuration to keyring in repo-server

* Add IsGPGEnabled() primitive and also update trustdb on ownertrust changes

* Use gpg.IsGPGEnabled() instead of custom test

* Remove all keyring manipulating methods from DB

* Cosmetics/comments

* Require grpc methods from argoproj pkg

* Enable setting config path via ARGOCD_GPG_DATA_PATH

* Allow "no" and any cases in ARGOCD_GPG_ENABLED

* Enable GPG feature on start and start-e2e and set required environment

* Cosmetics/comments

* Cosmetics and commentary

* Update API documentation

* Fix comment

* Only run GPG related operations if GPG is enabled

* Allow setting ARGOCD_GPG_ENABLE from the environment

* Create GPG ConfigMap resource during installation

* Use function instead of constant to get the watcher path

* Re-watch source path in case it gets recreated. Also, error on finish

* Add End-to-End tests for GPG commit verification

* Introduce SignatureKey type for AppProject CRD

* Fix merge error from previous commit

* Adapt test for additional manifest (argocd-gpg-keys-cm.yaml)

* Fix linter issues

* Adapt CircleCI configuration to enable running tests

* Add wrapper scripts for git and gpg

* Sigh.

* Display gpg version in CircleCI

* Install gnupg2 and link it to gpg in CI

* Try to install gnupg2 in CircleCI image

* More CircleCI tweaks

* # This is a combination of 10 commits.
# This is the 1st commit message:

Containerize tests - test cycle

# This is the commit message #2:

adapt working directory

# This is the commit message #3:

Build before running tests (so we might have a cache)

# This is the commit message #4:

Test limiting parallelism

# This is the commit message #5:

Remove unbound variable

# This is the commit message #6:

Decrease parallelism to find out limit

# This is the commit message #7:

Use correct flag

# This is the commit message #8:

Update Docker image

# This is the commit message #9:

Remove build phase and increase parallelism

# This is the commit message #10:

Further increase parallelism

* Dockerize toolchain

* Add new targets to Makefile

* Codegen

* Properly handle permissions for E2E tests

* Remove gnupg2 installation from CircleCI configuration

* Limit parallelism of build

* Fix Yarn lint

* Retrigger CI for possible flaky test

* Codegen

* Remove duplicate target in Makefile

* Pull in pager from dep ensure -v

* Adapt to gitops-engine changes and codegen

* Use new health package for health status constants

* Add GPG methods to ArgoDB mock module

* Fix possible nil pointer dereference

* Fix linter issue in imports

* Introduce RBAC resource type 'gpgkeys' and adapt policies

* Use ARGOCD_GNUPGHOME instead of GNUPGHOME for subsystem configuration

Also remove some deprecated unit tests.

* Also register GPG keys API with gRPC-GW

* Update from codegen

* Update GPG key API

* Add web UI to manage GPG keys

* Lint updates

* Change wording

* Add some plausibility checks for supplied data on key creation

* Update from codegen

* Re-allow binary keys and move check for ASCII armoured to UI

* Make yarn lint happy

* Add editing signature keys for projects in UI

* Add ability to configure signature keys for project in CLI

* Change default value to use for GNUPGHOME

* Do not include data section in default gpg keys CM

* Adapt Docker image for GnuPG feature

* Add required configuration to installation manifests

* Add add-signature-key and remove-signature-key commands to project CLI

* Fix typo

* Add initial user documentation for GnuPG verification

* Fix role name - oops

* Mention required RBAC roles in docs

* Support GPG verification of git annotated tags as well

* Ensure CLI can build succesfully

* Better support verification on tags

* Print key type in upper case

* Update user documentation

* Correctly disable GnuPG verification if ARGOCD_GPG_ENABLE=false

* Clarify that this feature is only available with Git repositories

* codegen

* Move verification code to own function

* Remove deprecated check

* Make things more developer friendly when running locally

* Enable GPG feature by default, and don't require ARGOCD_GNUPGHOME to be set

* Revert changes to manifests to reflect default enable state

* Codegen
2020-06-22 18:21:53 +02: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 ee739ba54f fix: return default scopes if custom scopes are not configured (#3805) 2020-06-18 11:00:44 -07:00
May ZhangandGitHub 06efdc2fba feat: Support additional metadata in Application sync operation (#3747)
* feat: Support additional metadata in Application sync operation

* regenerated generated.pb.go
2020-06-10 15:28:07 -07:00
Darshan ChaudharyandGitHub ccbf9055ca feat: Allow --local with automatic sync for --dry-run (#3675)
* feat: Allow --local with automatic sync for --dry-run

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

* feat: add e2e test for local sync with dry run

Signed-off-by: darshanime <[email protected]>
2020-06-10 14:05:37 +02:00
Alexander MatyushentsevandGitHub 7bb6a47945 fix: avoid panic in badge handler (#3741) 2020-06-09 19:01:25 -07:00
May ZhangandGitHub 525916ab3b fix: Support argocd app diff --local and argocd app sync --local with custom plugins (#3733)
* settingsMgr returns plugins list When login successful or When API server DisableAuth
2020-06-09 14:06:49 -07:00
Alexander MatyushentsevandGitHub eb218667b3 fix: delete api should return 404 error if app does not exist (#3739) 2020-06-09 11:06:34 -07:00
May ZhangandGitHub 518e28be40 feat: get cluster connection status from cluster synced time (#3604)
feat: get cluster connection status from cluster synced time (#3604)
2020-06-04 11:36:26 -07:00
jannfisandGitHub eec65d7bea chore: Fix complaints of golang-ci lint v1.26.0 (#3673) 2020-05-30 18:54:14 -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
Phil GoreandGitHub 87f992c766 fix: apply scopes from argocd-rbac-cm to project jwt group searches (#3508)
* merging changes

* apply scopes from argocd-rbac-cm to projects

* fixing server merge conflict

* passing tests
2020-05-25 09:05:56 +02: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 c492677c59 fix: enable redis retries; add redis request duration metric (#3575) 2020-05-12 14:39:18 -07:00