Skip to content

Support Gateway API ListenerSet (GEP-1713) #12626

Description

@roxannelandry

Welcome!

  • Yes, I've searched similar issues on GitHub and didn't find any.
  • Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?

When using Gateway API with cert-manager, the cert-manager.io/cluster-issuer annotation on the Gateway applies to all listeners. There's no way to exclude specific listeners that need manually-managed certificates (e.g., partner-provided certificates).

Proposition

Support for GEP-1713 ListenerSet (currently XListenerSet in the experimental channel as of Gateway API v1.3.0).

This would enable:

  • Delegating listener configuration to different namespaces
  • Per-ListenerSet annotations (allowing some ListenerSets to use cert-manager while others use manual certificates)
  • Better multi-tenant gateway management
  • Exceeding the 64 listener limit per Gateway

Environment

  • Traefik version: v3.6.7
  • Gateway API CRDs: v1.3.0 experimental channel
  • kubernetesGateway.experimentalChannel: true is already configured
  • Additional context

The XListenerSet CRD (xlistenersets.gateway.networking.x-k8s.io/v1alpha1) is installed and resources can be created, but Traefik does not currently recognize or process them (status shows Unknown).

Running: kubectl get xlistenersets -A 
NAMESPACE   NAME                             ACCEPTED   PROGRAMMED   AGE
default             listeners                         Unknown       Unknown             24m
default             manual-cert-listeners   Unknown       Unknown             24m
Status:
  Conditions:
    Last Transition Time:  1970-01-01T00:00:00Z
    Message:               Waiting for controller
    Reason:                Pending
    Status:                Unknown
    Type:                  Accepted
    Last Transition Time:  1970-01-01T00:00:00Z
    Message:               Waiting for controller
    Reason:                Pending
    Status:                Unknown
    Type:                  Programmed
Events:                    <none>

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions