For the complete documentation index, see llms.txt. Markdown versions of all docs pages are available by appending .md to any docs URL.
Uninstall
Remove kagent and Agent Substrate from a cluster, including the identity material and storage that Helm does not own.
Helm removes what its releases own. No release owns the identity material, the development database resources, or the volume behind that database, so a Helm uninstall leaves all three in the cluster.
Helm removes:
- Every
kagent.devandate.devcustom resource definition, and with them every Harness, AgentTemplate, WorkerPool, and SandboxConfig in the cluster - The object storage volume holding every Actor snapshot
Helm leaves behind:
- The development PostgreSQL Deployment, Service, Secret, and PersistentVolumeClaim that
kagent installcreated in the kagent namespace - The actor identity pools and the
ate-api-authenticationConfigMap that the install created inate-system - The service DNS, pod identity, and PostgreSQL certificate authority pools that the install created in
podcertificate-controller-system - The
kagent,ate-system, andpodcertificate-controller-systemnamespaces
This guide includes both Helm steps to uninstall its owned components, and manual steps to remove separate material that can block a later reinstallation.
Before you begin
- Confirm that you have administrative access to the cluster.
- Back up any Harness, AgentTemplate, and ModelConfig definitions that you want to keep.
- Confirm that nothing outside kagent depends on the agents that you are removing.
Caution
Uninstalling deletes every kagent resource in every namespace, along with all agent conversation state and all stored snapshots. None of it can be recovered afterward. Back up anything you want to keep before you start.
Uninstall kagent
Remove the kagent release before the CRDs release, because deleting the definitions first strands the controller.
Uninstall the kagent chart.
helm uninstall kagent -n kagentUninstall the CRDs chart. This step deletes every
kagent.devcustom resource definition, and Kubernetes deletes every resource of those kinds across all namespaces with them.helm uninstall kagent-crds -n kagent
Note
The kagent uninstall command is a convenience path that removes the same two kagent releases in the same order. It does not remove Agent Substrate or the development PostgreSQL resources that kagent install created, so the rest of this page still applies.
Uninstall Agent Substrate
Agent Substrate is a separate installation in the ate-system namespace, and no kagent command removes it.
Uninstall the Agent Substrate chart.
helm uninstall substrate -n ate-systemUninstall the Agent Substrate PodCertificate chart.
helm uninstall substrate-podcert -n podcertificate-controller-systemUninstall the Agent Substrate CRDs chart, which deletes the
workerpools,sandboxconfigs, andcsidriverconfigsdefinitions.helm uninstall substrate-crds -n ate-system
Remove the identity material
The kagent install command created the identity pools outside Helm, so no release owns them and no uninstall removes them. A later install that tries to create a pool that already exists fails with a message naming the Secret.
Error: while uploading pool state to secret: secrets "actor-id-jwt-pool" already exists
Delete the actor identity pools and the material derived from them.
kubectl delete secret actor-id-jwt-pool actor-id-ca-pool actor-id-ca-certs -n ate-system kubectl delete configmap ate-api-authentication -n ate-systemDelete the service DNS, pod identity, and PostgreSQL CA pools.
kubectl delete secret -n podcertificate-controller-system \ service-dns-ca-pool pod-identity-ca-pool postgres-ca-poolDelete the development PostgreSQL resources that
kagent installcreated.kubectl delete -n kagent \ deployment/kagent-postgresql \ service/kagent-postgresql \ configmap/kagent-postgresql \ secret/kagent-postgres \ pvc/kagent-postgresql \ --ignore-not-found
Important
Deleting the development PostgreSQL PersistentVolumeClaim removes all conversation state that the development install stored. Back up anything that you need before you delete it.
Remove the namespaces
Deleting the namespaces removes anything that the preceding steps missed, including volumes left by optional components.
kubectl delete namespace kagent ate-system podcertificate-controller-systemConfirm that nothing remains.
kubectl get crd | grep -E 'kagent\.dev|ate\.dev'
kubectl get ns kagent ate-system podcertificate-controller-systemThe first command prints nothing. The second reports that it found none of the three namespaces.