Commit Graph
455 Commits
Author SHA1 Message Date
May ZhangandGitHub c62b01868d fix: app create with -f should not ignore other options (#4322) 2020-09-14 15:29:45 -07:00
Sayak MukhopadhyayandGitHub 34b045f4d8 fix: Added cluster authentication to AKS clusters (#4265) 2020-09-07 19:53:33 -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
Darshan ChaudharyandGitHub 3175c4b048 feat: allow diff against a revision (#4205)
Signed-off-by: darshanime <[email protected]>
2020-09-01 10:30:37 -07:00
Alexander MatyushentsevandGitHub ca582b36e7 feat: support gzip compression in api server (#4218) 2020-09-01 10:08:08 -07:00
Maxime BrunetandGitHub a1101662c0 feat: Add Jsonnet version to version endpoint (#4207) 2020-08-31 10:29:32 +02:00
Maxime BrunetandGitHub 3f8826061b fix(cli): Fix local diff/sync of apps using cluster name (#4201)
This fixes the cluster query when the application uses cluster name as destination:

```shell
$ argocd app diff guestbook --local=guestbook/
FATA[0010] rpc error: code = Internal desc = runtime error: invalid memory address or nil pointer dereference
```
2020-08-29 09:56:49 +02:00
Chetan BanavikalmuttandGitHub 00288d6778 feat: Flag to add kustomize common labels (#4131) 2020-08-28 12:07:19 -07:00
Michael BarrientosandGitHub 2fa9b286fa fix: support for PKCE for cli login (#2932) (#4067) 2020-08-26 16:02:39 -07:00
JohanandGitHub ddc7b4ba41 feat: Add configurable Helm version (#4111)
This commit adds support for configurable Helm version either via
declarative syntax or via argocd cli.

New helm option 'Version' added to the ApplicationSourceHelm
struct which can be either 'v2' or 'v3'.

Argocd app create accepts '--helm-version' that also looks for the
same Helm versions as above.
2020-08-25 12:36:27 -07:00
Alexander MatyushentsevandGitHub fe1068225d refactor: upgrade K8S client to v0.18.8 (#4149) 2020-08-24 16:46:38 -07:00
Alexander MatyushentsevandGitHub ced43af982 fix: add partial sync with namespace example to 'argcocd app sync' command (#4074) 2020-08-11 10:21:11 -07:00
Alexander MatyushentsevandGitHub d9eaa18a15 fix: 'argocd app sync' should not wait for app refresh if '--dry-run' flag is set (#4069) 2020-08-10 15:02:16 -07:00
Alexander MatyushentsevandGitHub 7af6a10101 fix: make sure allow-cluster-resource/deny-cluster-resource are consistent with allow-namespace-resource/deny-namespace-resource commands (#4064) 2020-08-06 15:28:43 -07:00
Alexander MatyushentsevandGitHub 152f03dfd3 fix: optional 'name' flag of add-orphaned-ignore/remove-orphaned-ignore command should be named, not positional (#4062) 2020-08-06 15:28:22 -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
Alexander MatyushentsevandGitHub 68220a10cc fix: kustomize-version flag is not working on 'argocd app set' command (#4040) 2020-08-03 21:46:03 -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 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 40c53ba42e feat: Allow custom cluster names (#3985)
* Include sub and and iat in PermissionDenied message

* Run test-local

* Fix typo

* Fix lint error

* iat fromat changing

* Adding MapClaims convertion

* Fix lint issue

* Fix golang lint

* Fix blank space

* Fix missing field

* Adding Orphaned exception list

* Fixed lint error

* Rebased on master

* Adding group kind label

* golangci-lint run

* Addressed comments

* Fixed lint errors

* Method rename

* orphaned ignore list cli support

* Orphaned resources cli support

* Display orphaned resource cli

* Added tests

* Create argocd app resources command

* Addressed comments

* fix a lint error
2020-07-24 13:23:26 -07:00
Alexander MatyushentsevandGitHub 5877f01079 fix: argocd-util diff-reconcile-results should print app reconcile results sorted by app name (#3972) 2020-07-21 12:00:49 -07:00
rachelwang20andGitHub 2c7bfa0517 feat: Create argocd app resources CLI with various filters. (#3946)
* Include sub and and iat in PermissionDenied message

* Run test-local

* Fix typo

* Fix lint error

* iat fromat changing

* Adding MapClaims convertion

* Fix lint issue

* Fix golang lint

* Fix blank space

* Fix missing field

* Adding Orphaned exception list

* Fixed lint error

* Rebased on master

* Adding group kind label

* golangci-lint run

* Addressed comments

* Fixed lint errors

* Method rename

* orphaned ignore list cli support

* Orphaned resources cli support

* Display orphaned resource cli

* Added tests

* Create argocd app resources command

* Addressed comments
2020-07-20 13:29:25 -07:00
Alexander MatyushentsevandGitHub 76f2ac9dd3 refactor: upgrade gitops engine (#3962) 2020-07-20 10:11:17 -07:00
rachelwang20andGitHub a60ee5c69c feat: Orphaned ignore list cli support (#3922)
* Include sub and and iat in PermissionDenied message

* Run test-local

* Fix typo

* Fix lint error

* iat fromat changing

* Adding MapClaims convertion

* Fix lint issue

* Fix golang lint

* Fix blank space

* Fix missing field

* Adding Orphaned exception list

* Fixed lint error

* Rebased on master

* Adding group kind label

* golangci-lint run

* Addressed comments

* Fixed lint errors

* Method rename

* orphaned ignore list cli support
2020-07-14 14:53:56 -07:00
Matthias RieglerandGitHub 9bb6d65712 Feat: (Jsonnet) Add support to include library paths (#3825)
* feat: added Libs field to ApplicationSourceJsonnet

Signed-off-by: Matthias Riegler <[email protected]>

* feat: codegen

Signed-off-by: Matthias Riegler <[email protected]>

* feat: implemented jsonnet jpath arguments

- Implement the `-J` command line flag for jsonnet
- adapt test to include a nested library for testing the VM
  functionality

Signed-off-by: Matthias Riegler <[email protected]>

* feat: jsonnet import path relative to the repoRoot

- adapted testCase to make use of a jpath
- join repoRoot and provided jpath attributes

Signed-off-by: Matthias Riegler <[email protected]>

* fix: added checking for out-of-repoRoot references

Signed-off-by: Matthias Riegler <[email protected]>

* feat: Added CLI option for passing jsonnet libs

Signed-off-by: Matthias Riegler <[email protected]>

* feat: Updated jsonnet docs

Signed-off-by: Matthias Riegler <[email protected]>

* fix: renamed function

Signed-off-by: Matthias Riegler <[email protected]>

* feat: Expose --local-repo-root flag

Allows passing a "virtal" git repository root when using the local sync
mode with --local.
Provides backwardscompatible with the previous default value ("/")

Signed-off-by: Matthias Riegler <[email protected]>

* fix: added missing command

Signed-off-by: Matthias Riegler <[email protected]>

* Remove obsolete line out of docs

Signed-off-by: Matthias Riegler <[email protected]>
2020-07-13 23:18:21 +02:00
Darshan ChaudharyandGitHub 5761ed4c14 fix: don't refresh if dry run (#3891)
* fix: don't refresh if dry run

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

* fix: add e2e test for sync with dry-run

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

* fix: refresh only if not dryRun for sync command

Signed-off-by: darshanime <[email protected]>
2020-07-08 09:43:39 -07:00
Darshan ChaudharyandGitHub 72e8b7b962 feat: ignore status globally (#3754)
feat: ignore status globally (#3754)
2020-07-02 23:28:36 -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 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
Darshan ChaudharyandGitHub 32127fe751 feat: add alias for sync policy automated (#3788)
Signed-off-by: darshanime <[email protected]>
2020-06-17 13:58:21 +02:00
wdullaerandGitHub ebf5d3d114 feat: Add support for TLS client authentication in the CLI (#3779)
This commit adds support for TLS client authentication in the CLI.
It adds the necessary fields to the config and CLI parameters, modeled
on the existing server-crt functionality.

It also fixes 2 bugs in the grpcproxy:
1. The grpcproxy would ignore the server-crt when making a call to the
upstream server.
2. The grpcproxy would falsely assume that the HTTP status code returned
by the upstream server is always 200. It would then try to parse the
body as if it was a grpc response. At best this led to weird errors
being shown, at worst I have seen it cause the runtime to run out of
memory.
2020-06-16 17:03:03 +02: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
May ZhangandGitHub 468bdad8c7 fix: support partial sync with namespace. (#3705)
* support partial sync with namespace.

* corrected test folder name

* Trying to fix lint error

* 1. in test, delete ns after test
2. in test, created new methods for ResourceSyncStatusWithNamespaceIs and ResourceHealthWithNamespaceIs.

* reformat imports

* simplify code

* remove timeout
2020-06-08 15:59:59 -07:00
Isaac GaskinandGitHub 697ee201c5 fix: correcting arg positions for Sprintf example message (#3692) 2020-06-02 09:29:36 +02:00
jannfisandGitHub eec65d7bea chore: Fix complaints of golang-ci lint v1.26.0 (#3673) 2020-05-30 18:54:14 -07:00
AGlobermanandGitHub c2d0a02f97 fix: Read cert data from kubeconfig during cluster addition and use if present (#3655) (#3667)
* Read cert data from kubeconfig and use if present

* gofmt test updates
2020-05-29 11:33:56 -07:00
Henno SchooljanandGitHub b80e6ec131 feat: CLI: Allow setting Helm values literal (#3601) (#3646)
* feat: CLI: Allow setting Helm values literal (#3601)

While you could already set values files using the `--values` flag with external data using the CLI with `argocd app create` and `argocd app set`, this was not yet possible for managing the literal `.spec.source.helm.values` value in an Application without resorting to a complicated `argocd app patch` escaped parameter or by generating the entire application YAML manifest by yourself.

Therefore, this PR adds a `--values-literal-file` flag to the `argocd app create` and `argocd app set` commands, which accepts a local file name or URL to a values file, which will be read and included as a multiline string in the application manifest. This is different from the `--helm-set-file` flag which expects the file in the chart itself.

The `argocd app unset` command is expanded with a `--values-literal` flag, so we can also unset this field again.

I hope I chose nice enough names for the flags, I wanted to make clear it expects a file name, but also distinguish it enough from the existing `--values` flag which actually points to values files.

Because the current `setHelmOpt()` functionality would not work for unsetting things to an empty value and it was difficult to do these changes independently, this PR also contains the fix for issue #3644. A separate PR has still been created for that one because I think it should end up as a separate issue in the release notes.

* feat: CLI: Allow setting Helm values literal, add tests
2020-05-29 09:00:28 -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 6c659e4ffb fix: sort output of 'argocd-util resource-overrides action list' command (#3649) 2020-05-26 10:49:28 -07:00
Alexander MatyushentsevandGitHub bef806662b feat: argocd-util settings resource-overrides list-actions (#3616) 2020-05-19 14:46:46 -07:00
Shuhei KitagawaandGitHub 57f7b5d361 fix: Allow CLI version command to succeed without server connection (#3049) (#3550) 2020-05-19 14:21:34 +02:00
May ZhangandGitHub 7ced9dc296 feat: adding failure retry (#3548)
* Initial Try of failure retry

* Get failureRetryCount and failureRetryPeriodSecond from command line args.

* Get failureRetryCount and failureRetryPeriodSecond from command line args.

* Get failureRetryCount and failureRetryPeriodSecond from command line args.

* Get failureRetryCount and failureRetryPeriodSecond from command line args.

* Update logic to find out if we should retry.

* 1. add retry wrapper to only argo client.
2. change to env variables instead of command line arguments.

* keep imports grouped

* resolve merge conflict
2020-05-18 09:51:03 -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