Commit graph

57 commits

Author SHA1 Message Date
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
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
Alexander Matyushentsev
8b29b9c8c2
Issue #2212 - Correctly handle trailing shash in configured URL while creating redirect URL (#2214) 2019-08-23 14:06:20 -07:00
Alex Collins
bad2e91039
Helm hooks. Closes #355 (#2069) 2019-08-12 15:34:21 -07:00
jannfis
5953080c96 Add support for connecting repositories using TLS client certs (fixes #1945) (#1960) 2019-07-24 17:25:27 -07:00
jannfis
9cf744f435 Simplify server certificate and known hosts management (#1807) 2019-07-11 16:00:47 -07:00
Alex Collins
00889551e7
Adds Prune=false and IgnoreExtraneous options (#1680) 2019-06-07 08:46:11 -07:00
Alex Collins
243378b035
Sync wave (#1634) 2019-06-04 18:17:41 -07:00
jannfis
64a1ea9e81 Add ability to specify system namespace during cluster add operation (#1661) 2019-06-03 09:50:46 -07:00
jannfis
9f9a076433 Make listener and metrics ports configurable (#1647) 2019-05-28 11:41:02 -07:00
Alexander Matyushentsev
e75a7a5dea
Update min client version and cache version to 1.0.0 (#1517) 2019-04-24 10:15:02 -07:00
Alexander Matyushentsev
15dfa79708
Issue #357 - Expose application nodes networking information (#1333) 2019-03-29 20:59:25 -07:00
Jesse Suen
dab3b688f0
Add golang prometheus metrics to controller and repo-server (#1281) 2019-03-18 11:32:20 -07:00
Jesse Suen
cc7b283f23
Deprecate componentParameterOverrides in favor of source specific config (#1207)
* Deprecate componentParameterOverrides in favor of source specific config
* Support rollback when application source changes
* Removes the legacy spec.source.environment and spec.source.valuesFiles which were deprecated in v0.11
* Fix issue where argocd app create APPNAME --file didn't fail when there were name conflicts
* Fix issue where auto-sync and app deletion would cause infighting
2019-03-04 00:56:36 -08:00
Jesse Suen
eb431308de
Add application sync counters as new prometheus metric. Add API-server metrics (#1156) 2019-02-22 15:20:34 -08:00
Lev Aminov
1770fb250b Switch to correct Redis port (#1143) 2019-02-19 09:23:05 -08:00
Alexander Matyushentsev
cb9eb0a9bb
Issue #937 - Use redis as a shared throwaway cache (#1120) 2019-02-13 15:20:40 -08:00
Michael Goodness
d6c88cd77a Split manifests into components (#1035) 2019-01-31 12:54:46 -08:00
Jesse Suen
3379585847
Increase QPS and Burst used in K8s client configs to 25/50 (#984) 2019-01-07 14:25:07 -08:00
Jesse Suen
04564add01 Make injected application instance label configurable from default (#944)
* Make injected application instance label configurable from default
Stop removing ksonnet.io/component label, unless using legacy label

* Fix applying of resources when namespace is empty
2018-12-23 22:25:04 -08:00
Zvi Cahana
881d052f0d Prefix controller resource names with 'argocd-' (#917)
* Prefix controller resource names with 'argocd-'

* Regenerate installation manifests

* Rename some additional application-controller occurrences

* Rename [cluster]role[binding] resources

* Regenerate installation manifests
2018-12-20 13:16:01 -08:00
Alexander Matyushentsev
c904fa9092
Issue 914 - Allow invalidating application related cache (#931) 2018-12-17 18:23:35 -08:00
Jesse Suen
cbaf8a0bc8 Promote resources field in ComparisonStatus to application.status
Fix pruning/syncing when changing application namespace
Rename DeploymentInfo to RevisionHistory to be consistent with k8s
2018-12-04 10:03:01 -08:00
Jesse Suen
2c8e9fa9ac
Switch to k8s recommended app.kubernetes.io/instance label (#857)
Remove ability to set helm release name
Reorganize Argo CD constants
2018-11-30 23:54:01 -08:00
Jesse Suen
3a9196ce18
gRPC API client and gateway now supply user-agent. Require client min version as v0.11 (#841)
With this change, the gRPC api client and grpc-gateway now supply a user-agent, `argocd-client/X.Y.Z`, with their all requests. This enables us to discern various versions of the CLI as the requestor, and reject requests from incompatible clients. We assume legacy clients as clients that only supply a single user-agent, grpc-go/1.15.0.
2018-11-28 14:06:02 -08:00
Jesse Suen
b439424cef
Use default server addresses. Use an imagePullPolicy of Always for manifests (#796) 2018-11-17 16:00:55 -08:00
Alexander Matyushentsev
275b9e194d
Issue #355 - Treat 'crd-install' hooks as normal k8s resource (#792) 2018-11-16 17:12:21 -08:00
Alexander Matyushentsev
317d2a8aa8
Issue #536 - Declarative setup and configuration of ArgoCD (#745)
* Issue #536 - Declarative setup and configuration of ArgoCD

* Add missing rules to application-controller role

* Fix broken test; update install manifests
2018-11-09 09:58:07 -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
Conor Fennell
2f9891b15b Issue #577 - Add rbac non resource url policy for argocd-manager-role (#578)
* Add rbac non resource url policy for argocd-manager-role
* allow all non resource urls to be added through rbac
2018-09-11 13:23:10 -07:00
Jesse Suen
a7c7523a8c
Support helm charts and yaml directories as an application source (#432)
* Support helm charts and yaml directories as an application source
* Run e2e test in parallel and increase timeout
2018-07-24 16:37:12 -07:00
Jesse Suen
c0367ed595
Add support for hook deletion policies (OnSuccess, OnFailure) (resolves #374) (#412) 2018-07-16 10:15:53 -07:00
Jesse Suen
d633f6b299
Support for PreSync, Sync, PostSync resource hooks (#350)
* Rewrite controller sync logic to support workflow-based sync

* Redesign hook implementation to support generic resources as hooks
2018-07-07 00:54:06 -07:00
Alexander Matyushentsev
81021839d5
Issue #295 - implement app destination permissions validation (#310)
* Issue #295 - implement app destination permissions validation

* Apply reviewer notes. Use project to check application access. Update project access checks

* Use GetProject() instead of project to make sure default value is inferred

* Apply reviewer notes
2018-06-22 10:05:57 -07:00
Jesse Suen
834e22d7b1
Support cluster management using the internal k8s API address https://kubernetes.default.svc (#307) 2018-06-20 16:50:15 -07:00
Jesse Suen
12e7447e9f Implement RBAC support (issue #120) (#263)
* introduce rbac library around casbin
* supports claims enforcement by iteration through user's groups
* supports filtering of resources by level of access
* policy loader and automatic updates from configmap
* support for builtin and userdefined policies
2018-06-05 21:44:13 -07:00
Alexander Matyushentsev
f0be1bd251
Fix bug secret controller which is causing update loop in secret controller (#251) 2018-05-31 16:06:41 -07:00
Alexander Matyushentsev
e785abeb8f
Issue #244 - Cluster/Repository connection status (#248) 2018-05-31 13:44:19 -07:00
Jesse Suen
5a62286127
Cookie token was not parsed properly when mixed with other site cookies 2018-05-31 02:37:15 -07:00
Alexander Matyushentsev
e04d315853
Issue #118 - app delete should be done through controller using finalizers (#206)
* Issue #118 - app delete should be done through controller using finalizers

* Apply reviewer notes: introduce application

* Apply reviewer notes: fix app deletion
2018-05-16 16:30:28 -07:00
Jesse Suen
dc662da3d6
Support OAuth2 login flow from CLI (resolves #172) (#181)
* Support OAuth2 login flow from CLI (resolves #172)
* Refactor SessionManager to handle local and OAuth2 logins.
* argo login will request permanent credentials after OAuth2 flow
* Implement proper OIDC app state nonce. Add explicit `--sso` flag to `argo login`
2018-05-10 15:43:58 -07:00
Jesse Suen
ac938fe8a3
Add GitHub webhook handling to fast-track controller application reprocessing (#160)
* Add GitHub webhook handling to fast-track application controller reprocessing
* Add GitLab and Bitbucket webhook support. Add unit tests.
2018-05-04 17:01:57 -07:00
Jesse Suen
670921df90
SSO Support (#152)
This change implements SSO support.

dex is run as a sidecar to the ArgoCD API server, which fronts dex using a reverse proxy. The end result is that the ArgoCD acts as an OIDC provider serving under /api/dex. The login flow begins at /auth/login, which redirects to the Dex's OAuth2 consent page and ultimately directed to the IdP provider's login page, where they enter their credentials. After logging in, the OAuth2 redirect flows back to the client app, ultimately reaching /auth/callback, where the OIDC token claims are signed, and persisted in the users's cookie.

The dex configuration YAML is formulated during startup (through the argocd-util utility), with the configuration values taken from the argocd-cm configmap and the argocd-secret.

The build process was refactored to build argocd-util statically, so that it could be run inside off-the-shelf dex, which is built from alpine. Also, build speed was improved by expanding the default make targets in the Dockerfile, to avoid rebuilding each binary from scratch

Session management was refactored to use more bare-bones jwt library constructs, so we could reuse code from the user/password flow vs. OAuth2 flow.

* Initial SSO support. Run dex as sidecar. Generate dex config from ArgoCD cm and secret
* Sign and write SSO claims to JWT cookie during SSO login. Refactor session manager
* Build argo-util statically so it can run in dex sidecar. Redirect after SSO login
* Simplify app creation process to not require communication to dex gRPC server
2018-05-02 22:02:26 -07:00
Jesse Suen
173ecd9397 Installer and settings management refactoring:
* Re-arrange utilities into more granular packages
* Simplify config manager interface into just Get() and Save()
* Support installation into different namespace
* Combine all secrets into single secret
* Use a hard-wired configmap name
* Admin username is no longer configurable
2018-04-04 11:38:10 -07:00
Alexander Matyushentsev
5c062bd3e5
Support deploying/destroying ephemeral environments (#40)
* Support deploying ephemeral environments

* Support deleting application resources

* Fix merge conflict

* Add missing break statement
2018-03-16 16:17:03 -07:00
Jesse Suen
ebb24b65b7
Add uninstall support. Remove redundant constants 2018-03-08 03:10:11 -08:00
Jesse Suen
cc232a4dc6
Rewrite installer. Install into argocd namespace. Standardize kubeconfig parsing 2018-03-02 18:04:29 -08:00
Jesse Suen
d61a8e6704
Fix application-controller dockerfile. Install RBAC artifacts. 2018-03-01 04:14:55 -08:00
Alexander Matyushentsev
336b0775fa
Implement api server installer (#15) 2018-02-28 20:48:43 -08:00
Jesse Suen
84602bb43f
Install a service account for managing a cluster as part of cluster add 2018-02-27 03:08:19 -08:00