Improve Pod Status Visualization for CrashLoopBackOff and ImagePullBackOff States
Release notes
You can use the dashboard for Kubernetes to monitor your deployed applications. Until now, pods with container errors like CrashLoopBackOff or ImagePullBackOff were only shown as "Pending" or "Running," making it difficult to identify problematic deployments without using kubectl. GitLab now properly displays these error states in the UI, showing the specific container error status. This improvement makes the Kubernetes dashboard more consistent with kubectl output and helps you quickly identify and troubleshoot failing pods without leaving the GitLab interface.
Proposal
Currently, our Kubernetes dashboard shows pods with CrashLoopBackOff and ImagePullBackOff states as "Running" or "Pending," creating inconsistency between our UI and what users see with kubectl. This leads to confusion as environments appear healthy in the dashboard when they're actually failing. This issue proposes enhancing our pod status visualization to correctly identify and display CrashLoopBackOff, ErrImagePull, ImagePullBackOff, and other error states in the UI, matching what users would see in kubectl.
Technical details:
The issue stems from relying solely on the pod's metadata.status.conditions object and metadata.status.phase, which reports CrashLoopBackOff and ImagePullBackOff as "Pending" We need to also check the containerStatuses[].state
field to detect these error states Add appropriate styling (badge type danger) to visually distinguish these failure states.
The status should be updated both in the pods table and in the pod details drawer.
Expected behavior:
- Pods in states like
CrashLoopBackOff
,ErrImagePull
, orImagePullBackOff
should be clearly labeled as such - Visual indicators (danger badges) should make it immediately obvious that these pods are in an error state
- Status labels should match what users see when using kubectl
- The status text should provide actionable information for troubleshooting
Design proposal
Current | Proposal |
---|---|
![]() |
![]() |
![]() |
![]() |
Intended users
- Priyanka (Platform Engineer)
- Sidney (Systems Administrator)
- Allison (Application Ops)
- Ingrid (Infrastructure Operator)