Uninstall#
How to uninstall Nsight Operator.
Uninstalling Nsight Operator#
helm uninstall nsight-operator -n nsight-operator
helm uninstall removes the Deployments, Services, ConfigMaps, RBAC,
and the default CRs created by the chart.
Note
In multi-tenant mode, tenant namespaces may hold auto-provisioned or manually deployed CRs (NsightCoordinator, NsightGateway, etc.) that are independent of the Helm release. See Quickstart Example (Multitenant Mode) for tenant-side cleanup.
Reclaiming storage#
helm uninstall does not delete PersistentVolumeClaims created by
StatefulSets (MinIO when persistence is enabled, the OTel collector).
Delete them manually to reclaim the underlying storage.
Warning
Deleting these PVCs is irreversible and permanently destroys their
contents – including MinIO-hosted .nsys-rep profiling reports
and any buffered OTel collector data. Before running the command
below, confirm the reports are no longer needed, or back up the data
to external S3 / a different cluster. There is no helm rollback
for PVC contents once they are deleted.
kubectl delete pvc -l app.kubernetes.io/name=nsight-operator -n nsight-operator
Removing the Dynamo helper configuration#
If you used nsight_operator_dynamo.py to install (single-tenant) or
configure (multi-tenant) a namespace, run the matching teardown subcommand
in addition to helm uninstall so that Dynamo-managed resources –
the NsightOperatorProfileConfig CR, the GPU-metrics DaemonSet and its
ConfigMap, and any tenant-namespace Secrets / ConfigMaps the script
created – are removed:
# Single-tenant
python3 nsight_operator_dynamo.py -n nsight-operator uninstall
# Multi-tenant (per tenant namespace)
python3 nsight_operator_dynamo.py -n <tenant-ns> unconfigure
If you only used the Helm chart (no Dynamo helper), helm uninstall on
its own is sufficient.
Air-gapped clusters#
helm uninstall schedules a pre-delete Helm Job that runs a small
distroless Python image to remove dynamically created CRs before the
chart’s RBAC is torn down. By default that image is pulled from
nvcr.io/nvidia/distroless/python; in air-gapped clusters with no
egress to nvcr.io the Job’s Pod stays in ImagePullBackOff and
helm uninstall hangs until it times out.
To avoid this, mirror the distroless Python image to your private
registry and override global.nsightCloud.distrolessPythonImage and
global.nsightCloud.distrolessPythonImagePullSecrets if the mirror
requires authentication at install time, so that the value is already
baked into the rendered pre-delete Job when uninstall runs:
helm install nsight-operator <chart> -n nsight-operator \
--set global.nsightCloud.distrolessPythonImage=registry.example.internal/nvidia/distroless/python:3.14-v4.0.9 \
--set global.nsightCloud.distrolessPythonImagePullSecrets[0].name=my-mirror-pull-secret