https://github.com/fluxcd/source-controller
The GitOps Toolkit source management component
https://github.com/fluxcd/source-controller
gitops-toolkit
Last synced: 8 months ago
JSON representation
The GitOps Toolkit source management component
- Host: GitHub
- URL: https://github.com/fluxcd/source-controller
- Owner: fluxcd
- License: apache-2.0
- Created: 2020-04-05T08:55:42.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2025-05-12T02:21:14.000Z (8 months ago)
- Last Synced: 2025-05-12T03:26:55.202Z (8 months ago)
- Topics: gitops-toolkit
- Language: Go
- Homepage: https://fluxcd.io
- Size: 8.88 MB
- Stars: 254
- Watchers: 26
- Forks: 203
- Open Issues: 121
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Source controller
[](https://bestpractices.coreinfrastructure.org/projects/4786)
[](https://github.com/fluxcd/source-controller/actions)
[](https://goreportcard.com/report/github.com/fluxcd/source-controller)
[](https://github.com/fluxcd/source-controller/blob/main/LICENSE)
[](https://github.com/fluxcd/source-controller/releases)
The source-controller is a Kubernetes operator, specialised in artifacts acquisition
from external sources such as Git, OCI, Helm repositories and S3-compatible buckets.
The source-controller implements the
[source.toolkit.fluxcd.io](docs/spec/README.md) API
and is a core component of the [GitOps toolkit](https://fluxcd.io/flux/components/).

## APIs
| Kind | API Version |
|-------------------------------------------------------|------------------------------------|
| [GitRepository](docs/spec/v1/gitrepositories.md) | `source.toolkit.fluxcd.io/v1` |
| [OCIRepository](docs/spec/v1beta2/ocirepositories.md) | `source.toolkit.fluxcd.io/v1beta2` |
| [HelmRepository](docs/spec/v1/helmrepositories.md) | `source.toolkit.fluxcd.io/v1` |
| [HelmChart](docs/spec/v1/helmcharts.md) | `source.toolkit.fluxcd.io/v1` |
| [Bucket](docs/spec/v1/buckets.md) | `source.toolkit.fluxcd.io/v1` |
## Features
* authenticates to sources (SSH, user/password, API token, Workload Identity)
* validates source authenticity (PGP, Cosign, Notation)
* 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, Helm and OCI artifacts push events (via [notification-controller](https://github.com/fluxcd/notification-controller))
## Guides
* [Get started with Flux](https://fluxcd.io/flux/get-started/)
* [Setup Webhook Receivers](https://fluxcd.io/flux/guides/webhook-receivers/)
* [Setup Notifications](https://fluxcd.io/flux/guides/notifications/)
* [How to build, publish and consume OCI Artifacts with Flux](https://fluxcd.io/flux/cheatsheets/oci-artifacts/)
## Roadmap
The roadmap for the Flux family of projects can be found at .
## Contributing
This project is Apache 2.0 licensed and accepts contributions via GitHub pull requests.
To start contributing please see the [development guide](DEVELOPMENT.md).