Uninstalling Porch
Uninstalling Porch Server
Navigate to the directory where you installed Porch:
cd porch-1.5.6
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)
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.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-1.5.6
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.