envoyproxy / envoyproxy/gateway

Stale Route Parent condition present in Route object

Open
#774 6 comments 1 reaction 0 assignees View on GitHub
kind/bug stale
Dominant language
Go
Stars
3k
Forks
864
Avg merge
2d 2h
Merged PRs (30d)
140

Description

*Description*:
When the parent reference in a Route object (on both HTTPRoute and TLSRoute), is updated
to point to a non-existing gateway, the Route parent condition is not updated properly

*Repro steps*:
1. apply `examples/kubernetes/quickstart.yaml` - ensure that Gateway has proper Status conditions, with 1 listener condition
showing `attachedRoutes: 1`. Ensure that the HTTPRoute also has proper Parent Condition present. The httproute parent condition might look something like this
```yaml
status:
parents:
- conditions:
- lastTransitionTime: "2022-12-03T07:23:33Z"
message: Route is accepted
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
controllerName: gateway.envoyproxy.io/gatewayclass-controller
parentRef:
group: gateway.networking.k8s.io
kind: Gateway
name: eg
```
2. Now edit the HTTPRoute to point to a non-existing Gateway i.e.
```yaml
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: eg1
```

*Observation*
While the Gateway status properly specifies the `attachedRoutes: 0`, the HTTPRoute on the other hand shows - what appears to be a stale parent condition. i.e.
```yaml
status:
parents:
- conditions:
- lastTransitionTime: "2022-12-03T07:23:33Z"
message: Route is accepted
observedGeneration: 1
reason: Accepted
status: "True"
type: Accepted
controllerName: gateway.envoyproxy.io/gatewayclass-controller
parentRef:
group: gateway.networking.k8s.io
kind: Gateway
name: eg
```
Which is the same as seen earlier.
Note that the HTTPRoute now has no mention of Gateway `eg` as we changed the reference to `eg1`, but still the Condition shows a condition that was filled earlier, while it was connected to Gateway `eg`.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.