<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Flux – GitOps Toolkit components</title><link>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/</link><description>Recent content in GitOps Toolkit components on Flux</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://deploy-preview-2413--fluxcd.netlify.app/flux/components/index.xml" rel="self" type="application/rss+xml"/><item><title>Flux: Source Controllers</title><link>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/source/</guid><description>
&lt;h2 id="source-controller">Source controller&lt;/h2>
&lt;p>The main role of source-controller is to provide a common interface for artifacts acquisition.
The source API defines a set of Kubernetes objects that cluster admins and various automated operators can
interact with to offload the Git and Helm repositories operations to a dedicated controller.&lt;/p>
&lt;p>&lt;img src="https://deploy-preview-2413--fluxcd.netlify.app/img/source-controller.png" alt="Source Controller Diagram">&lt;/p>
&lt;p>Features:&lt;/p>
&lt;ul>
&lt;li>Validate source definitions&lt;/li>
&lt;li>Authenticate to sources (SSH, user/password, API token)&lt;/li>
&lt;li>Validate source authenticity (PGP)&lt;/li>
&lt;li>Detect source changes based on update policies (semver)&lt;/li>
&lt;li>Fetch resources on-demand and on-a-schedule&lt;/li>
&lt;li>Package the fetched resources into a well-known format (tar.gz, yaml)&lt;/li>
&lt;li>Make the artifacts addressable by their source identifier (sha, version, ts)&lt;/li>
&lt;li>Make the artifacts available in-cluster to interested 3rd parties&lt;/li>
&lt;li>Notify interested 3rd parties of source changes and availability (status conditions, events, hooks)&lt;/li>
&lt;/ul>
&lt;p>Links:&lt;/p>
&lt;ul>
&lt;li>Source code
&lt;a href="https://github.com/fluxcd/source-controller" target="_blank">fluxcd/source-controller&lt;/a>&lt;/li>
&lt;li>Specification
&lt;a href="https://github.com/fluxcd/source-controller/tree/main/docs/spec" target="_blank">docs&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="source-watcher">Source watcher&lt;/h2>
&lt;p>The source-watcher is a GitOps toolkit controller
that extends Flux with advanced source composition and decomposition patterns.&lt;/p>
&lt;p>The source-watcher controller implements the &lt;strong>ArtifactGenerator&lt;/strong> API,
which allows Flux users to:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Compose&lt;/strong> multiple Flux sources (GitRepository, OCIRepository, Bucket) into a single deployable artifact&lt;/li>
&lt;li>&lt;strong>Decompose&lt;/strong> monorepos into multiple independent artifacts with separate deployment lifecycles&lt;/li>
&lt;li>&lt;strong>Optimize&lt;/strong> reconciliation by only triggering updates when specific paths change&lt;/li>
&lt;li>&lt;strong>Structure&lt;/strong> complex deployments from distributed sources maintained by different teams&lt;/li>
&lt;/ul>
&lt;p>Links:&lt;/p>
&lt;ul>
&lt;li>Source code
&lt;a href="https://github.com/fluxcd/source-watcher" target="_blank">fluxcd/source-watcher&lt;/a>&lt;/li>
&lt;li>Specification
&lt;a href="https://github.com/fluxcd/source-watcher/tree/main/docs/spec" target="_blank">docs&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Flux: Kustomize Controller</title><link>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/kustomize/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/kustomize/</guid><description>
&lt;p>The kustomize-controller is a Kubernetes operator,
specialized in running continuous delivery pipelines for infrastructure and
workloads defined with Kubernetes manifests and assembled with Kustomize.&lt;/p>
&lt;p>&lt;img src="https://deploy-preview-2413--fluxcd.netlify.app/img/kustomize-controller.png" alt="Kustomize Controller Diagram">&lt;/p>
&lt;p>Features:&lt;/p>
&lt;ul>
&lt;li>Reconciles the cluster state from multiple sources (provided by source-controller)&lt;/li>
&lt;li>Generates manifests with Kustomize (from plain Kubernetes YAMLs or Kustomize overlays)&lt;/li>
&lt;li>Decrypts Kubernetes secrets with Mozilla SOPS and KMS&lt;/li>
&lt;li>Validates manifests against Kubernetes API&lt;/li>
&lt;li>Impersonates service accounts (multi-tenancy RBAC)&lt;/li>
&lt;li>Health assessment of the deployed workloads&lt;/li>
&lt;li>Runs pipelines in a specific order (depends-on relationship)&lt;/li>
&lt;li>Prunes objects removed from source (garbage collection)&lt;/li>
&lt;li>Reports cluster state changes (alerting provided by notification-controller)&lt;/li>
&lt;/ul>
&lt;p>Links:&lt;/p>
&lt;ul>
&lt;li>Source code
&lt;a href="https://github.com/fluxcd/kustomize-controller" target="_blank">fluxcd/kustomize-controller&lt;/a>&lt;/li>
&lt;li>Specification
&lt;a href="https://github.com/fluxcd/kustomize-controller/tree/main/docs/spec" target="_blank">docs&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Flux: Helm Controller</title><link>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/helm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/helm/</guid><description>
&lt;p>The Helm Controller is a Kubernetes operator, allowing one to declaratively manage Helm chart
releases with Kubernetes manifests.&lt;/p>
&lt;p>&lt;img src="https://deploy-preview-2413--fluxcd.netlify.app/img/helm-controller.png" alt="Helm Controller Diagram">&lt;/p>
&lt;p>The desired state of a Helm release is described through a Kubernetes Custom Resource named &lt;code>HelmRelease&lt;/code>.
Based on the creation, mutation or removal of a &lt;code>HelmRelease&lt;/code> resource in the cluster,
Helm actions are performed by the controller.&lt;/p>
&lt;p>Features:&lt;/p>
&lt;ul>
&lt;li>Watches for &lt;code>HelmRelease&lt;/code> objects and generates &lt;code>HelmChart&lt;/code> objects&lt;/li>
&lt;li>Supports &lt;code>HelmChart&lt;/code> artifacts produced from &lt;code>HelmRepository&lt;/code> and &lt;code>GitRepository&lt;/code> sources&lt;/li>
&lt;li>Fetches artifacts produced by
&lt;a href="https://deploy-preview-2413--fluxcd.netlify.app/flux/components/source/">source-controller&lt;/a> from &lt;code>HelmChart&lt;/code> objects&lt;/li>
&lt;li>Watches &lt;code>HelmChart&lt;/code> objects for revision changes (including semver ranges for charts from &lt;code>HelmRepository&lt;/code> sources)&lt;/li>
&lt;li>Performs automated Helm actions, including Helm tests, rollbacks and uninstalls&lt;/li>
&lt;li>Offers extensive configuration options for automated remediation (rollback, uninstall, retry) on failed Helm install, upgrade or test actions&lt;/li>
&lt;li>Runs Helm install/upgrade in a specific order, taking into account the depends-on relationship defined in a set of &lt;code>HelmRelease&lt;/code> objects&lt;/li>
&lt;li>Prunes Helm releases removed from cluster (garbage collection)&lt;/li>
&lt;li>Reports Helm releases statuses (alerting provided by
&lt;a href="https://deploy-preview-2413--fluxcd.netlify.app/flux/components/notification/">notification-controller&lt;/a>)&lt;/li>
&lt;li>Built-in Kustomize compatible Helm post renderer, providing support for strategic merge, JSON 6902 and images patches&lt;/li>
&lt;/ul>
&lt;p>Links:&lt;/p>
&lt;ul>
&lt;li>Source code
&lt;a href="https://github.com/fluxcd/helm-controller" target="_blank">fluxcd/helm-controller&lt;/a>&lt;/li>
&lt;li>Specification
&lt;a href="https://github.com/fluxcd/helm-controller/tree/main/docs/spec" target="_blank">docs&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Flux: Notification Controller</title><link>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/notification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/notification/</guid><description>
&lt;p>The Notification Controller is a Kubernetes operator, specialized in handling inbound and outbound events.&lt;/p>
&lt;p>&lt;img src="https://deploy-preview-2413--fluxcd.netlify.app/img/notification-controller.png" alt="Notification Controller Diagram">&lt;/p>
&lt;p>The controller handles events coming from external systems (GitHub, GitLab, Bitbucket, Harbor, Jenkins, etc)
and notifies the GitOps toolkit controllers about source changes.&lt;/p>
&lt;p>The controller handles events emitted by the GitOps toolkit controllers (source, kustomize, helm)
and dispatches them to external systems (Slack, Microsoft Teams, Discord, Rocker)
based on event severity and involved objects.&lt;/p>
&lt;p>Links:&lt;/p>
&lt;ul>
&lt;li>Source code
&lt;a href="https://github.com/fluxcd/notification-controller" target="_blank">fluxcd/notification-controller&lt;/a>&lt;/li>
&lt;li>Specification
&lt;a href="https://github.com/fluxcd/notification-controller/tree/main/docs/spec" target="_blank">docs&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Flux: Image reflector and automation controllers</title><link>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/image/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-2413--fluxcd.netlify.app/flux/components/image/</guid><description>
&lt;p>The image-reflector-controller and image-automation-controller work together to update a Git
repository when new container images are available.&lt;/p>
&lt;ul>
&lt;li>The image-reflector-controller scans image repositories and reflects the image metadata in
Kubernetes resources.&lt;/li>
&lt;li>The image-automation-controller updates YAML files based on the latest images scanned, and commits
the changes to a given Git repository.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="https://deploy-preview-2413--fluxcd.netlify.app/img/image-update-automation.png" alt="Image Automation Controller Diagrams">&lt;/p>
&lt;p>Links:&lt;/p>
&lt;ul>
&lt;li>Reflector source code
&lt;a href="https://github.com/fluxcd/image-reflector-controller" target="_blank">fluxcd/image-reflector-controller&lt;/a>&lt;/li>
&lt;li>Reflector
&lt;a href="https://github.com/fluxcd/image-reflector-controller/tree/main/docs/spec" target="_blank">specification docs&lt;/a>&lt;/li>
&lt;li>Automation source code
&lt;a href="https://github.com/fluxcd/image-automation-controller" target="_blank">fluxcd/image-automation-controller&lt;/a>&lt;/li>
&lt;li>Automation
&lt;a href="https://github.com/fluxcd/image-automation-controller/tree/main/docs/spec" target="_blank">specification docs&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>