The GitOps Toolkit source management component
Go to file
Michael Bridgen d51bddc263 Factor out fetching objects
The algorithm for conditionally downloading object files is the same,
whether you are using GCP storage or an S3/Minio-compatible
bucket. The only thing that differs is how the respective clients
handle enumerating through the objects in the bucket; by implementing
just that in each provider, I can have the select-and-fetch code in
once place.

This deliberately omits the parallelised fetching that the GCP client
had, for the sake of lining the clients up. It can be reintroduced (in
the factored out code) later.

Signed-off-by: Michael Bridgen <michael@weave.works>
2021-11-11 17:36:21 +00:00
.github Update fluxcd/golang-with-libgit2 to 1.1.1-1 2021-10-14 13:49:52 -05:00
api gogit: allow checkout of commit without branch 2021-10-27 00:43:31 +05:30
config Release v0.17.2 2021-11-04 17:19:23 +05:30
controllers Factor out fetching objects 2021-11-11 17:36:21 +00:00
docs docs: GitRepository commit without branch example 2021-10-27 17:00:11 +05:30
hack Add LastHandledReconcileAt to source statuses 2020-11-19 13:21:59 +01:00
internal Update github.com/libgit2/git2go to v31.6.1 2021-10-14 13:48:15 -05:00
pkg Factor out fetching objects 2021-11-11 17:36:21 +00:00
.dockerignore Update github.com/libgit2/git2go to v31.6.1 2021-10-14 13:48:15 -05:00
.gitignore Update github.com/libgit2/git2go to v31.6.1 2021-10-14 13:48:15 -05:00
CHANGELOG.md Release v0.17.2 2021-11-04 17:19:23 +05:30
CODE_OF_CONDUCT.md Add governance files like DCO, MAINTAINERS, CoC 2020-04-12 23:54:35 +02:00
DCO Add governance files like DCO, MAINTAINERS, CoC 2020-04-12 23:54:35 +02:00
DEVELOPMENT.md Centralise Contributor docs, add Dev doc 2021-10-26 11:24:41 +02:00
Dockerfile Update fluxcd/golang-with-libgit2 to 1.1.1-1 2021-10-14 13:49:52 -05:00
LICENSE Initial commit 2020-04-05 11:55:46 +03:00
MAINTAINERS Share maintainers from fluxcd/flux2 2020-12-01 12:20:27 +00:00
Makefile Update fluxcd/golang-with-libgit2 to 1.1.1-1 2021-10-14 13:49:52 -05:00
PROJECT Promote API to v1beta1 2020-09-30 16:11:00 +03:00
README.md add CII badge 2021-04-08 12:13:56 +02:00
go.mod Merge branch 'main' into bucket-provider-interface 2021-11-08 08:11:38 -06:00
go.sum Merge branch 'main' into bucket-provider-interface 2021-11-08 08:11:38 -06:00
main.go Panic on non-nil AddToScheme errors in main init 2021-06-17 15:38:24 +02:00

README.md

Source controller

CII Best Practices e2e report license release

The source-controller is a Kubernetes operator, specialised in artifacts acquisition from external sources such as Git, Helm repositories and S3 buckets. The source-controller implements the source.toolkit.fluxcd.io API and is a core component of the GitOps toolkit.

overview

Features:

  • authenticates to sources (SSH, user/password, API token)
  • validates source authenticity (PGP)
  • detects source changes based on update policies (semver)
  • fetches resources on-demand and on-a-schedule
  • packages the fetched resources into a well-known format (tar.gz, yaml)
  • makes the artifacts addressable by their source identifier (sha, version, ts)
  • makes the artifacts available in-cluster to interested 3rd parties
  • notifies interested 3rd parties of source changes and availability (status conditions, events, hooks)
  • reacts to Git push and Helm chart upload events (via notification-controller)