Uninstalling Porch Server#
Navigate to the directory where you installed Porch:
cd porch-{{% params "latestTag" %}}
Remove Porch components using kpt:
kpt live destroy
This will delete all Porch resources from your cluster, including:
- Porch server deployment
- Function runner deployment
- Porch controllers deployment
- Services, ConfigMaps, and Secrets
- Custom Resource Definitions (CRDs)
{{% alert color="warning" title="Warning" %}}
Destroying Porch will not delete your Git repositories or the packages stored in them. However, PackageRevision and Repository resources in your cluster will be removed.
{{% /alert %}}
Verify Uninstallation#
Check that Porch components are removed:
kubectl get all -n porch-system
You should see:
No resources found in porch-system namespace.
Verify Porch API resources are removed:
kubectl api-resources | grep porch
This should return no results.
Uninstalling porchctl CLI#
Remove the porchctl binary from your system:
If installed to /usr/local/bin/ (requires root):
sudo rm /usr/local/bin/porchctl
If installed to ~/.local/bin/:
rm ~/.local/bin/porchctl
Remove autocompletion (if configured):
rm ~/.local/share/bash-completion/completions/porchctl
Verify CLI Removal#
Check that porchctl is no longer available:
porchctl version
You should see:
bash: porchctl: command not found
Clean Up Installation Files#
Remove the downloaded Porch package directory:
cd ..
rm -rf porch-{{% params "latestTag" %}}
Troubleshooting#
Resources not deleting#
If kpt live destroy hangs or fails:
-
Check for finalizers blocking deletion:
kubectl get packagerevisions -A -o yaml | grep finalizers -
Force delete stuck resources:
kubectl delete packagerevisions --all -A --force --grace-period=0 kubectl delete repositories --all -A --force --grace-period=0 -
Manually delete the namespace:
kubectl delete namespace porch-system --force --grace-period=0
CRDs remain after uninstall#
If Porch CRDs are still present:
kubectl get crds | grep porch
Manually delete them:
kubectl delete crd packagerevisions.porch.kpt.dev
kubectl delete crd packagerevisionresources.porch.kpt.dev
kubectl delete crd repositories.config.porch.kpt.dev
kubectl delete crd functions.config.porch.kpt.dev
kubectl delete crd packagevariants.config.porch.kpt.dev
kubectl delete crd packagevariantsets.config.porch.kpt.dev
Complete Cluster Cleanup#
If you're using a local test cluster (kind/minikube) and want to start fresh:
kind:
kind delete cluster
minikube:
minikube delete
This removes the entire cluster, including Porch and all other resources.