The GitOps Toolkit source management component
Go to file
Sunny 9eb6833d4d source: Add `GetRequeueAfter`
The problem with `GetInterval()` was that the returned type was of
`metav1.Duration`, while almost anywhere it was used, a type of
`time.Duration` was requested. The result of this was that we had to
call `GetInterval().Duration` all the time, which would become a bit
cumbersome after awhile.

To prevent this, we introduce a new `GetRequeueAfter() time.Duration`
method, which both results the right type, and bears a name that is
easier to remember where the value is used most; while setting the
`Result.RequeueAfter` during reconcile operations.

The introduction of this method deprecates `GetInterval()`, which
should be removed in a future MINOR release.

Signed-off-by: Sunny <darkowlzz@protonmail.com>

Co-authored-by: Hidde Beydals <hello@hidde.co>
2022-02-23 12:35:30 +01:00
.github/workflows Fix make test on arm64 runners 2022-02-16 10:17:33 +00:00
api source: Add `GetRequeueAfter` 2022-02-23 12:35:30 +01:00
config Implement new runtime interfaces, prepare testenv 2022-02-23 12:35:30 +01:00
controllers Introduce `artifactSet` to replace `hasArtifactUpdated` 2022-02-23 12:35:30 +01:00
docs Implement new runtime interfaces, prepare testenv 2022-02-23 12:35:30 +01:00
hack Introduce v1beta2 API package 2022-02-23 12:34:35 +01:00
internal helm: remove temp file name from index cache err 2022-01-13 10:54:37 +01:00
pkg git/libgit2: assert proper test of default branch 2022-02-22 16:31:56 +01:00
tests/fuzz Upgrade libgit2 to libgit2-1.3.0-2 2022-02-16 11:39:11 +00:00
.dockerignore Download libgit2 libraries for fuzzing 2022-02-11 12:30:46 +00:00
.gitignore Update libgit2 to 1.1.1-6 2022-02-07 13:00:57 +00:00
.goreleaser.yaml Publish SBOM and sign release artifacts 2022-01-20 13:49:36 +02:00
ATTRIBUTIONS.md Update libgit2 attributions 2022-02-16 10:30:27 +00:00
CHANGELOG.md Release v0.21.2 2022-02-07 11:50:32 +02:00
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 Update dev docs 2022-01-25 15:09:47 +00:00
Dockerfile Upgrade libgit2 to libgit2-1.3.0-2 2022-02-16 11:39:11 +00:00
LICENSE Initial commit 2020-04-05 11:55:46 +03:00
MAINTAINERS Add pjbgf to Maintainers 2022-02-17 11:24:02 +00:00
Makefile Introduce v1beta2 API package 2022-02-23 12:34:35 +01:00
PROJECT Introduce v1beta2 API package 2022-02-23 12:34:35 +01:00
README.md Update test shield link 2021-11-22 11:40:18 +01:00
go.mod Implement new runtime interfaces, prepare testenv 2022-02-23 12:35:30 +01:00
go.sum Implement new runtime interfaces, prepare testenv 2022-02-23 12:35:30 +01:00
main.go Implement new runtime interfaces, prepare testenv 2022-02-23 12:35:30 +01: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)