Install Troubleshooting
When installation fails, start with Helm release, Pod state, Service exposure, and CRD registration. Then inspect image pulls, certificates, permissions, and License.
Helm Release Missing
helm ls -n disaster-system
helm status testudo -n disaster-system
Common causes:
- Namespace was not created and
--create-namespacewas not used. - Chart path is wrong.
- values file has syntax errors.
- Release was installed into another namespace.
Pod Does Not Start
kubectl -n disaster-system get pods
kubectl -n disaster-system describe pod <pod-name>
kubectl -n disaster-system logs <pod-name>
Common causes:
- Image pull failure.
imagePullSecret.existingSecretdoes not exist.- Nodes cannot reach the registry.
- ConfigMap or Secret mount failure.
- Insufficient resources or scheduling failure.
CRDs Are Missing
kubectl api-resources | grep testudo.softcdata.com
kubectl get crd | grep disaster
If CRDs are missing, check whether the Chart manifest contains CRDs and whether the installer account can create CRDs.
Webhook Fails
Symptoms:
- CRD instance creation fails with admission webhook errors.
- Webhook service has no endpoints.
- cert-manager is not installed but
webhook.certManager.enabledis true.
Troubleshooting:
kubectl -n disaster-system get svc,endpoints | grep webhook
kubectl get validatingwebhookconfiguration | grep disaster
kubectl -n disaster-system get certificate,issuer
If cert-manager is not available, disable cert-manager integration and provide TLS Secret and CA bundle through operations.
Console Cannot Open
kubectl -n disaster-system get svc disaster-web
curl -I http://<NodeIP>:30087
kubectl -n disaster-system port-forward svc/disaster-web 8087:80
Common causes:
- NodePort blocked by firewall.
- web Pod is not ready.
web.backendUrlis wrong.- server Service is unreachable.
Server API Fails
kubectl -n disaster-system get svc disaster-server
kubectl -n disaster-system logs deploy/disaster-server
kubectl -n disaster-system port-forward svc/disaster-server 30081:30081
curl http://127.0.0.1:30081/healthz
If /healthz works but business APIs fail, check JWT, RBAC, CRDs, and Event permissions.
License Issues
Default installation does not create a real License Secret through Helm. Install the official License after installation through the platform API or CLI. Do not put real License content in public values files.