Skip to content

Stale Route Parent condition present in Route object #774

@chauhanshubham

Description

@chauhanshubham

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
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
  1. Now edit the HTTPRoute to point to a non-existing Gateway i.e.
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.

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions