Skip to content

Revert TenantGateway port-443 allowedRoutes.kinds workaround once Cilium ≥1.20 lands #3087

Open

Description

Context

To work around cilium/cilium#45559 (divergent per-listener allowedRoutes.kinds on the same port make Cilium collapse the listeners and silently drop HTTPRoutes), the TenantGateway controller forces every port-443 listener — both HTTPS-terminate and TLS-passthrough — to advertise an identical kinds set [HTTPRoute, TLSRoute]. See #3070 for the bug and #3084 for the workaround. Cozystack currently ships Cilium 1.19.x, which has the bug.

Why this needs reverting later

cilium/cilium#45559 is fixed upstream in Cilium 1.20 via cilium/cilium#45693. Once Cozystack bumps to Cilium ≥1.20, the natural per-protocol kinds work again — [HTTPRoute] on HTTPS-terminate listeners, [TLSRoute] on TLS-passthrough listeners — and the shared-kinds workaround is no longer needed.

The revert is not automatic on the bump. The upstream fix lives only in the route-side check (routechecks/gateway_checks.go); it does not touch the listener-status path (setListenerStatus / getSupportedRouteKinds). So the workaround keeps producing a permanent cosmetic ResolvedRefs=False / InvalidRouteKinds condition on every port-443 listener (each lists one kind unsupported for its protocol). This is harmless to traffic, security, and TenantGateway readiness, but it misreports listener status on the raw Gateway and will confuse future debugging and monitoring. Reverting to per-protocol kinds removes that noise.

Trigger

When Cozystack bumps Cilium to ≥1.20.

Action

Restore per-protocol allowedRoutes.kinds in renderGateway (drop the shared port443Kinds slice), and update the TenantGateway reconciler tests to pin the per-protocol sets again.

References

#3070, #3084, cilium/cilium#45559, cilium/cilium#45693

Activity

  1. added
    upstream-issueRequires resolving an issue in an upstream project
    kind/cleanupCategorizes issue or PR as related to cleanup of code, process, or technical debt
    area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)
    triage/acceptedIndicates an issue is ready to be actively worked on
    priority/backlogGeneral backlog priority. Lower than priority/important-longterm
    on Jun 26, 2026
  2. added
    area/ciliumIssues or PRs related to Cilium (agent, operator, Gateway API, network policy, LB-IPAM)
    on Aug 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/ciliumIssues or PRs related to Cilium (agent, operator, Gateway API, network policy, LB-IPAM)area/networkingIssues or PRs related to networking (ingress, gateway, vpn, metallb, kube-ovn)kind/cleanupCategorizes issue or PR as related to cleanup of code, process, or technical debtpriority/backlogGeneral backlog priority. Lower than priority/important-longtermtriage/acceptedIndicates an issue is ready to be actively worked onupstream-issueRequires resolving an issue in an upstream project

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions