Commit Graph

55 Commits

Author SHA1 Message Date
Philip Laine ca80431ef8 Change kind ref in health checks to group kind 2020-09-06 20:43:00 +02:00
Philip Laine 9c54e2cb30 Implement kstatus check 2020-09-06 17:59:25 +02:00
Hidde Beydals 07f13e56eb GPG decryption in contained environment 2020-09-02 15:42:02 +02:00
stefanprodan c605ccf6d2 Implement Mozilla SOPS decryption 2020-09-01 15:51:22 +03:00
stefanprodan 7e06af6d4b Refactor garbage collection 2020-09-01 13:35:05 +03:00
stefanprodan b00a841162 Refactor kustomization file generation 2020-09-01 12:34:50 +03:00
stefanprodan f9b748378b Fix GC ignore unknown resource kind 2020-08-31 12:04:34 +03:00
stefanprodan 2963ad27e0 Implement kustomize create and build
- Replace kustomize shell-out with kustomize/api
- Remove kustomize binary from Dockerfile
- Update kubectl binary to 1.19.0
2020-08-31 11:06:47 +03:00
stefanprodan 65f511a58b Allow kustomizations to load files from outside their root
Add git OS package to enable kustomize remote URLs
2020-08-18 11:34:16 +03:00
Hidde Beydals 5905f3a85f Change CRD domain to 'kustomize.toolkit.fluxcd.io'
Due to required domain changes for the helm-controller so that it
can co-exist in a cluster with the Helm Operator, other Toolkit
components are moving to a *.toolklit.fluxcd.io domain too.
2020-07-30 22:40:16 +02:00
stefanprodan 40ff1a7038 Rename apply succeeded reason 2020-07-30 14:48:29 +03:00
stefanprodan 3d7687e216 Set event reason from ready status reason 2020-07-30 14:13:46 +03:00
stefanprodan c3599135c9 Use SA token for impersonation 2020-07-25 09:45:31 +03:00
Hidde Beydals 4231b9b6c8 Take observed generation of deps into account
To prevent operations from being performed while they are "Ready",
but the latest generation of the depenceny has not been reconciled
yet.
2020-07-23 17:15:33 +02:00
Hidde Beydals 61c1dce06c Refactor garbage collector to finalizer 2020-07-16 15:06:37 +02:00
stefanprodan 2a025c49cb Implement cross-namespace source references 2020-07-16 10:28:15 +03:00
stefanprodan 0934fda436 Improve error handling and reporting
- return reconciliation error so that controller runtime metrics record failures
- change structure logging labels to match the controller runtime format
- prevent spurious info events by issuing events only when revision changes
2020-07-15 15:00:45 +03:00
stefanprodan 47d239312a Update source-controller to v0.0.5 2020-07-13 17:14:13 +03:00
stefanprodan 706e85ecec Use fluxcd/pkg/untar for artifact extraction 2020-07-10 10:44:57 +03:00
stefanprodan a69af9d57c Add last attempted revision to status 2020-07-10 09:54:45 +03:00
stefanprodan 4d3a3a7bae Emit events for garbage collection 2020-07-02 11:52:03 +03:00
stefanprodan 406ce977a4 Add revision to events metadata 2020-07-02 08:01:06 +03:00
stefanprodan 2ebd5b6450 Implement event recording
- emit Kubernetes events for reconciliation actions
- forward events to notification controller
- remove the Profile API/CRD
2020-07-01 20:39:48 +03:00
stefanprodan ab15f3c185 Migrate to fluxcd/pkg 2020-06-30 17:25:03 +03:00
Hidde Beydals 3f6edc5280 Check suspend status before progressing
When a release is marked as suspended no operations should be performed
for the release except acknowledging the reconciler has noticed it has
been suspended. This means the suspend check should happen _before_ the
Kustomization is marked as progressing (which should be an indicator
reconciliation is enabled for the Kustomization).
2020-06-30 11:15:43 +02:00
stefanprodan d11e76d322 Configurable dependency requeuing
Add command argument for configuring the interval at which failing dependencies are reevaluated.
2020-06-20 10:30:37 +03:00
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