Flux is a GitOps toolkit for Kubernetes built around a set of controllers that continuously reconcile your cluster state against configuration stored in a Git repository. It is designed to run entirely inside the cluster and requires no external UI or CLI to operate once bootstrapped. This guide walks through how to get Flux running on Talos Linux — either via the machine configuration during bootstrap, or through Omni manifest sync on clusters managed by Omni.Documentation Index
Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, ensure you have the following:- Talos 1.3 or later.
kubectlconfigured to access your cluster.talosctlinstalled and configured, if deploying on Talos without Omni.omnictlinstalled and configured, if deploying using Omni. See Install and configure omnictl.
Installation on Talos
On Talos, you can bootstrap Flux usingextraManifests in the machine configuration. Talos fetches the Flux install manifest from the specified URL and applies it to the cluster at bootstrap time, so the Flux controllers are available as soon as the cluster comes up.
extraManifests require the node to have outbound HTTPS access to the manifest URL at bootstrap time. If your environment is air-gapped, see inlineManifests and extraManifests for alternatives.
Step 1. Create a patch file named flux-extra-manifest.yaml that references the Flux install manifest:
extraManifests to take effect:
source-controller, kustomize-controller, helm-controller, and notification-controller pods in a Running state. With the controllers up, you can point Flux at a Git repository to begin reconciling workloads.
Installation using Omni
If your clusters are managed by Omni, you can include Flux as part of your cluster template using Omni manifest sync. Omni applies the Flux install manifest once after the cluster becomes available, and the Flux controllers handle all subsequent reconciliation themselves. Since manifest sync works with local files rather than remote URLs, you need to download the Flux install manifest before referencing it in the cluster template. Step 1: Download the Flux install manifest:flux-system namespace:
flux-install-namespaced.yaml and flux-prereqs.yaml:
flux-prereqs manifest uses mode: full so Omni continuously ensures the namespace exists. The flux-install manifest uses mode: one-time because Flux manages its own resources after the initial apply.
Step 6: Apply the cluster template:
Running state. To inspect the manifest sync status, run: