Commit graph

219 commits

Author SHA1 Message Date
Alexander Matyushentsev
ba71ad934c
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
May Zhang
613af547c3
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 Matyushentsev
a6399e59e1
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 Matyushentsev
d09d25cc2a
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 Matyushentsev
20eb8bbc4d
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
Alexander Matyushentsev
fc2e3f82a2
fix: application controller should not modify cached applications (#3821) 2020-06-22 11:04:25 -07:00
jannfis
be718e2b61
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 Costea
7ccb16bf7a
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
May Zhang
d040d9bf04
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 Chaudhary
e102ec11ac
feat: Allow --local with automatic sync for --dry-run (#3675)
* feat: Allow --local with automatic sync for --dry-run

Signed-off-by: darshanime <deathbullet@gmail.com>

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

Signed-off-by: darshanime <deathbullet@gmail.com>
2020-06-10 14:05:37 +02:00
Alexander Matyushentsev
94e6efc0fc
fix: delete api should return 404 error if app does not exist (#3739) 2020-06-09 11:06:34 -07:00
jannfis
bc83719037
chore: Fix complaints of golang-ci lint v1.26.0 (#3673) 2020-05-30 18:54:14 -07:00
Alexander Matyushentsev
ee64a4d9ca
fix: upgrade gitops engine dependency (#3668) 2020-05-28 18:42:01 -07:00
Josh Soref
a724574ede
chore: Spelling (#3647)
chore: Spelling (#3647)
2020-05-27 10:22:13 -07:00
Alexander Matyushentsev
fe8d47e0ea
feat: move engine code to argoproj/gitops-engine repo (#3599) 2020-05-15 14:39:29 -07:00
Alexander Matyushentsev
192ee93fc4
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 Matyushentsev
81d5b13083
fix: api incorrectly verifies if auto-sync is enabled and reject sync local request (#3506) 2020-04-29 00:09:27 -07:00
Alexander Matyushentsev
14188656c8
fix: GetApplicationSyncWindows API should not validate project permissions (#3456) 2020-04-21 11:26:17 -07:00
Alexander Matyushentsev
05f5a79923
feat: support separate Kustomize version per application (#3414) 2020-04-15 12:04:31 -07:00
Alexander Matyushentsev
6411958be5
fix: pass APIVersions value to manifest generation request during app validation and during app manifests loading (#3312)
* fix: pass APIVersions value to manifest generation request during app validation and during app manifests loading
2020-03-30 13:36:46 -07:00
Alexander Matyushentsev
d500b27f1d
feat: store the name operation initator in the app CRD (#3252) 2020-03-18 13:32:39 -07:00
Alexander Matyushentsev
e51aab8d1f
fix: applications.List API should sort apps by name (#3248) 2020-03-17 17:10:54 -07:00
Jesse Suen
476b09cbbf
feat: improve api-server and controller performance (#3222)
* group read comparison settings during app reconciliation
* Reduce lock contention in clusterInfo::ensureSynced(). Add getRepoObj stats
* Remove additional source of lock contention
* Exclude the coordination.k8s.io/Lease resource

Co-authored-by: Alexander Matyushentsev <amatyushentsev@gmail.com>
2020-03-16 11:51:59 -07:00
Alex Collins
ebc048167c
feat: Supports the validate-false option at an app level. Closes #1063 (#2542) 2020-02-10 14:09:25 -08:00
Alexander Matyushentsev
916d4aed57
fix: reduct secret values of manifests stored in git (#3088) 2020-02-07 15:40:58 -08:00
Alexander Matyushentsev
06bc4064c1
fix: labels not being deleted via UI (#3081) 2020-02-04 13:49:21 -08:00
Dai Kurosawa
c8d74d1a7f
Fix bug where the same pointer is used. (#3059) 2020-01-30 09:47:18 -08:00
Alexander Matyushentsev
574446b3c0
fix: app create --upsert should take finalizers into account (#2963) 2020-01-10 12:06:04 -08:00
Alexander Matyushentsev
07e35b1839
fix: application upsert should retry on concurrent modification error (#2959) 2020-01-09 16:00:35 -08:00
Alexander Matyushentsev
6a0bb821cc
fix: stop using jsondiffpatch on clientside to render resource difference (#2869)
* fix: stop using jsondiffpatch on clientside to render resource difference (#2863)

* Apply reviewer notes
2019-12-26 14:42:56 -08:00
Alexander Matyushentsev
f56e084bb9
Issue #2683 - Make sure app update don't fail due to concurrent modification (#2852) 2019-12-10 13:09:39 -08:00
Alex Collins
aeb48b0a69
Fix bug where manifests are not cached. Fixes #2770 (#2771) 2019-12-02 12:08:06 -08:00
Alex Collins
a6da0ca65b
Ensures that Helm charts are correctly resolved before sync. Fixes #2758 (#2760) 2019-11-28 12:55:22 -08:00
Simon Behar
0675ff2fb2
Done (#2529) 2019-10-23 17:19:59 -07:00
Alex Collins
572d376dab
Adds the ability to work with groups of apps using labels (#2463) 2019-10-17 14:48:08 -07:00
Alex Collins
bbdbe364b0
Makes cache timeouts configurable (#2412) 2019-10-16 15:46:45 -07:00
Alex Collins
87cb4987c9
Work-around golang cilint error (#2499) 2019-10-15 14:36:33 -07:00
Alexander Matyushentsev
f75984fbf5
Issue #1944 - Gracefully handle missing cached app state (#2464)
* Issue #1944 - Gracefully handle missing cached app state

* Unit test getCachedAppState method
2019-10-10 15:17:13 -07:00
Alexander Matyushentsev
d925b73bf8
Issue #2448 - Custom resource actions cannot be executed from the UI (#2449) 2019-10-09 10:25:52 -07:00
Adam Johnson
5abe863ea9 Convert maintenance windows to sync windows (#2416)
Convert maintenance windows to sync windows (#2416)
2019-10-08 15:20:19 -07:00
Alexander Matyushentsev
d59a8b5b78
Add application labels to Applications list and Applications details page (#2430)
* Issue #1099 - Add labels filter to application list page

* Issue #1099 - Add labels to application details page
2019-10-08 10:04:30 -07:00
Simon Behar
dd21ab92ad Granular RBAC Support for actions (#2110) 2019-10-03 17:11:42 -07:00
Alexander Matyushentsev
16e645b268
Issue #2316 - support deprecated 'helm.repositories' config (#2405)
* Issue #2316 - support deprecated 'helm.repositories' config

* Address reviewer notes
2019-10-03 12:27:19 -07:00
Adam Johnson
e6e4751326 Add project level maintenance windows for applications (#2380)
* Add maintenance windows for applications, configured at the project level

* move maintenance window check out of autoSync(), fix imports and error checking

* fix ui lint

* add some more tests for maintenance

* patch after pre-commit

* Add more tests for maintenance windows

* Remove Dockerfile as it was added by mistake
2019-10-01 15:23:09 -07:00
Alexander Matyushentsev
0b6c02391f
Refactor Helm client and unit test repo server (#2377) 2019-09-30 15:04:13 -07:00
Alexander Matyushentsev
0f7e9a1d28
Issue #2261 - Refactor Helm first class support (#2364)
* Issue #2261 - Refactor Helm first class support

* Address code review comments

* Remove unused field from GetAppDetails method
2019-09-26 12:05:12 -07:00
Yujun Zhang
06bab51ee2 Fix missing envs when updating application of content management plugin type (#2331)
Close: #2330
2019-09-19 10:21:43 -07:00
Alex Collins
bc226dcd6f
Re-enable caching when listing apps. (#2295) 2019-09-13 16:50:53 -07:00
Alex Collins
62f029af5f
Support --kube-version. (#2276) 2019-09-11 16:37:00 -07:00
Alex Collins
4e9772e19b
Adds support for Helm 1st-class. Closes #1145 (#1865) 2019-09-06 15:37:25 -07:00