Skip to main content

Deleting an Application

How to delete an application from the platform.

This is destructive

Deleting an application removes its ArgoCD Application, the Kubernetes namespace, and everything inside (pods, services, configmaps, secrets, PVCs, etc.). This cannot be undone.

Permissions

If you don't have access to delete the namespace or the ArgoCD Application, ask your Platform Team for help.

In Scope

This guide deletes the following from the platform:

  • The ArgoCD Application and the Application it manages.
  • The namespace and all resources inside it (deployments, services, configmaps, secrets, ingress, PVCs, network policies).

Out of Scope

You'll need to manage these yourself — the platform delete won't touch them:

  • Externally provisioned resources — cloud databases, DNS records, message queues, or anything provisioned outside the platform.
  • Externally persisted state or actions produced by the service — e.g. rows written to an external database, messages published to an external broker, files written to external storage.
  • Container images in JFrog — remove separately if desired.
  • Observability data — historical logs, metrics, and traces stay in their respective tools.
  • The source repository — archive or delete separately.

Delete Steps

1. Delete the app's platform folder

Open a PR against your .platform repo and delete the correct path for the scope of removal, then merge to main:

  • To remove the application from all environments, delete .platform/kubernetes/<app-name>/ once.
  • To remove the application from only specific environments, delete only those environment subfolders, for example .platform/kubernetes/<app-name>/dev, .platform/kubernetes/<app-name>/stg, or .platform/kubernetes/<app-name>/prd. Finding <app-name>: use the folder name under .platform/kubernetes/ in your .platform repo for that application/environment. If you're not sure, check the value passed to your application repo's deployment workflow as directory-name (or PLATFORM_NAMESPACE) and use that value. Do not rely on .platform/kubernetes/base/application.yaml's name, because it can differ from the folder/namespace that must be deleted.
Deleting from a single environment

You don't have to remove the application from every environment. To delete it from just one, keep the base .platform/kubernetes/<app-name>/ folder and delete only the matching .platform/kubernetes/<app-name>/<env>/ subfolder (e.g. .platform/kubernetes/<app-name>/dev/).

2. Delete the Application from ArgoCD (unless automated)

If vacuum-argo is set for the target environment(s), ArgoCD deletes the ArgoCD Application(s) and their resources automatically within about 15 minutes — skip to Step 3 to confirm.

If vacuum-argo is not set, delete the ArgoCD Application yourself (or ask a Platform Admin if you don't have access). Pick whichever path you're comfortable with:

About vacuum-argo

vacuum-argo is a Platform Team setting that lives in .platform/organization/environments.yaml (per environment) or .platform/organization/organization.yaml (all environments). Developers don't typically edit these files — contact your Platform Team if you'd like it enabled.

  1. Open the Argo CD UI for the target environment(s).
  2. Find the application by <app-name> and click Delete.
  3. Confirm when prompted.

Deleting an Application in the Argo CD UI

3. Verify

Open the Argo CD UI and confirm <app-name> no longer appears in the applications list.

Argo CD UI showing the deleted application is no longer listed

Rollback

If you deleted an application by mistake:

  • Revert your PR to restore the .platform/kubernetes/<app-name>/ folder, or
  • Run another deployment to deploy a new version of the application.
warning

In-cluster state (PVC data, secrets not backed by an external store) is gone once the namespace is deleted. You can recreate the deployment — not the data.