ArgoCD
Full ArgoCD Application lifecycle — sync, rollback, delete, create, repositories — entirely through the Kubernetes API. No ArgoCD API server access needed.
What you can see
Via the Kind selector (Cmd/Ctrl + K):
- Application — ArgoCD Applications
- AppProject — Projects
- ApplicationSet — ApplicationSets
- Repositories — a virtual kind that lists repo Secrets (labeled
argocd.argoproj.io/secret-type: repository)
The Applications table includes custom columns: NAME, SYNC, HEALTH, REPO, PATH, REVISION, AGE.
Application Info window
Open an Application (double-click or right-click → Info). Tabbed viewport:
Overview
- Sync status, Health status (color-coded badges).
- Source repo, path, target revision, destination cluster/namespace.
- Container images summary across managed resources.
- Clickable URLs — auto-extracted from managed Ingress, IngressRoute, and Gateway API resources.
- Deployment history snapshot.
Resources
Every Kubernetes resource managed by this Application, with:
- Real-time health updates via WebSocket watcher.
- Action buttons: Logs, Restart, Shell, Delete.
- Clickable resource names that open their Info.
History
Revision timeline. Each entry can be:
- Diffed against another revision (side-by-side).
- Rolled back to — creates a sync targeting that revision.
Sync
Sync tooling:
- Sync — normal sync.
- Dry-run Sync — shows what would change without applying.
- Prune / Force / Replace options per run.
Context menu actions
Right-click any Application:
| Action | Effect |
|---|---|
| Sync | Triggers a sync (via Application operation field) |
| Dry-run Sync | Plan-only sync |
| Hard Refresh | argocd.argoproj.io/refresh: hard annotation |
| Normal Refresh | argocd.argoproj.io/refresh: normal annotation |
| Suspend Auto-Sync | Turns off syncPolicy.automated |
| Resume Auto-Sync | Re-enables it |
| Diff OutOfSync | Opens diff of live vs desired for out-of-sync resources |
| Rollback | Via History tab |
| Delete (cascade) | Finalizer set — removes all managed resources |
| Delete (non-cascade / orphan) | Removes the Application only, leaves resources |
Creating an Application
From Dots menu → Create Application (shown when ArgoCD is the current kind):
Form fields:
- Name
- Namespace — usually
argocd - Project — defaults to
default - Source: Repository URL, Path, Target Revision (branch/tag/commit).
- Destination: Cluster server URL, Namespace.
- Sync policy: Automated (toggle), Prune (toggle), Self-heal (toggle), Allow-empty (toggle).
- Sync options (multi-select):
CreateNamespace=true,ApplyOutOfSyncOnly=true, etc.
Click Create — the Application manifest is applied via server-side apply.
Repositories
The virtual Repositories kind lists Secrets labeled as ArgoCD repositories.
Columns: NAME, TYPE, URL, PROJECT, CONNECTION STATE.
Adding a repository
From the Repositories list → Add Repository:
| Source type | Fields |
|---|---|
| Git (HTTPS) | URL, username, password / token |
| Git (SSH) | URL, SSH private key, optional known-hosts |
| Helm | URL, optional username/password |
| OCI | URL, optional credentials |
Also:
- TLS verify / Insecure skip verify.
- Enable LFS (Git only).
- Project — scope the repo to a Project or leave blank for global.
Saving writes a Secret with the appropriate ArgoCD labels and annotations.
Real-time health
Each managed resource in an Application's Resources tab has a WebSocket watch running — you'll see health badges flip in real time as pods come up or go down.
Tips
- Can't see Applications? — ArgoCD installs the CRDs into whatever namespace the controller runs in (usually
argocd). Switch namespace or use All namespaces. - URLs missing from Overview? — Kubezilla auto-detects them from Ingress, Traefik IngressRoute, and Gateway API HTTPRoute. If your app uses something exotic (Istio VirtualService, etc.), they won't be picked up.
- Delete didn't remove resources? — you chose non-cascade delete. Re-delete with cascade, or clean up manually.
- Sync says "Unknown"? — ArgoCD controller may be paused or unreachable. Check the
argocd-application-controllerpod.