Skip to main content

Verify Deployment

Before You Change Anything

These steps can affect shared dev workloads or the GitOps control layer. Confirm the target repo, environment, and intended owner before mutating anything.

After a CI or manual deployment, verify that the new code is running correctly in the cluster. This guide provides the commands to check every layer.

1
Step 1

Check ArgoCD sync

Start by confirming ArgoCD has picked up and applied the latest Git change.

kubectl get applications -n argocd -o wide

Look at the SYNC and HEALTH columns.

Sync StatusMeaning
SyncedCluster matches Git and the deploy has been applied
OutOfSyncGit has changes that are not applied yet
Health StatusMeaning
HealthyResources are up and ready
ProgressingRollout is still happening
DegradedSomething is broken and needs investigation

For one app only:

kubectl get application orchestrator -n argocd \
-o jsonpath='{.status.sync.status} {.status.health.status}'
2
Step 2

Verify pods are ready

Check that the target workloads are running and ready.

kubectl get pods -n backend
kubectl get pods -n userswarm-controller

Expected output is Running with the READY count matching, for example 1/1. If a pod shows CrashLoopBackOff, jump to CrashLoopBackOff.

3
Step 3

Confirm the image tag

Make sure the deployment is running the image you just shipped.

kubectl get deploy -n backend orchestrator userswarm-webhook \
-o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.template.spec.containers[0].image}{"\n"}{end}'
4
Step 4

Hit the health endpoint

Verify the orchestrator answers real traffic.

curl -s https://dev.api.crawbl.com/v1/health

Expected shape:

{"data":{"online":true,"version":"1.0.0"}}

For an in-cluster check:

kubectl port-forward svc/orchestrator 7171:7171 -n backend
curl -s http://localhost:7171/v1/health
5
Step 5

Check logs if anything looks wrong

Logs are the fastest way to confirm whether the process started cleanly or died during setup.

kubectl logs -n backend deployment/orchestrator -f
kubectl logs -n backend deployment/orchestrator --previous
kubectl logs -n backend deployment/userswarm-webhook -f

Look for startup confirmation, migration completion, and any ERROR or FATAL lines.

For cross-service log search without kubectl, use VictoriaLogs at dev.logs.crawbl.com. All container logs from every namespace land there automatically via Fluent Bit.

6
Step 6

Run E2E if you need higher confidence

CI already does this, but manual E2E is useful after a manual deploy or when debugging a rollout.

./crawbl test e2e --base-url https://dev.api.crawbl.com --e2e-token $CRAWBL_E2E_TOKEN -v

Quick Verification Checklist

# 1. ArgoCD sync status
kubectl get applications -n argocd -o wide

# 2. Pods running
kubectl get pods -n backend
kubectl get pods -n userswarm-controller

# 3. Image tag
kubectl get deploy -n backend orchestrator userswarm-webhook -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.template.spec.containers[0].image}{"\n"}{end}'

# 4. Health check
curl -s https://dev.api.crawbl.com/v1/health

# 5. Logs (if needed)
kubectl logs -n backend deployment/orchestrator --tail=50

Copy-paste this block for a fast post-deploy verification.


What's next: Daily ArgoCD Operations