docs/user-guide/application-set-ui.md
[!WARNING] Alpha Feature (Since v3.5.0)
This is an alpha feature. The look, behavior, and APIs it consumes may change in future releases or be removed in backwards-incompatible ways.
The Argo CD Web UI includes views for ApplicationSets, with a list page, a resource tree, a slide-out details panel, and a preview tab that lets you see what Applications an ApplicationSet will generate.
ApplicationSets can also be managed outside the UI through:
kubectl or the argocd appset commandThe /applicationsets page is the entry point. It lives next to the
existing Applications list and shares the same filtering, search, and
view-preferences, so it should feel familiar.
You can reach it from the top-level navigation, or directly at
https://<your-argocd>/applicationsets.
What's on the page:
/ to focus it.Healthy, Progressing, Degraded,
Unknown). Filters are reflected in the URL so they can be shared or
bookmarked.[!TIP] The page shows ApplicationSets across every namespace your user has access to. RBAC is enforced exactly as on the CLI — if you can
getan ApplicationSet fromargocd appset get, you can see it here.
Selecting an ApplicationSet from the list opens its details page. The center of the page is a resource tree that visualizes the ApplicationSet and the child Applications it generates.
Things to know:
The top of the ApplicationSet details page shows a status bar summarizing the ApplicationSet at a glance: its health, the count of conditions by severity, and last updated.
Health is derived by the ApplicationSet controller from the
ApplicationSet's status.conditions and surfaced through the
status.health field on the resource. For the controller-side derivation
rules and how the field is populated, see
ApplicationSet Web UI.
The conditions modal shows each condition's type, status, the message reported by the controller and when it was last reported. This is usually the first place to look when an ApplicationSet shows up as Degraded or Unknown.
Clicking the ApplicationSet node (or any node on the tree) opens a slide-out panel from the right edge of the screen — the same pattern used elsewhere in Argo CD for resource details.
Shows metadata at a glance: name, namespace, creation timestamp, health, conditions, labels, annotations, and sync policy.
If the ApplicationSet has conditions, the CONDITIONS row links to a detailed conditions view so you can see warnings or errors raised by the controller (for example, a generator that failed to evaluate).
A read-only YAML view of the ApplicationSet's spec.
Kubernetes events for the ApplicationSet — useful when investigating why a particular generator parameter set produced (or failed to produce) an Application.
The Preview tab renders the Applications an ApplicationSet would generate, with a diff against the live state. It is covered in detail in the next section.
The PREVIEW tab shows the Applications an ApplicationSet would generate from its current spec. When you edit the spec, a diff between the proposed output and the live state is rendered.
The result is rendered in three sub-tabs:
| Tab | Shows |
|---|---|
DIFF | The default tab. A unified diff of each Application that would change. |
LIVE APPS | The Applications generated by the ApplicationSet on the cluster. |
DESIRED APPS | The Applications that would be generated if the proposed spec were applied. |
Each entry in DIFF represents one child Application and is categorized
as added (only in DESIRED APPS), removed (only in LIVE APPS), or
modified (present in both with field-level differences).
Click Edit on the ApplicationSet manifest card to make the YAML editable. Hit Preview again and the diff regenerates against your edits. Click Cancel to discard local edits.
[!IMPORTANT] Edits in the Preview tab are never saved. The tab is a sandbox; to persist a change you must update the ApplicationSet through your normal GitOps flow (or via
kubectl apply/argocd appset create).
Generating a preview requires permission to create ApplicationSets in the target project. If you don't have it, the Preview tab returns a clear permission-denied message instead of a diff. For the exact RBAC requirement, see ApplicationSet Web UI: RBAC for Preview.
For Applications that are generated by an ApplicationSet (i.e. that have
an ApplicationSet ownerReference), the Application UI surfaces the
parent ApplicationSet on the resource tree in two ways.
A small badge labeled with the parent ApplicationSet's name appears on the Application node. Clicking it jumps directly to the ApplicationSet details page.
In the Application's view preferences, a toggle — Show parent ApplicationSet — adds the parent ApplicationSet as a synthetic root node on the resource tree, with an edge to the Application. This is useful when you want a single view that includes both the ApplicationSet and the Application it produced.
When the toggle is on, the badge is hidden (since the parent is already rendered explicitly).
When you use the app-of-ApplicationSets pattern — an Application whose resources include an ApplicationSet — the ApplicationSet node on the parent Application's tree includes a preview feature in its slide-out panel. Selecting it opens a panel with a Preview experience similar to the one described above, scoped to the changes that would land when you sync the parent Application.
There are two important differences from the standalone Preview tab:
This is the bridge between "I have a pending sync on my parent Application" and "show me which child Applications would change as a result."
create
ApplicationSets in the target project will not be able to render a
preview, even if they can get the ApplicationSet.