kubernetes-sigs / kubernetes-sigs/gateway-api
[UX] Add "Accepted" and "Programmed" status columns to HTTPRoute CRD printer columns
- Dominant language
- Go
- Stars
- 3k
- Forks
- 789
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 45
Description
**What would you like to be added**:
Currently, running `kubectl get httproutes` only shows Hostnames and Age. As a user, I cannot see if my route was actually accepted by the Gateway or if there is a configuration error without specifically running `describe` or using `-o yaml`.
**Why this is needed**:
I suggest adding `additionalPrinterColumns` to the HTTPRoute CRD definition for the `Accepted` and `Programmed` conditions.
While an HTTPRoute can have multiple parents, showing the status of the first parent (`.status.parents[0]`) serves the 90% use-case where a route belongs to a single Gateway, providing immediate feedback during development.
**Example output:**
```
NAME HOSTNAMES ACCEPTED PROGRAMMED AGE
api-route ["api.test.com"] True True 18h
sync-route ["cdn.test.com"] True Unknown 2m
error-route ["bad.test.com"] False False 5m
```
Including both allows users to distinguish between "The controller likes my YAML" (Accepted) and "The network is actually carrying traffic" (Programmed).
Other resources like `Gateway` show their status in the default output. Bringing this parity to `HTTPRoute` makes troubleshooting much faster.
Contributor guide
Research direction
Start with the HTTPRoute CRD definition and compare it with the existing Gateway default output. Check how kubectl renders the first parent’s Accepted and Programmed conditions, then verify that kubectl get httproutes shows both columns for the example status states; done means the default output provides those values without describe or -o yaml.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 56/100