The GitOps Toolkit source management component
Go to file
Dylan Arbour 27c385b957 Add ReconcileStrategy to HelmChart
This commit adds a `ReconcileStrategy` field to the `HelmChart` resource, which
allows defining when a new chart should be packaged and/or published if it
originates from a `Bucket` or `GitRepository` resource.

The two available strategies are:

- `ChartVersion`: creates a new artifact when the version of the Helm chart as
  defined in the `Chart.yaml` from the Source is different from the current
  version.
- `Revision`: creates a new artifact when the revision of the Source is
  different from the current revision.

For the `Revision` strategy, the (checksum part of the) revision of the
artifact the chart originatesfrom is added as SemVer metadata.

A chart from a `GitRepository` with Artifact revision
`main/f0faacd5164a875ebdbd9e3fab778f49c5aadbbc` and a chart with e.g. SemVer
`0.1.0` will be published as `0.1.0+f0faacd5164a875ebdbd9e3fab778f49c5aadbbc`.

A chart from a `Bucket` with Artifact revision
`f0faacd5164a875ebdbd9e3fab778f49c5aadbbc` and a chart with e.g. SemVer `0.1.0`
will be published as `0.1.0+f0faacd5164a875ebdbd9e3fab778f49c5aadbbc`.

Signed-off-by: Dylan Arbour <arbourd@users.noreply.github.com>
2021-10-08 11:07:11 +02:00
.github Update Dockerfile used in tests as well 2021-10-08 09:38:20 +02:00
api Add ReconcileStrategy to HelmChart 2021-10-08 11:07:11 +02:00
config Add ReconcileStrategy to HelmChart 2021-10-08 11:07:11 +02:00
controllers Add ReconcileStrategy to HelmChart 2021-10-08 11:07:11 +02:00
docs Add ReconcileStrategy to HelmChart 2021-10-08 11:07:11 +02:00
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-09-30 16:36:20 +02:00
pkg Update github.com/libgit2/git2go to v31.6.1 2021-09-30 16:36:20 +02:00
.dockerignore Update github.com/libgit2/git2go to v31.6.1 2021-09-30 16:36:20 +02:00
.gitignore Update github.com/libgit2/git2go to v31.6.1 2021-09-30 16:36:20 +02:00
CHANGELOG.md Release v0.15.4 2021-08-05 13:45:07 +02:00
CODE_OF_CONDUCT.md Add governance files like DCO, MAINTAINERS, CoC 2020-04-12 23:54:35 +02:00
CONTRIBUTING.md CONTRIBUTING: include pkg-config as macOS dep 2021-10-08 09:40:02 +02:00
DCO Add governance files like DCO, MAINTAINERS, CoC 2020-04-12 23:54:35 +02:00
Dockerfile Switch to scratch based libgit2 container image 2021-10-08 09:38:20 +02: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 Switch to scratch based libgit2 container image 2021-10-08 09:38:20 +02: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 Update containerd and runc to fix CVEs 2021-10-08 11:22:44 +03:00
go.sum Update containerd and runc to fix CVEs 2021-10-08 11:22:44 +03: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)