# Managing ApplicationSets in the Web UI {#managing-applicationsets-in-the-web-ui}




> [!WARNING]
> **Alpha Feature (Since v3.5.0)**
>
> This is an [alpha](https://github.com/argoproj/argoproj/blob/main/community/feature-status.md#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:

- The CLI - `kubectl` or the `argocd appset` command
- The generated child Applications, viewed individually in the UI
- A parent App-of-Apps, if the ApplicationSet was one of its managed resources


## ApplicationSets list page {#applicationsets-list-page}


The `/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`.

![ApplicationSets list page](/_media/e463468728e5460fa8b5.png)

What's on the page:

- **Search bar** — substring matches against name and namespace. Use the
  keyboard shortcut `/` to focus it.
- **Filters sidebar** — filter by project, namespace, labels, and
  ApplicationSet health status (`Healthy`, `Progressing`, `Degraded`,
  `Unknown`). Filters are reflected in the URL so they can be shared or
  bookmarked.
- **Health summary** — a pie chart at the top summarizes the health of
  ApplicationSets matching the current filter.
- **Tile / table views** — toggle between a tile grid and a table view.
  The table view shows name, namespace, project, health, conditions, and
  the number of generated Applications.



> [!TIP]
> The page shows ApplicationSets across every namespace your user has
> access to. RBAC is enforced exactly as on the CLI — if you can `get` an
> ApplicationSet from `argocd appset get`, you can see it here.



## ApplicationSet resource tree {#applicationset-resource-tree}


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.

![ApplicationSet resource tree](/_media/b8e569e6ad5e53b25c3c.png)

Things to know:

- The root node is the ApplicationSet itself. Each downstream node is a
  child Application generated by the ApplicationSet.
- Health and sync status icons render on each node the same way they do
  on the Application resource tree.
- Clicking a child Application navigates to that Application's own
  details page.


## Status bar: health, conditions, age {#status-bar-health-conditions-age}


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**.

![ApplicationSet status bar](/_media/c94f21faa4b9221940b6.png)

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](https://sourcey-argocd.pages.dev/operator-manual/applicationset/Web-UI/index.md#statushealth-on-the-applicationset-cr).


### Conditions {#conditions}


![ApplicationSet conditions modal](/_media/68bbc6cf12278946f38e.png)

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**.


## Slide-out panel: Summary, Manifest, Events, Preview {#slide-out-panel-summary-manifest-events-preview}


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.


### Summary {#summary}


Shows metadata at a glance: name, namespace, creation timestamp,
health, conditions, labels, annotations, and sync policy.

![Summary tab](/_media/08f614ebfc68b5aa26ce.png)

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).


### Manifest {#manifest}


A read-only YAML view of the ApplicationSet's `spec`.


### Events {#events}


Kubernetes events for the ApplicationSet — useful when investigating why
a particular generator parameter set produced (or failed to produce) an
Application.


### Preview {#preview}


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.


## Preview: see what your ApplicationSet will generate {#preview-see-what-your-applicationset-will-generate}


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.

![Preview tab demo](/_media/2bd88988d15babf7d750.gif)

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).


### Editing the spec {#editing-the-spec}


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]
> **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`).



### Permission-denied behavior {#permission-denied-behavior}


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](https://sourcey-argocd.pages.dev/operator-manual/applicationset/Web-UI/index.md#preview).


## Changes to Applications generated by an ApplicationSet {#changes-to-applications-generated-by-an-applicationset}


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.


### Owner badge {#owner-badge}


A small badge labeled with the parent's name appears on the Application
node. Clicking it jumps directly to the parent's details page. For an
app-of-apps child, the badge shows the parent Application's name and links to that Application.
For an Application created from an ApplicationSet, it shows the ApplicationSet.

![ApplicationSet owner badge on an Application](/_media/e8ec8789d60c14529d08.png)


### Show / hide the application's parent node {#show-hide-the-applications-parent-node}


In the Application tree view preferences, a toggle —
**Show application's parent node** — adds the Application's parent as a
synthetic root node on the resource tree. This is useful when you want a single view that includes
both the parent and the Application it produced.

![Show parent node toggle](/_media/434371034be369261311.png)

When the toggle is on, the badge is hidden (since the parent is already
rendered explicitly).


### Per-Application preview from the app-of-appset pattern {#per-application-preview-from-the-app-of-appset-pattern}


When you use the
[app-of-ApplicationSets pattern](https://sourcey-argocd.pages.dev/operator-manual/applicationset/Use-Cases/index.md) — 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.

![App-of-AppSet preview](/_media/2cc2022ff5ce6eafa435.png)

There are two important differences from the standalone Preview tab:

- **Desired state comes from Git, not an editor.** The proposed
  ApplicationSet is the target manifest tracked by the parent
  Application (i.e. what's in Git). There is no YAML editor in this panel.
- **Only available when the ApplicationSet is OutOfSync.** If the parent
  Application's ApplicationSet resource is already in sync, there is no
  diff to show — the panel renders a short status message instead.

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."


## Known limitations {#known-limitations}


- The Preview tab compares whole Application manifests. It does **not**
  recurse into the Kubernetes resources inside each child Application —
  for that, sync the child Application and use the existing Application
  diff view.
- Generators that depend on external systems (Git, SCM Provider, Pull
  Request, Cluster) are re-evaluated each time you click **Preview**. If
  the upstream system is slow or flaky, the preview will reflect that.
- The UI honors ApplicationSet RBAC. Users who cannot `create`
  ApplicationSets in the target project will not be able to render a
  preview, even if they can `get` the ApplicationSet.
