Skip to main content
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 and Omni.

Prerequisites

Before you begin, ensure you have the following:
  • Talos 1.3 or later.
  • kubectl configured to access your cluster.
  • talosctl installed and configured, if deploying on Talos without Omni.
  • omnictl installed and configured, if deploying using Omni. See Install and configure omnictl.

Installation on Talos

On Talos, you can install Flux after the cluster is up, or reference the install manifest from the machine configuration so it is running as soon as the cluster is healthy.
Install Flux with kubectl once the cluster is up and healthy.Step 1. Apply the Flux install manifest:
Step 2. Confirm that the Flux controllers are running:
You should see the source, kustomize, helm, and notification controllers in a Running state.
From here, configure Flux to reconcile against your Git repository. See the Flux documentation for bootstrapping against a repository.

Installation on 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:
Step 2: Use kustomize to inject namespace fields into every resource in the Flux upstream manifest. Omni manifest sync requires namespaces to be explicitly set on every resource:
Step 3: Build the namespaced manifest:
Step 4: Create the namespace prerequisite that defines the flux-system namespace:
Step 5. Create the cluster template and reference both manifests flux-install-namespaced.yaml and flux-prereqs.yaml:
The 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:
Omni stores the manifest definitions and waits until the Kubernetes API is available and the cluster is healthy before applying them. Step 7: Verify that the Flux pods are running:
All Flux pods should appear in a Running state. To inspect the manifest sync status, run:
See Sync Kubernetes Manifests for more details on sync modes and status monitoring.