Skip to main content
Argo CD is a declarative, GitOps-based continuous delivery controller for Kubernetes. It continuously reconciles the live state of your cluster against the desired state defined in a Git repository, making it a natural fit for managing workloads on Talos Linux. This guide covers how to deploy Argo CD on Talos Linux, either by bootstrapping it through the machine configuration or through Omni manifest sync for clusters managed by 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 self-managed Talos clusters

On Talos, you can install Argo CD after the cluster is up, or embed the install manifest in the machine configuration so it is running as soon as the cluster is healthy.
Install Argo CD with kubectl once the cluster is up and healthy.Step 1. Create the argocd namespace:
Step 2. Apply the Argo CD install manifest:
Step 3. Verify that the Argo CD pods are running in the argocd namespace:
You should see pods for argocd-server, argocd-repo-server, argocd-application-controller, and supporting components all in a Running state.
From here, Argo CD manages itself and any applications you configure in your Git repository.

Installation on Omni-managed clusters

If you manage your clusters with Omni, you can deploy Argo CD declaratively using Omni manifest sync. Because Argo CD manages its own state after bootstrapping, the manifest is applied with mode: one-time, Omni installs it once, and Argo CD takes over from there. Manifest sync does not support fetching manifests from remote URLs, so you first download the Argo CD install manifest locally, then reference it in your cluster template. Step 1: Download the Argo CD install manifest:
Step 2: Use kustomize to inject namespace fields into every resource in the Argo CD 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 argocd namespace:
Step 5. Create the cluster template and reference both manifests argocd-install-namespaced.yaml and argocd-prereqs.yaml:
The argocd-prereqs manifest uses mode: full so Omni continuously ensures the namespace exists. The argocd-install manifest uses mode: one-time because Argo CD 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 Argo CD pods are running:
All Argo CD 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. Step 8: Access the Argo CD UI:
Open https://localhost:8080 and log in with the username admin. Retrieve the initial password with: