54 lines
3.1 KiB
Markdown
54 lines
3.1 KiB
Markdown
# 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 <https://fluxcd.io/roadmap/>.
|
|
|
|
## 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).
|