helm uninstall removes the pod but leaves the Publisher record
in the Netskope tenant by default
. The chart can optionally delete
it on pod termination via the preStop hook
(enrollment.api.cleanupOnDelete=true) — see
autoscaling
for when that’s safe. If you didn’t enable it, this is the manual
flow.

1. Uninstall the Helm release

1
2
helm uninstall kubernetes-netskope-publisher -n npa-publisher
kubectl delete namespace npa-publisher

2. Delete the Publisher record via API

Find the publisher ID:

1
2
3
curl -s -H "Netskope-Api-Token: $TOKEN" \
"https://tenant.goskope.com/api/v2/infrastructure/publishers" \
| jq '.data.publishers[] | select(.common_name=="prod-eu-publisher") | .publisher_id'

Then delete:

1
2
3
curl -X DELETE \
-H "Netskope-Api-Token: $TOKEN" \
"https://tenant.goskope.com/api/v2/infrastructure/publishers/<publisher-id>"

3. (StatefulSet members) clean up suffixed names

If you ran a StatefulSet with replicas 2, you’ll have:

1
2
prod-eu-publisher-0
prod-eu-publisher-1

Repeat step 2 for each. The Netskope console Delete action works
just as well; the API is just scriptable.

What about associated Private Apps?

Deleting a Publisher record automatically detaches it from any Private
Apps it was assigned to. Apps with zero remaining Publishers become
unreachable to end users until you attach a replacement. To check
before deleting:

1
2
curl -s -H "Netskope-Api-Token: $TOKEN" \
"https://tenant.goskope.com/api/v2/infrastructure/publishers/<id>/apps" | jq