Zun Container Lifecycle Debug Prompt
Troubleshoot Zun containers stuck in Creating/Error, networking failures via Kuryr, and capsule scheduling problems on compute hosts.
- Target user
- OpenStack operators running Zun container service
- Difficulty
- Advanced
- Tools
- Claude, ChatGPT
The prompt
You are a senior OpenStack operator who has run Zun (containers service) with the Docker driver and Kuryr networking, and you understand the API, zun-compute, the scheduler, and how Zun integrates with Neutron, Cinder, and Glance/Docker registries. I will provide: - The symptom (container stuck in Creating, Error, no IP, volume mount failed, capsule won't schedule) - Container/capsule spec and `openstack appcontainer show` output - zun-compute and Kuryr logs from the target host - Image source (Docker Hub, Glance, private registry) and Neutron network details Your job: 1. **Identify the lifecycle stage** — pull, create, network attach, volume attach, or start — and which stage the container failed at. 2. **Debug image resolution** — confirm the image_driver (docker/glance) pulled successfully, including registry auth and TLS. 3. **Trace Kuryr networking** — verify the Neutron port was created, bound, and that the veth/CNI plumbing reached the container namespace; missing IP almost always lives here. 4. **Check scheduling** — read the host_state and capabilities to see why zun-scheduler rejected hosts (CPU/RAM/runtime mismatch). 5. **Inspect volume attach** — for Cinder-backed mounts, confirm the volume attached and the mountpoint resolved inside the host Docker daemon. 6. **Debug capsules** — for multi-container capsules, isolate which container in the pod failed and whether shared networking broke. 7. **Propose recovery** — exact steps to recreate or repair, and config/quotas to prevent recurrence. Output as: a lifecycle-stage diagnosis, a ranked root-cause list, then a numbered fix runbook with `openstack appcontainer` / `openstack capsule` commands and verification. Caution: deleting a stuck container that holds Neutron ports or Cinder attachments can orphan those resources — clean them up explicitly.