Skip to main content

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-namespace was 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.existingSecret does 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.enabled is 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.backendUrl is 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.