Commit graph

68 commits

Author SHA1 Message Date
Alexander Matyushentsev
70b9db68b4
Issue #599 - Lazy enforcement of unknown cluster/namespace restricted resources (#612) 2018-09-20 09:48:54 -07:00
Jesse Suen
bfb558eb92 Fix issue where helm hooks were being deployed as part of sync (issue #605) 2018-09-17 11:29:44 -07:00
Jesse Suen
505866a4c6 Support helm charts with dependencies and namespace sensitivity (issue #582) 2018-09-17 11:29:44 -07:00
Jesse Suen
02116d4bfc
Fix comparison failure when app contains unregistered custom resource (issue #583) (#596) 2018-09-13 14:02:04 -07:00
Alexander Matyushentsev
aa2afcd47b
Issue #330 - Projects need controls on cluster-scoped resources (#558)
* Issue #330 - Projects need controls on cluster-scoped resources

* Issue #330 - Introduce namespace resources black-list
2018-09-11 15:10:47 -07:00
Jesse Suen
fd510e7933
Support an automated sync policy upon detection of OutOfSync status from git (#571) 2018-09-11 14:28:53 -07:00
Jesse Suen
bc98b65190
Fix controller hot loop when app source contains bad manifests (issue #568) (#570) 2018-09-10 10:58:13 -07:00
dthomson25
954706570c
Reorder K8s resources to correct creation order (#551) 2018-09-10 10:14:14 -07:00
Alexander Matyushentsev
e2faf6970f
Issue #527 - Support --in-cluster authentication without providing a kubeconfig (#559)
* Issue #527 - Support --in-cluster authentication without providing a kubeconfig

* Issue #527 - make sure resources are watched for 'local' cluster
2018-09-10 08:20:17 -07:00
Jesse Suen
cf630055b0
API discovery becomes best effort when partial resource list is returned (resolves #524) (#526) 2018-08-21 13:53:42 -07:00
Jesse Suen
00299707e5
Expand RBAC role to be able to create application events. Fix username claims extraction. (#479) 2018-07-31 11:15:44 -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
Alexander Matyushentsev
b3af671803
Issue #340 - create application/project events for audit (#440)
* Issue #340 - create application/project events for audit

* Issue 340 - move username to message field

* Reviewer notes: fix possible panic
2018-07-24 18:48:13 +03:00
JazminGonzalez-Rivero
2343818ab5
Resolves 398 -> errors set status to known, status details set to error message (#437)
* if healthcheck fails, return unknown health status

* pass error through

* revert error pass

* fix error pass

* save first error
2018-07-23 11:32:35 -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
39b9f4d31a
Add ability to terminate a running operation (resolves #379) (#409) 2018-07-13 17:13:31 -07:00
Jesse Suen
078b2339bd
Apply logic was ignoring kubectl apply failures (#395) 2018-07-13 10:03:56 -07:00
Jesse Suen
f65859bc25
Label hooks so that the cluster resource watch will be notified about completions (#387) 2018-07-12 14:01:54 -07:00
Alexander Matyushentsev
543ae3cf13
Issue #364 - Assess health of StatefulSets, DaemonSets, ReplicaSets (#391) 2018-07-13 00:01:28 +03:00
Alexander Matyushentsev
610a4510cf
Issue #385 - Sync and health status should be unknown if controller unable to load target/live state (#386) 2018-07-12 22:40:21 +03:00
Jesse Suen
7b92977889
Improve logging. Prevent some unecessary patches to app (#383) 2018-07-12 12:39:46 -07:00
Jesse Suen
9d921f65f3
Various fixes to sync logic (#370)
* move hook resource state into SyncResult (from operation state)
* fix rollback to use apply based sync
* re-assess sync/health status between each sync phases
* PostSync hook should wait until application is Healthy (resolves #363)
2018-07-11 19:12:30 -07:00
Andrew Merenbach
9cddd4c368
Force app refresh after sync (#373) 2018-07-11 13:45:41 -07:00
Alexander Matyushentsev
8db465c699
Issue #277 - Warning message if controller detect resources which belongs to multiple application (#372)
* Issue #277 - Warning message if controller detect resources which belongs to multiple application

* Reviewer notes: add missing nil check
2018-07-11 23:00:48 +03:00
Jesse Suen
eb1caf2231
Use hook strategy as the default when performing a sync (#368) 2018-07-10 16:02:55 -07:00
Alexander Matyushentsev
adb84f3d03
Issue #210 - Application controller should not erase previously collected info about resources if repo or cluster is not available (#367) 2018-07-11 00:45:18 +03:00
Alexander Matyushentsev
7d4dd0fdd5
Issue #304 - Add spec validation condition to application CRD (#360) 2018-07-09 20:45:03 +03:00
Jesse Suen
364415f83a
Move k8s health assessment into a stand-alone library. Use kubectl convert to statically assess health (#356) 2018-07-09 10:13:56 -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
Andrew Merenbach
bf2fe9d33f
Add missing health status (#354)
* Add missing health status

* Update swagger.json

* Default app and service health to Missing

* Fill in Missing status if status field is blank

* Simplify missing injection
2018-07-06 16:33:25 -07:00
Alexander Matyushentsev
16fa41d25b
Issue #275 - Application controller fails to get app state if app has resource without name (#285) 2018-06-14 09:08:22 -07:00
Andrew Merenbach
df0e2e4015
Fail app sync if prune flag is required (#276)
* Add status field to resource details

* Update generated code

* Set up const message responses

* Check number of resources requiring pruning

* Fix imports

* Use string, thanks @alexmt

* Update generated code
2018-06-12 10:54:11 -07:00
Alexander Matyushentsev
aa4291183b
Take into account number of unavailable replicas to decided if deployment is healthy or not (#270)
* Take into account number of unavailable replicas to decided if deployment is healthy or not

* Run one controller for all e2e tests to reduce tests duration

* Apply reviewer notes: use logic from kubectl/rollout_status.go to check deployment health
2018-06-07 11:05:46 -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
Alexander Matyushentsev
12596ff936
Issue #233 - Controller does not persist rollback operation result (#234) 2018-05-24 10:50:33 -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
Alexander Matyushentsev
8039228a9d
Add last update time to operation status, fix operation status patching (#204)
* Add last update time to operation status, fix operation status patching

* Rename lastUpdateTime to startAt and finishedAt
2018-05-15 11:35:10 -07:00
Andrew Merenbach
b1103af429
Rename recent deployments to history (#201)
* Rename RecentDeployments to History

* Update generated code
2018-05-15 11:05:46 -07:00
Jesse Suen
2664db3e40
Refactor application controller sync/apply loop (#202)
* Refactor application controller sync/apply loop
* always run kubectl apply --dry-run before the actual apply
* remove incorrect logic skip apply if comparator reported Synced
* rename status to phase
* distinguish failures from errors
* consolidate fields between OperationState and SyncOperationResult
* Disable migration code which referenced removed fields
2018-05-15 00:36:11 -07:00
Jesse Suen
c61795f71a
Add 'database' library for CRUD operations against repos and clusters. Redact sensitive information (#196) 2018-05-14 11:36:08 -07:00
Alexander Matyushentsev
3dbbcf8918
Move sync logic to contoller (#180)
* Issue #119 - Move sync logic to contoller

* Implement app compare/sycn e2e test

* Fix panic in kube ApplyResource method

* Apply reviewer notes: add separate rollback operation instead of reusing sync for sync and rollback
2018-05-11 11:50:32 -07:00
Andrew Merenbach
b83eac5dc2
Make ApplicationSpec.Destination non-optional, non-pointer (#177)
* Make Destination a non-pointer field

* Rm nil checks for destination; update initialization

* Update codegen

* Rm ResolveServerNamespace function, thanks @jessesuen
2018-05-08 14:09:33 -07:00
Alexander Matyushentsev
d9c12e7271
Issue #146 - ArgoCD applications should have a rolled up health status (#164)
* Issue #146 - ArgoCD applications should have a rolled up health status

* Apply reviewer notes: rename healthState to health; rename HealthState to HealthStatus
2018-05-07 08:38:25 -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
Alexander Matyushentsev
1b2f89995c
Issue #155 - Application update failes due to concurrent access (#156) 2018-05-03 15:55:01 -07:00
Jesse Suen
9567b539d1 Improve comparator to fall back to looking up a resource by name 2018-04-30 12:03:20 -07:00
Alexander Matyushentsev
917f1df250
Populated 'unexpected' resources while comparing target and live states (#137)
* Make sure endpoints resources is detected as child resource for correspoinding service

* Issue #104 - Populated 'unexpected' resources while comparing target and live states

* Add comments to comparator CompareAppState method
2018-04-27 13:57:09 -07:00
Alexander Matyushentsev
f6ed150bb7
Issue #108 - App controller incorrectly report that app is out of sync (#109)
* Load/delete app kubernetes resources parallelly to improve comparison performance

* Issue #108 - App controller incorrectly report that app is out of sync
2018-04-20 11:54:52 -07:00
Alexander Matyushentsev
3ac95f3f84
Fix null pointer error in controller (#105) 2018-04-19 16:48:32 -07:00