The GitOps Toolkit source management component
Go to file
Sunny 7f7490ebf0
libgit2/managed: fix race issues in ssh transport
Race conditions in ssh smart subtransport caused some goroutines to
panic, resulting in crashing the whole controller, mostly evident in
image-automation-controller CI runs. Panic recovery in the main thread
do not handle goroutine panics. So, the existing panic recovery code in
libgit2 Checkout() methods weren't able to handle it.

This change groups the fields in ssh smart subtransport that may be
accessed by multiple goroutines into a new struct with a mutex. Also
adds panic recovery in the created goroutine to handle any other
possible panics.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-06-03 01:45:18 +05:30
.github/workflows Update GH Actions 2022-05-26 14:57:34 +01:00
api Update dependencies 2022-05-26 14:48:36 +01:00
config Release v0.25.0 2022-06-01 16:27:30 +05:30
controllers helmrepo: rm stale condition when type switching 2022-05-31 03:53:33 +05:30
docs Release v0.25.0 2022-06-01 16:27:30 +05:30
hack [RFC 0002] Flux OCI support for Helm (#690) 2022-05-19 14:50:16 +02:00
internal registry: repo URL and dockerconfig URL mismatch 2022-06-01 00:09:36 +05:30
pkg libgit2/managed: fix race issues in ssh transport 2022-06-03 01:45:18 +05:30
tests/fuzz Update libgit2 to 1.3.1 2022-04-14 09:59:01 +01: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 attributions 2022-04-14 09:59:02 +01:00
CHANGELOG.md Release v0.25.0 2022-06-01 16:27:30 +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 build: let users pass test flags to `make test` 2022-04-28 06:31:45 +02:00
Dockerfile Update Alpine to v3.16 2022-05-27 10:59:41 +03: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 tests: ignore proxy settings when running tests 2022-05-25 13:57:54 +01:00
PROJECT Introduce v1beta2 API package 2022-02-23 12:34:35 +01:00
README.md update toolkit.fluxcd.io docs links 2022-04-01 11:09:56 +02:00
go.mod Release v0.25.0 2022-06-01 16:27:30 +05:30
go.sum fix panics on unmanaged http and proxy on managed http 2022-05-27 14:01:23 +05:30
main.go fix docs, error handling and managed proxy auth 2022-05-27 14:01:23 +05:30

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)