The GitOps Toolkit source management component
Go to file
Hidde Beydals a1ed1fc4b4 source: `GetRequeueAfter` in place of `GetInterval`
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 introduced of this method deprecates `GetInterval()`, which should
be removed in a future MINOR release.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-08-03 13:36:12 +02:00
.github Print pods status on e2e failures 2021-06-29 16:40:15 +03:00
api source: `GetRequeueAfter` in place of `GetInterval` 2021-08-03 13:36:12 +02:00
config Implement new runtime interfaces, prepare testenv 2021-07-30 12:33:18 +02:00
controllers source: `GetRequeueAfter` in place of `GetInterval` 2021-08-03 13:36:12 +02:00
docs Implement new runtime interfaces, prepare testenv 2021-07-30 12:33:18 +02:00
hack Add LastHandledReconcileAt to source statuses 2020-11-19 13:21:59 +01:00
internal Drop deprecated `io/ioutil` 2021-07-29 09:58:00 +02:00
pkg Use same SemVer logic in both Git implementations 2021-07-30 19:36:58 +02:00
.gitignore ci: Add release workflow 2020-04-13 18:28:22 +03:00
CHANGELOG.md Release v0.15.3 2021-06-29 12:27:52 +03:00
CODE_OF_CONDUCT.md Add governance files like DCO, MAINTAINERS, CoC 2020-04-12 23:54:35 +02:00
CONTRIBUTING.md Document how to build libgit2 from source 2020-12-09 17:00:17 +01:00
DCO Add governance files like DCO, MAINTAINERS, CoC 2020-04-12 23:54:35 +02:00
Dockerfile Use libgit2 from "unstable" / "sid" 2021-06-22 13:00:16 +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 Update K8s, controller-runtime and fluxcd/pkg deps 2021-06-08 13:41:34 +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 Use same SemVer logic in both Git implementations 2021-07-30 19:36:58 +02:00
go.sum Use same SemVer logic in both Git implementations 2021-07-30 19:36:58 +02:00
main.go Rewrite `GitRepositoryReconciler` to new standards 2021-07-30 19:36:32 +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)