About this scenario
shop-web deploys apps/web from Git into the shop namespace. Someone added sync waves to order the rollout: the volume claim first, then the Deployment and Service, then the Ingress. The first sync has been running ever since and no Pod exists.
Find what the sync waits for and fix it in Git: the repository is in the editor under git/shop-deploy/, and changes reach the cluster after git commit, git push and a sync.
Once the sync goes through, one more resource keeps the application from turning Healthy. Fix that in Git too, and finish with http://shop.example.com answering.
Objectives
- Find the resource the sync is waiting for
- In Git, the claim no longer syncs in a wave before the Pod that uses it
- The sync finishes: web runs with its volume bound
- Find the resource that keeps the application Progressing
- shop-web is Synced and Healthy, and http://shop.example.com answers
What you'll practice
- An application's health is the worst health among its resources. One Ingress in Progressing next to healthy workloads gives a Progressing application.
- During a sync Argo CD waits for each wave to be Healthy before it applies the next. A claim of a
WaitForFirstConsumer class in an earlier wave than its Pod can never become Healthy, and the sync waits forever. - A running operation blocks new ones.
argocd app terminate-op ends it; then sync again from the fixed revision. - Argo CD's built-in checks call an Ingress, and a Service of type LoadBalancer, Healthy only when
status.loadBalancer.ingress has an entry. An Ingress no controller claims never gets one. - Fix the manifests in Git. A change made with kubectl leaves the application OutOfSync and is undone by the next sync.
How the playground works
The cluster runs entirely in your browser: a simulated API server, scheduler, kubelets and controllers, with virtual nodes in three zones. kubectl output follows the real formats, errors use the real messages, and the add-ons (CSI storage, Traefik, Envoy Gateway, cert-manager, Helm, Flux, Argo CD, Kyverno, Cilium, Istio) behave like their real counterparts for the common paths. It's a simulation, so some behavior is simplified. Your progress is saved in this browser.