Commit graph

95 commits

Author SHA1 Message Date
Chetan Banavikalmutt
9476ab5e18
feat: add first class support to access repositories using proxy (#5581) (#6286)
* feat: add first class support to access repositories using proxy

Currently, users need to set the proxy URLs as env variables in the repo server. This is not user-friendly and also error-prone. This PR adds support to maintain proxy URLs along with repository configs in the argocd-cm. Argo CD uses this proxy to access your repository. In case the custom proxy is absent, it defaults to reading the proxy from the env variables.

Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com>

* set both http & https proxy variables

Signed-off-by: Chetan Banavikalmutt <chetanrns1997@gmail.com>
2021-06-16 14:45:10 +02:00
blakebarnett
ae5388dd79
fix: replace colons in addition to slashes in app tmp directory (#6290) (#6293)
closes https://github.com/argoproj/argo-cd/issues/6290

Signed-off-by: Blake Barnett <blakeb@me.com>
2021-05-24 13:04:29 -07:00
Alexander Matyushentsev
9b32e01104
feat: cache resolved git/helm repository revisions (#6102)
* feat: cache resolved git/helm repository revisions

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-05-19 12:30:15 -07:00
jannfis
434af15d5b
fix: Enable kex algo diffie-hellman-group-exchange-sha256 for go-git ssh (#6253)
* fix: Add support for diffie-hellman-group-exchange-sha256 for go-git ssh

Signed-off-by: jannfis <jann@mistrust.net>

* Update Procfile

Signed-off-by: jannfis <jann@mistrust.net>
2021-05-18 13:25:23 +02:00
Shoubhik Bose
6aee524e0a
chore: compile-time validation of adherence to interface contract (#5850)
* fix: compile time validation of interface contract

Signed-off-by: Shoubhik Bose <shbose@redhat.com>

* fix: application specific parameter override is not reflected in application parameters tab (#5845)

Signed-off-by: May Zhang <may_zhang@intuit.com>
Signed-off-by: Shoubhik Bose <shbose@redhat.com>

* chore: compile time resolution

Signed-off-by: Shoubhik Bose <shbose@redhat.com>

* chore: adherance to contract

Signed-off-by: Shoubhik Bose <shbose@redhat.com>

* Revert "fix: application specific parameter override is not reflected in application parameters tab (#5845)"

This reverts commit 43c8012062.

Signed-off-by: Shoubhik Bose <shbose@redhat.com>

Co-authored-by: May Zhang <may_zhang@intuit.com>
2021-04-15 12:45:57 -07:00
Mitsuo Heijo
ed5c5b639a
chore: Update go-git to v5 (#5520)
Signed-off-by: Mitsuo Heijo <mitsuo.heijo@gmail.com>
2021-04-04 17:18:54 -07:00
jannfis
ae49b45249
chore: Upgrade Go module to v2 (#5931)
* chore: Upgrade Go module to v2

Signed-off-by: jannfis <jann@mistrust.net>

* Restore import order

Signed-off-by: jannfis <jann@mistrust.net>

* fix knowntypes_normalizer codegen error

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

* fix codegen

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

* fix Procfile

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>

Co-authored-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-04-01 20:44:18 +02:00
Slava Markeyev
13b9b92c99
feat: GitHub organization app for git cloning (#4348) (#5355)
* Git GitHub App auth

Signed-off-by: Slava Markeyev <slavamarkeyev@gmail.com>
2021-02-19 14:24:32 -08:00
Alexander Matyushentsev
d516f4754f
fix: fix fetching commit SHAs (#5312) (#5320)
Signed-off-by: Alexander Matyushentsev <Alexander_Matyushentsev@intuit.com>
2021-01-26 12:59:51 -08:00
Alexander Matyushentsev
d8b545d107
fix: improve fetching commit SHAs (#5312)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-01-25 23:13:27 -08:00
Tom Wieczorek
a12f805bb2
fix: locale-independent gpg output parsing (#5269)
Explicitly specify the "C" language during the invocation of the gpg
binary. That way, parsing its output is more robust on non-english
systems.

Signed-off-by: Tom Wieczorek <t.wieczorek@yieldlab.de>
2021-01-18 21:04:06 +01:00
Yujun Zhang
ad1dd825c6
feat: support fetch refs (#4893)
Signed-off-by: Yujun Zhang <yujunz@nvidia.com>
2021-01-04 10:19:00 -08:00
Tim Etchells
86031504af
feat: Add autocomplete for repo Revisions (#4645) (#4713)
* feat: Add autocomplete for repo Revisions

- Introduces api/v1/repositories/{repo}/refs which returns branches and tags
- Add new RevisionFormField component to Create and Edit Application pages

Signed-off-by: Tim Etchells <tetchell@redhat.com>
2020-11-01 19:25:37 -08:00
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
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
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
jannfis
3df4850418
fix: Disable keep-alive for HTTPS connection to Git (#3531) 2020-05-01 10:56:25 -07:00
jannfis
9f8505205f
fix: Ensure SSH private key is written out with a final newline character (#2890) (#3064)
* Ensure SSH private key is written out with a final newline character

* Retrigger stuck CI
2020-01-31 11:02:43 -08:00
jannfis
9e81c38c13
fix: Handle SSH URLs in 'git@server:org/repo' notation correctly (#3062)
* Handle invalid repo URLs better

* Safeguard Git repository root at client creation
2020-01-31 01:14:22 -08:00
Alex Collins
cb4898acb5
Adds tracing to key external invocations. (#2811) 2019-12-05 13:35:20 -08:00
jannfis
0fab3707cc Allow '@'-character in SSH usernames when connecting a repository (#2612) 2019-11-01 11:03:28 -07:00
Adam Johnson
bbfb96cb01 add git submodule support (#2495) 2019-10-21 15:17:07 -07:00
Alex Collins
87cb4987c9
Work-around golang cilint error (#2499) 2019-10-15 14:36:33 -07:00
Alexander Matyushentsev
96764c4d49
Use configured certificate to access helm repository (#2385) 2019-09-30 19:20:27 -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
Alex Collins
bc226dcd6f
Re-enable caching when listing apps. (#2295) 2019-09-13 16:50:53 -07:00
Alex Collins
c0084ebfe8
More helm (#2274) 2019-09-11 14:59:24 -07:00
Alexander Matyushentsev
010dd02ba8
Issue #2245 - Intermittent "git ls-remote" request failures should not fail app reconciliation (#2281) 2019-09-10 22:03:21 -07:00
Alex Collins
4e9772e19b
Adds support for Helm 1st-class. Closes #1145 (#1865) 2019-09-06 15:37:25 -07:00
Mitz Amano
e322750265 Fix degraded proxy support for http(s) git repository (#2243) (#2249) 2019-09-05 10:42:38 -07:00
Alex Collins
75cc094b88
codegen (#2244) 2019-09-04 10:46:14 -07:00
Alex Collins
fc934fd4d7
Improves BeforeHookCreation. Closes #2141 (#2142) 2019-08-22 09:39:15 -07:00
Alexander Matyushentsev
cdeff93e3a
Temporary disable Git LFS test to unblock release (#2172) 2019-08-19 16:28:05 -07:00
jannfis
de4fbcdf5b Fix and enhance end-to-end testing for SSH repositories (#2101)
* Fix and enhance end-to-end testing for SSH repositories
2019-08-07 10:53:00 -07:00
jannfis
5953080c96 Add support for connecting repositories using TLS client certs (fixes #1945) (#1960) 2019-07-24 17:25:27 -07:00
Alex Collins
c11c2a617f
Only run Git LFS tests on CI. (#1975) 2019-07-22 16:51:29 -07:00
jannfis
8f3a6047b2 Add support for Git LFS enabled repositories (fixes #1853) (#1941)
* Add support for LFS enabled repositories
2019-07-18 12:49:49 -07:00
Alexander Matyushentsev
d3c850b8e7
Issues #1513 - Make sure insecure flag works for remote Kustomize bases (#1934)
* Make sure insecure flag works for remote Kustomize bases
2019-07-12 17:17:23 -07:00
jannfis
9cf744f435 Simplify server certificate and known hosts management (#1807) 2019-07-11 16:00:47 -07:00
Alex Collins
4296a87e6b
Enables unparam linter and fixes linting issues (#1872) 2019-07-03 14:17:58 -07:00
Alex Collins
92d3173077
Attempt to fix flaky tests (#1849) 2019-07-02 09:23:50 -07:00
Alex Collins
f0d3a042a3
Adds a timeout to all external commands. Closes #1821 (#1823) 2019-06-28 10:44:01 -07:00
Alex Collins
f8a4d662f2
Adds more commit data. Closes #1219 (#1762) 2019-06-21 15:51:48 -07:00
Alex Collins
fbf2e9e128
Adds support for SSH keys with Kustomize remote bases WIP (#1733) 2019-06-14 09:34:27 -07:00
Alex Collins
3256e6c29e
Forward git credentials to config management plugins. Closes #1628 (#1716) 2019-06-07 18:28:38 -07:00
Alexander Matyushentsev
20810e98f2
Issue #1596 - SSH URLs support is partially broken (#1597) 2019-05-09 08:53:11 -07:00
Paul Brit
d06303c432 Fix hardcoded 'git' user in util/git.NewClient (#1556)
Closes #1555
2019-05-02 10:01:20 -07:00
Jesse Suen
5210c678b9
Git cloning via SSH was not verifying host public key (#1276) 2019-03-15 14:29:10 -07:00