Commit graph

225 commits

Author SHA1 Message Date
Alexander Matyushentsev
561452ac94
feat: Headless Argo CD (aka GitOps Agent) (#6361)
* feat: add --headless flag to Argo CD CLI command

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

* docs: add headless installation manifests and documentation

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

* Apply reviewer notes

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

* Remove port forwarding logs

Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-07-20 21:51:36 -07:00
jannfis
8030f4202a
chore: Update Golang builder to 1.16.5 (#6653)
* chore: Update Golang builder to 1.16.5

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

* Use variables to refer to Go version in workflows

Signed-off-by: jannfis <jann@mistrust.net>
2021-07-08 12:35:06 +02:00
jannfis
b893eccea0
chore: Update container base image to Ubuntu 21.04 (#6652)
Signed-off-by: jannfis <jann@mistrust.net>
2021-07-07 21:08:21 +02:00
Benjamin Henrion
31be4d8f19
chore: container did not support setting the timezone via an env var like '-e TZ=Europe/Brussels'; Solution: adding tzdata package solve this issue (#6481)
Signed-off-by: Benjamin Henrion <zoobab@gmail.com>
2021-06-23 19:42:41 +02:00
jannfis
4a3c94b20c
chore: Update Golang to v1.16.4 (#6358)
Signed-off-by: jannfis <jann@mistrust.net>
2021-05-28 19:06:06 +02:00
Alexander Matyushentsev
3f32a750a0
chore: use go embed instead of packr (#6262)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-05-18 20:46:17 -07:00
jannfis
66f36ff002
chore: Validate checksums of downloaded files in build chain (#6057)
* chore: Validate checksums of downloaded files in build chain

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

* Fix arm install of kustomize

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

* Add sudo package to Go builder image

Signed-off-by: jannfis <jann@mistrust.net>
2021-04-19 18:46:21 +02:00
Shoubhik Bose
8d066d3007
fix: avoid short names (#5865)
Signed-off-by: Shoubhik Bose <shbose@redhat.com>
2021-03-26 09:38:49 -07:00
William Tam
53fabec845
chore: Separate "online" mode from "production" mode in yarn build (#5830)
* Separate "online" mode from "production" mode in yarn build
Signed-off-by: William Tam <email.wtam@gmail.com>

* Signed-off-by: William Tam <email.wtam@gmail.com>
Fix typo
2021-03-22 13:24:18 +01:00
Alexander Matyushentsev
21b7679ba7
refactor: upgrade golang to v1.16.2 (#5809)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-03-18 13:35:14 -07:00
Alexander Matyushentsev
8562a4ea47
refactor: upgrade golang to v1.16.0 (#5677)
Signed-off-by: Alexander Matyushentsev <AMatyushentsev@gmail.com>
2021-03-04 08:52:27 -08:00
Abhishek Veeramalla
eaf9887d17
fix: Remove kubectl binary from argo image(#5005) (#5101)
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
2021-01-21 09:49:51 -08:00
kshamajain99
7af5837ffa
build consolidated argocd binary (#5247)
Signed-off-by: kshamajain99 <kshamajain99@gmail.com>
2021-01-20 11:28:06 -08:00
jannfis
14b8e3da66
chore: Switch Docker base image to ubuntu:20.10 instead of debian:10-slim (#5185)
Signed-off-by: jannfis <jann@mistrust.net>
2021-01-05 14:16:54 -08:00
jannfis
6cadaa2a5d
chore: Update golang to v1.14.12 (#4832)
Signed-off-by: jannfis <jann@mistrust.net>
2020-11-15 09:33:46 -08:00
Alexander Matyushentsev
8299e99049
refactor: upgrade dependencies and node version (#4461) 2020-09-30 23:02:48 -07:00
Darshan Chaudhary
508e2c5f78
chore: make make cli use virtualized toolchain (#3884)
* chore: make make cli use virtualized toolchain

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

* chore: use cli-local in Dockerfile

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

* chore: use cli-local in Dockerfile

Signed-off-by: darshanime <deathbullet@gmail.com>
2020-07-04 12:58:57 +02: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
9019ae101e
fix: upgrade awscli version (#3774) 2020-06-16 07:12:20 +02:00
jannfis
4032e8efd7
fix: Reap orphaned ("zombie") processes in argocd-repo-server pod (#3611) (#3721)
* fix: Reap orphaned ("zombie") processes in argocd-repo-server pod
2020-06-09 13:58:37 -07:00
Timothy Vandenbrande
9bee00f942
fix: use uid instead of named user in Dockerfile (#3108) 2020-06-06 14:04:19 +02:00
jannfis
a40f3689b3
chore: Add missing asset to Dockerfile (#3678)
* chore: Fix complaints of golang-ci lint v1.26.0

* chore: Fix Dockerfile
2020-05-31 19:28:16 -07:00
Alin Balutoiu
00f99edf1a
feat: Add build support for ARM images (#3554)
Signed-off-by: Alin Balutoiu <alinbalutoiu@gmail.com>
2020-05-31 19:31:29 +02:00
jannfis
c914ea0218
chore: Update Dockerfile to reflect switch to go modules (#3652)
* chore: Update Dockerfile to reflect switch to go modules
2020-05-26 12:42:58 -07:00
Dai Kurosawa
a501cdbb56
chore: Upgrade golang version from v1.14.0 to v1.14.1 (#3304)
* Upgrade golang version from v1.14.0 to v1.14.1

* use argocd-test-tools version v0.2.0
2020-03-31 19:13:51 +02:00
Alexander Matyushentsev
6edd18bb89
feat: support helm3 (#2383) (#3178)
* feat: support helm3 (#2383)

* draft

* Apply reviewer notes
2020-03-04 17:05:44 +01:00
Dai Kurosawa
5a363e9d9f
Update Go version from v1.13.8 to v1.14.0 (#3162) 2020-02-28 08:42:56 -08:00
Dai Kurosawa
64c8ac70fb
Update Go version from v1.13.7 to v1.13.8 (#3129) 2020-02-17 22:42:19 +01:00
Dai Kurosawa
1801212ac7
chore: Upgrade Go version from v1.13.6 to v1.13.7 (#3056) 2020-01-31 22:00:43 +01:00
Joseph Mulloy
3c6715a6f9 fix: Replace aws-iam-authenticator to support IRSA (#3010)
Replace aws-iam-authenticator with aws cli to support EKS cluster auth
via IAM Roles for Service Accounts (IRSA)

See https://aws.amazon.com/blogs/opensource/introducing-fine-grained-iam-roles-service-accounts/
2020-01-24 10:32:33 -08:00
Masayuki Ishii
17d217c2d6 feat: Add argocd cmd for Windows #2121 (#3015)
* fix: Explicitly cast Stdin file descriptors to int

Signed-off-by: Masayuki Ishii <masa213f@gmail.com>

* feat: Add the windows CLI

Signed-off-by: Masayuki Ishii <masa213f@gmail.com>

* fix: Fix warning message

Signed-off-by: Masayuki Ishii <masa213f@gmail.com>
2020-01-24 08:18:00 +01:00
Dai Kurosawa
ad715565a6 Upgrade Go version from v1.12.6 to v1.13.6 (#2994) 2020-01-23 10:11:01 -08:00
Alex Collins
6c93047367
Use the same tools for make image to make dev-tools-image. Closes #2488 (#2511) 2019-10-18 13:21:36 -07:00
jannfis
963300a7c9 Update base image to Debian buster (#2431) 2019-10-08 14:53:51 -07:00
Fred Dubois
01ce567b66 Make argo-cd docker images openshift friendly (#2362)
In openshift clusters, the user id of your container can be arbitrary,
so you need to make the running images compatible with this behavior.

The problematic application for argo-cd was the repo server. When trying
to clone the repos it was getting the error "No user exists for uid
100083000" (100083000 was the random user id being injected by
openshift in my case). This was because the user 100083000 wasn't in the
/etc/passwd file.

The changes in this commit add a uid_entrypoint.sh script that, when the
container starts, modifies the /etc/passwd file to add an entry with the
current UID _only_ if the current UID isn't there.

References:
* Problematic behavior of ssh when user id isn't in the /etc/passwd file:
  https://unix.stackexchange.com/questions/524268/running-git-or-ssh-client-in-docker-as-user-no-user-exists-for-uid
* OpenShift guidelines on how to make your docker image runnable by
  arbitrary user ids:
  https://access.redhat.com/documentation/en-us/openshift_container_platform/3.11/html/creating_images/creating-images-guidelines#use-uid
2019-10-01 12:42:41 -07:00
Alex Collins
b49a0ce7d5
Remove support for Kustomize 1. Closes #1573 (#2077) 2019-08-02 13:13:27 -07:00
Alexander Matyushentsev
588d30268b Upgrade kustomize to v3.1.0 (#2072) 2019-08-01 11:27:08 -07:00
jannfis
c51645be35 Build UI into argocd Docker image (#2052) 2019-07-30 13:07:20 -07:00
Alexander Matyushentsev
6956dcb6dc
Move kustomization files back to kustomize 2.0.3 (#1972)
* Move kustomization files back to kustomize 2.0.3

* Dockerize codegen
2019-07-23 11:24:59 -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
Devon Mizelle
43721515d8 Bump Kustomize v2.1.0 to v3.0.2 (#1948)
* Bump Kustomize v2.1.0 to v3.0.0
2019-07-17 14:39:21 -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
Alexander Matyushentsev
1e502fb5c5
Generate CRD schema using github.com/kubernetes-sigs/controller-tools (#1773) 2019-06-27 14:44:49 -07:00
Alexander Matyushentsev
ff00be9a7c
Explicitly specify user root during argocd image build (#1749) 2019-06-14 15:50:43 -07:00
Alexander Matyushentsev
87ac100e77
Support parameterizing argocd base image (#1741) 2019-06-13 23:20:15 -07:00
Alexander Matyushentsev
57ff5b25e4
Issue #1012 - kubectl v1.13 fails to convert extensions/NetworkPolicy (#1360) 2019-04-04 08:30:35 -07:00
Jesse Suen
5210c678b9
Git cloning via SSH was not verifying host public key (#1276) 2019-03-15 14:29:10 -07:00
Jesse Suen
1d3ec93ec7
Support kustomize apps with remote bases in private repos in the same host (#1264) 2019-03-14 14:25:05 -07:00
Alex Collins
5e7b48c9a2
Migrates from gometalinter to golangci-lint. Closes #1225 (#1226) 2019-03-08 16:22:04 -08:00
Jesse Suen
0f248e9149
Replace git fetch implementation with git CLI (from go-git) (#1244) 2019-03-08 14:08:02 -08:00
Jesse Suen
6654601bb1
Switch to kustomize v2.0.2 (from v2.0.1) (#1178) 2019-02-26 09:34:01 -08:00
Jesse Suen
33953954a2
Switch to kustomize2 as default. Add argocd-ha install manifests (#1169) 2019-02-25 15:25:57 -08:00
Alex Collins
1c1d9c95ef
Adds support for Kustomize 2.0.1. Fixes #1085 (#1138) 2019-02-19 10:31:52 -08:00
Jesse Suen
297a91fde4
Refactor packr box usage into new assets library. Add faster DEV_IMAGE build (#1073) 2019-02-01 13:12:52 -08:00
Jesse Suen
8875ebc9f8
Enable docker buildkit in ci builds (#1060) 2019-01-24 15:34:45 -08:00
Jesse Suen
2988cebaa9 Downgrade kubectl to v1.12 to regain kubectl convert functionality (#1023) 2019-01-16 11:44:33 -08:00
Jesse Suen
2745bab613
Update golang to v1.11.4 (#977) 2019-01-04 10:37:50 -08:00
Jesse Suen
053875f47f
Update versions for kubectl (v1.13.1), helm (v2.12.1), ksonnet (v0.13.1) (#973) 2019-01-03 15:16:08 -08:00
lbrictson
6389fc5c6d Update aws-iam-authenticator to new version, fix url (#948) 2018-12-19 16:29:48 -08:00
Tom Wieczorek
eb2a716661 Update to kustomize 1.0.11 (#889) 2018-12-06 16:00:29 -08:00
Alexander Matyushentsev
d987416c9b
Issue #747 - Declaratively add helm repositories (#864) 2018-12-03 15:15:37 -08:00
Jesse Suen
cde040e10f
Serve CLI binaries directly from API server (#837) 2018-11-27 13:39:06 -08:00
Jesse Suen
361931f104 Move to single master image for all argocd services (issue #762) 2018-11-15 18:11:10 -08:00
Alessandro Marrella
92d0df1412 Updated helm (#749) 2018-11-07 11:29:01 -08:00
Taylor D. Edmiston
34bb60f064 Make Argo CD naming consistent (#694)
* Make Argo CD naming consistent

* Change ArgoCD to Argo CD on new lines
2018-11-05 11:29:01 -08:00
Tom Wieczorek
7e390e76d0 Update to kustomize 1.0.10 (#728) (#728)
See also kubernetes-sigs/kustomize#514
2018-10-26 17:33:38 -07:00
Tom Wieczorek
ce7d02c94a Update to kustomize 1.0.9 (#722) 2018-10-25 11:48:34 -07:00
Andrew Merenbach
1eaa813f28
Use ksonnet CLI instead of ksonnet libs (#590) (#626) 2018-09-27 11:52:08 -07:00
Stephen Haynes
ab02e10791 update to kustomize 1.0.8 (#644) 2018-09-26 14:24:59 -07:00
Jesse Suen
505866a4c6 Support helm charts with dependencies and namespace sensitivity (issue #582) 2018-09-17 11:29:44 -07:00
Alexander Matyushentsev
57a3123a55
Issue #482 - Support IAM Authentication for managing external K8s clusters (#588) 2018-09-13 00:09:23 -07:00
Jesse Suen
47ee26a77a Downgrade ksonnet from v0.12.0 to v0.11.0 due to quote unescape regression 2018-09-12 23:41:42 -07:00
Jesse Suen
e3adb30ca7
Run all containers as an unprivileged user (resolves #528) (#546) 2018-09-04 13:47:00 -07:00
Jesse Suen
b54a5a3e25
Refactor Makefile/build to use a single Dockerfile. Update kustomize to v1.0.7 (#538) 2018-08-28 16:00:14 -07:00