Commit Graph

179 Commits

Author SHA1 Message Date
stefanprodan 9c18d044de Fix artifact extraction 2020-06-10 11:55:54 +03:00
stefanprodan 1f25b5852b Watch resources in the runtime namespace only 2020-06-09 15:53:20 +03:00
stefanprodan 0c47dfd549 Retry apply on missing Kind 2020-05-13 19:04:00 +03:00
stefanprodan 7e584dcbf2 Improve health checking
Wait for a deployment to be created before running the liveness check
2020-05-09 12:18:44 +03:00
stefanprodan f96f3e326f Implement pruning based on snapshots 2020-05-05 16:56:27 +03:00
stefanprodan dbe3e69508 Introduce garbage collection based on snapshots 2020-05-05 15:42:49 +03:00
stefanprodan 6b1bbb53b8 Retry sync trigger 2020-05-02 12:06:48 +03:00
stefanprodan 5a73ba7477 Implement SA impersonation 2020-05-01 22:13:54 +03:00
stefanprodan af68aa0e9e build: install tar 2020-04-28 16:25:05 +03:00
stefanprodan 86f6e84d59 Report progressing status
Set ready condition to unknown while the reconciliation is progressing.
This allows other operators to wait for a sync to complete.
2020-04-27 00:39:48 +03:00
stefanprodan 696658dcc9 Record last applied revision
- add LastAppliedRevision field to Status
- set LastAppliedRevision after a successful sync
- add Status section spec
2020-04-24 00:44:32 +03:00
stefanprodan b88626c0cc Generate label transformers for the prune selectors 2020-04-23 12:52:35 +03:00
stefanprodan d37741e633 Implement kustomization.yaml generation 2020-04-22 20:34:40 +03:00
stefanprodan 81ff97bc8d Implement Slack and Discord alerting 2020-04-21 14:09:26 +03:00
stefanprodan fe88706613 Introduce dependencies between kustomizations
- add DependsOn field to API
- implement ordered apply of kustomizations based on dependencies and readiness status
- retry execution every half a minute for kustomizations with dependencies that do not meet the ready condition
- add interdependent kustomizations to config testdata
2020-04-19 18:27:32 +03:00
stefanprodan 508b7cca6a Refactor controller sync
- extract sync operations to dedicated functions
- add health check failed reason
2020-04-19 11:04:05 +03:00
stefanprodan 8fd0d45916 Add timeout to API
- add timeout field to API (defaults to interval duration)
- set timeout for validation, apply and heath check operations
- set concurrent reconciles to 4 (avoid health checks from delaying other operations)
2020-04-19 09:44:32 +03:00
stefanprodan 0dae17ffd6 Introduce health assessment
- add health checks to API
- implement rollout status check
2020-04-19 01:28:58 +03:00
stefanprodan a3b8bcb310 Allow kustomize execution to be suspended 2020-04-18 18:16:20 +03:00
stefanprodan 3f50c71af4 Introduce validation
- add validation field to API
- perform dry-run apply
- add validation strategies to docs
2020-04-18 14:14:51 +03:00
stefanprodan 6d28f7c9b2 Introduce JSON logging
- add JSON log format cmd flag
- format apply output as a map of object/operation
- add apply logs to docs
2020-04-18 11:11:44 +03:00
stefanprodan 58846979bc Trigger sync on artifact creation 2020-04-17 19:50:17 +03:00
stefanprodan eee47333cf Implement garbage collection
- add GarbageCollect predicate
- remove the Kubernetes objects previously applied on the cluster, based on the prune label select
- add garbage collection spec to docs
2020-04-17 13:25:36 +03:00
stefanprodan 681349f425 Set apply timeout to interval duration 2020-04-17 11:15:39 +03:00
stefanprodan 9f7d995577 Add locking to kustomization apply 2020-04-17 10:30:40 +03:00
stefanprodan c564555eb0 Use Source interface instead of Git concrete type
- use TypedLocalObjectReference instead of LocalObjectReference for referencing a source
- update docs for GitRepository kind
- update source API to 0.0.1-alpha.1
2020-04-16 18:30:18 +03:00
stefanprodan ee74f8e329 Trigger kustomization apply on source changes
- detect revision changes in Git repositories
- index kustomizations based on source
- trigger kustomizations on revision changes
2020-04-16 10:40:28 +03:00
stefanprodan 17ec746136 Implement kustomization reconciler
- fetch artifact from source controller based on the referenced Git repository
- run kustomize build for the specified path
- apply kustomization on cluster
- prune objects based on label selector
2020-04-15 15:20:21 +03:00
stefanprodan 3df6bfebfa Init controller with kubebuilder 2020-04-15 09:58:33 +03:00