Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TCPRoute delete not propagated #6316

Open
bhamon opened this issue Apr 4, 2024 · 3 comments
Open

TCPRoute delete not propagated #6316

bhamon opened this issue Apr 4, 2024 · 3 comments
Labels
area/gateway-api Issues or PRs related to the Gateway (Gateway API working group) API. kind/bug Categorizes issue or PR as related to a bug.

Comments

@bhamon
Copy link

bhamon commented Apr 4, 2024

What steps did you take and what happened:
I create a Gateway with a TCP listener and confirm it's admitted.
I create a TCPRoute and confirm it's accepted.
An external call to the listener port works as expected.

I then delete the TCPRoute.
Nothing gets logged on the contour gateway or on the envoy pod (compared as when the TCPRoute is created).
An external call to the listener port still works.

I then update the Gateway to add a new listener.
The Gateway gets reconciled.
An external call to the listener port doesn't work anymore.

What did you expect to happen:
The service shouldn't be mapped to the listener after route deletion.

Environment:

  • Contour version: 1.28.2
  • Kubernetes version: (use kubectl version): 1.29.1 (same behavior on 1.28.2 before upgrade)
@bhamon bhamon added kind/bug Categorizes issue or PR as related to a bug. lifecycle/needs-triage Indicates that an issue needs to be triaged by a project contributor. labels Apr 4, 2024
Copy link

github-actions bot commented Apr 4, 2024

Hey @bhamon! Thanks for opening your first issue. We appreciate your contribution and welcome you to our community! We are glad to have you here and to have your input on Contour. You can also join us on our mailing list and in our channel in the Kubernetes Slack Workspace

Copy link

github-actions bot commented Jun 4, 2024

The Contour project currently lacks enough contributors to adequately respond to all Issues.

This bot triages Issues according to the following rules:

  • After 60d of inactivity, lifecycle/stale is applied
  • After 30d of inactivity since lifecycle/stale was applied, the Issue is closed

You can:

  • Mark this Issue as fresh by commenting
  • Close this Issue
  • Offer to help out with triage

Please send feedback to the #contour channel in the Kubernetes Slack

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 4, 2024
@skriss
Copy link
Member

skriss commented Jun 13, 2024

Yep, I can repro this using Contour 1.28.2, however it's fixed as of 1.29.

Root cause:

In 1.29 we moved away from using controller-runtime controllers for Gateway API resources and instead directly use client-go informers (ref. https://github.com/projectcontour/contour/blob/v1.29.0/cmd/contour/serve.go#L1013-L1042), which give you the full state of the deleted object on deletes, so the DAG cache deletion logic works as intended.

We might consider backporting a fix for this (we'd likely just always trigger a DAG rebuild on any Gateway API resource deletion), however easiest path forward is to upgrade to 1.29.

Thanks for the report!

@skriss skriss added area/gateway-api Issues or PRs related to the Gateway (Gateway API working group) API. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. lifecycle/needs-triage Indicates that an issue needs to be triaged by a project contributor. labels Jun 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/gateway-api Issues or PRs related to the Gateway (Gateway API working group) API. kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

No branches or pull requests

2 participants