The average SubTransport lifecycle encompass two Actions calls. Previously, it was attempted to share the same connection across both calls. That did not work as some Git Servers do not support multiple sessions from the same connection. The implementation was not fully transitioned into the "one connection per action" model, which led to connection being leaked. The transition to RW mutex was to avoid the unnecessary blocking in the goroutine at the start of the second action call. It is worth mentioning that now when the context is done, the client level resources (connection) will also be freed. This ensures that SSH connections will not outlive the subtransport. Signed-off-by: Paulo Gomes <paulo.gomes@weave.works> |
||
---|---|---|
.github/workflows | ||
api | ||
config | ||
controllers | ||
docs | ||
hack | ||
internal | ||
pkg | ||
tests/fuzz | ||
.dockerignore | ||
.gitignore | ||
.goreleaser.yaml | ||
ATTRIBUTIONS.md | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
DCO | ||
DEVELOPMENT.md | ||
Dockerfile | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
PROJECT | ||
README.md | ||
go.mod | ||
go.sum | ||
main.go |
README.md
Source controller
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.
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)