Commit Graph

126 Commits

Author SHA1 Message Date
Stefan Prodan f14cd2323c
Upgrade controller-runtime to v0.7.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-01-04 11:50:58 +02:00
Hidde Beydals 69a7e75a91 Make Path an optional field and remove validation
As due to secure joins, the requirement on both providing a path
and/or requiring it to be in a certain format offers little value
over the UX experience of not having to provide it when you just
want to reconcile whatever can be found in the root of the source
reference.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-16 12:44:13 +01:00
Stefan Prodan d65ea71699
Refactor apply error reporting
- filter kubectl apply output and extract errors
- limit apply output to 20K charts (avoid reaching max etcd size)
- log kubectl exit code when the process is killed

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-12-14 17:34:55 +02:00
Stefan Prodan b09af484ec
Release v0.5.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-12-11 13:54:43 +02:00
Stefan Prodan 1438ef8735
Upgrade dependencies
- `github.com/fluxcd/pkg/apis/meta` to `v0.5.0`
- `github.com/fluxcd/pkg/runtime` to `v0.4.0`
- `github.com/fluxcd/source-controller/api` to `v0.5.1`
- `k8s.io/{api,apiextensions-apiserver,apimachinery,cli-runtime,client-go}` to `v0.19.4`
- `sigs.k8s.io/controller-runtime` to `v0.6.4`

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-12-10 19:48:41 +02:00
Somtochi Onyekwere 5b3d8df5b5 Add image type to API spec
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2020-12-10 13:23:55 +01:00
Stefan Prodan 53e31d663f
Remove default value from suspend field
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-26 14:17:38 +02:00
Stefan Prodan bed1418a01
Setup probes with runtime helpers
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-26 09:51:59 +02:00
Stefan Prodan 2312d69a51
Do not mark suspended resource as not ready
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-26 09:00:52 +02:00
Stefan Prodan 8f7f0d8c8f
Document that KubeConfig takes precedence over ServiceAccountName
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-20 11:34:35 +02:00
Stefan Prodan 0c9170241f
Use ServiceAccountName for impersonation
Drop the ServiceAccount field in favour of ServiceAccountName to prevent privilege escalation in multi-tenancy environments.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-20 10:58:24 +02:00
Aurel Canciu ac6cc88e29
Refactor to adopt k8s standardized Condition type
Updates to use metav1.Condition type and removes references for
deprecated corev1.Condition* constants and uses the new k8s api/meta
helpers in place of the old pkg/apis/meta types.

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-11-19 19:49:04 +02:00
Stefan Prodan 2ba6252d76
Allow disabling validation
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-12 12:18:04 +02:00
Aurel Canciu fc85f6f746
Update pkg components & k8s 1.19, kustomize 0.6.4
Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-11-01 18:14:07 +02:00
Stefan Prodan dde74d9ea5
Change copyright to Flux authors
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-10-27 18:49:02 +02:00
Michael Bridgen b8d71327f7 Use reconcile request annotation helpers
Per https://github.com/fluxcd/pkg/issues/39
2020-10-22 11:37:13 +01:00
Hidde Beydals 154560f60e Improve remote cluster documentation
To highlight the fact that it works with just a KubeConfig, and not just
CAPI.
2020-10-20 14:03:53 +02:00
Stefan Prodan 028c368975
Add targeting non-capi clusters to docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-10-16 12:40:17 +03:00
leigh capili ceb439d13c Document Kustomization.spec.kubeConfig for Cluster API 2020-10-15 09:44:44 -06:00
Stefan Prodan 2125d6c938
Release v0.1.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-10-13 17:59:46 +03:00
Stefan Prodan d4cef2f046
Use events and metrics from fluxcd/pkg/runtime
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-10-13 12:37:45 +03:00
stefanprodan 50104826ae Promote API to v1beta1 2020-09-30 19:10:27 +03:00
stefanprodan 7b8fef2984 Implement `fluxcd/pkg/meta/api` in APIs 2020-09-30 14:01:17 +03:00
stefanprodan 2da8d7ca0c Add KubeConfig field to API 2020-09-30 01:00:44 +03:00
stefanprodan 45bfe6dfe5 Record last handled reconcile at annotation 2020-09-29 21:14:19 +03:00
stefanprodan a0f705ff6e Add TargetNamespace to API 2020-09-29 15:38:47 +03:00
stefanprodan 0d6f715efc Add support for S3 bucket sources 2020-09-19 13:32:38 +03:00
stefanprodan 2b9370e658 Normalize the ready condition reasons
- use reconciliation instead of apply for condition reasons
- add the reconciliation errors to the condition message
- trim the condition message to 4000 characters
- update the API docs and readme with the new condition reasons
2020-09-17 12:23:50 +03:00
stefanprodan 544e7cf0eb Use manifests checksum in GC snapshot 2020-09-16 09:34:22 +03:00
Hidde Beydals e46add39ed Support dependency references to other namespaces 2020-09-15 15:18:34 +02:00
stefanprodan 9363703634 Refactor kstatus health check 2020-09-14 10:48:24 +03:00
Stefan Prodan d105ecff2f
Merge pull request #101 from phillebaba/feature/kstatus
Implement kstatus for health checks
2020-09-14 09:43:24 +03:00
Stefan Prodan 845947c814
Merge pull request #103 from fluxcd/use-pkg-for-runtime-bits
Use annotation and predicate from fluxcd/pkg
2020-09-10 15:56:20 +03:00
Michael Bridgen 47f5d0b4b0 Use annotation and predicate from fluxcd/pkg
The reconcileAt annotation and the predicate that recognises it are
now in fluxcd/pkg/runtime. This removes (near) duplicate definitions
in favour of using those.
2020-09-10 13:43:49 +01:00
stefanprodan 087be46136 Refactor garbage collector 2020-09-10 14:26:14 +03:00
Philip Laine c113c2043f Change SourceRef to use CrossNamespaceSourceReference 2020-09-08 21:48:42 +02:00
Philip Laine ea627e3448 Change health check from WorkloadReference to CrossNamespaceObjectReference 2020-09-07 23:31:31 +02:00
Philip Laine ca80431ef8 Change kind ref in health checks to group kind 2020-09-06 20:43:00 +02:00
stefanprodan c605ccf6d2 Implement Mozilla SOPS decryption 2020-09-01 15:51:22 +03:00
stefanprodan 86e96a0976 Add decryption optional field to API 2020-09-01 12:35:55 +03:00
Hidde Beydals 1628d827a0 api: rename Unsortable to CircularDependencyError
As this better reflects the error's contents.
2020-08-28 10:53:57 +02:00
stefanprodan e34fe0c0d5 Use logger package from fluxcd/pkg
Update source-controller/api to v0.0.11, client-go to v0.18.8 and controller-runtime to v0.6.2
2020-08-21 12:37:33 +03:00
stefanprodan c2db29b2f6 Make the api package a dedicated module 2020-08-18 14:15:26 +03:00
stefanprodan b13949d373 Add ks as short name to CRD 2020-08-06 13:31:51 +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
Hidde Beydals 99482c8db8 Record ObservedGeneration in status Kustomization 2020-07-23 17:14:19 +02:00
Hidde Beydals e462adbf47 Spec: add KustomizationStatus.ObservedGeneration 2020-07-23 17:14:16 +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 f79ac6dd44 Rename syncAt annotation to reconcileAt
Use `fluxcd.io/reconcileAt` annotation across all controllers.
2020-07-13 17:14:57 +03:00
stefanprodan a69af9d57c Add last attempted revision to status 2020-07-10 09:54:45 +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
Hidde Beydals fefa8f07cb Generate API documentation 2020-06-19 17:00:10 +02:00
Hidde Beydals fdbf69cea5 Sort dependencies with Tarjan's SCCS algorithm 2020-05-08 14:30:07 +02:00
stefanprodan 8763bbec25 Update GC API spec and examples 2020-05-05 17:19:38 +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 04c0ba0ce9 Add snapshot types to API 2020-05-05 13:39:20 +03:00
stefanprodan 5a73ba7477 Implement SA impersonation 2020-05-01 22:13:54 +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 da1ad5b642 Add generate flag to Kustomization API 2020-04-22 20:33:38 +03:00
stefanprodan 4895bf16cc Introduce profiles
- add Profile type to API
- add AlertProvider to Profile
2020-04-21 14:01:51 +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 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 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 a3d9a8876a Introduce kustomization API 2020-04-15 15:15:31 +03:00
stefanprodan 3df6bfebfa Init controller with kubebuilder 2020-04-15 09:58:33 +03:00