# Traefik with "providers.kubernetesgateway.experimentalchannel=true"

**URL:** <https://community.traefik.io/t/traefik-with-providers-kubernetesgateway-experimentalchannel-true/26591>\
**Category:** Traefik v3 (latest)\
**Tags:** kubernetes-ingress\
**Created:** [February 21, 2025, 3:59am UTC](https://community.traefik.io/t/traefik-with-providers-kubernetesgateway-experimentalchannel-true/26591 "2025-02-21T03:59:35Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Albert](https://avatars.discourse-cdn.com/v4/letter/a/48db29/32.png) [@Albert](https://community.traefik.io/u/Albert)\
**Post date:** [February 21, 2025, 3:59am UTC](https://community.traefik.io/t/traefik-with-providers-kubernetesgateway-experimentalchannel-true/26591/1 "2025-02-21T03:59:35Z")

</div>

I have Kubernetes version 1.31.5 with traefik v3.3.3. When I enable the experimentalchannel, the gateway api httproute will not work. Is this a known bug?

```auto
Name: traefik-8667c7d9fb-cm8sb
Namespace: kube-system
Priority: 0
Service Account: traefik
Node: k8s-node2/192.168.8.198
Start Time: Fri, 21 Feb 2025 03:39:40 +0000
Labels: app.kubernetes.io/instance=traefik-kube-system
                  app.kubernetes.io/managed-by=Helm
                  app.kubernetes.io/name=traefik
                  helm.sh/chart=traefik-34.4.0
                  pod-template-hash=8667c7d9fb
Annotations: kubectl.kubernetes.io/restartedAt: 2025-02-21T03:02:08.924Z
                  prometheus.io/path: /metrics
                  prometheus.io/port: 9100
                  prometheus.io/scrape: true
Status: Running
IP: 10.0.2.234
IPs:
  IP: 10.0.2.234
Controlled By: ReplicaSet/traefik-8667c7d9fb
Containers:
  traefik:
    Container ID: containerd://67f7e639f95650b3e6f6a8f8900f531eac4fcd8def1e832dca66ffb1193af67d
    Image: docker.io/traefik:v3.3.3
    Image ID: docker.io/library/traefik@sha256:19884a9d0b922b321c9cff54cbfe43f3169893041b8dd4ea6100677afaddce46
    Ports: 9100/TCP, 8883/TCP, 8080/TCP, 8000/TCP, 8443/TCP
    Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP, 0/TCP
    Args:
      --global.checknewversion
      --global.sendanonymoususage
      --entryPoints.metrics.address=:9100/tcp
      --entryPoints.mqtts.address=:8883/tcp
      --entryPoints.traefik.address=:8080/tcp
      --entryPoints.web.address=:8000/tcp
      --entryPoints.websecure.address=:8443/tcp
      --api.dashboard=true
      --ping=true
      --metrics.prometheus=true
      --metrics.prometheus.entrypoint=metrics
      --providers.kubernetescrd
      --providers.kubernetescrd.allowEmptyServices=true
      --providers.kubernetesingress
      --providers.kubernetesingress.allowEmptyServices=true
      --providers.kubernetesingress.ingressendpoint.publishedservice=kube-system/traefik
      --providers.kubernetesgateway
      --providers.kubernetesgateway.statusaddress.service.name=traefik
      --providers.kubernetesgateway.statusaddress.service.namespace=kube-system
      --providers.kubernetesgateway.experimentalchannel=true
      --entryPoints.websecure.http.tls=true
      --log.level=INFO
    State: Running
      Started: Fri, 21 Feb 2025 03:39:41 +0000
    Ready: True
    Restart Count: 0
    Liveness: http-get http://:8080/ping delay=2s timeout=2s period=10s #success=1 #failure=3
    Readiness: http-get http://:8080/ping delay=2s timeout=2s period=10s #success=1 #failure=1
    Environment:
      POD_NAME: traefik-8667c7d9fb-cm8sb (v1:metadata.name)
      POD_NAMESPACE: kube-system (v1:metadata.namespace)
    Mounts:
      /data from data (rw)
      /tmp from tmp (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-5xphf (ro)
Conditions:
  Type Status
  PodReadyToStartContainers True
  Initialized True
  Ready True
  ContainersReady True
  PodScheduled True
Volumes:
  data:
    Type: EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit: <unset>
  tmp:
    Type: EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit: <unset>
  kube-api-access-5xphf:
    Type: Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds: 3607
    ConfigMapName: kube-root-ca.crt
    ConfigMapOptional: <nil>
    DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type Reason Age From Message
  ---- ------ ---- ---- -------
  Normal Scheduled 11m default-scheduler Successfully assigned kube-system/traefik-8667c7d9fb-cm8sb to k8s-node2
  Normal Pulled 11m kubelet Container image "docker.io/traefik:v3.3.3" already present on machine
  Normal Created 11m kubelet Created container traefik
  Normal Started 11m kubelet Started container traefik

```

**yaml**

```auto
---

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: traefik
  namespace: test
spec:
  gatewayClassName: traefik

  listeners:
    - name: web
      protocol: HTTP
      port: 8000
      allowedRoutes:
        namespaces:
          from: All

    - name: websecure
      protocol: HTTPS
      port: 8443
      tls:
        mode: Terminate
        certificateRefs:
          - name: mqtt-cert
            namespace: test

      allowedRoutes:
        kinds:
          - group: gateway.networking.k8s.io
            kind: HTTPRoute
        namespaces:
          from: All

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: whoami
  namespace: test
spec:
  selector:
    matchLabels:
      app: whoami

  template:
    metadata:
      labels:
        app: whoami
    spec:
      containers:
        - name: whoami
          image: traefik/whoami

---

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: whoami-httpsroute
  namespace: test
spec:
  parentRefs:
    - name: traefik
      sectionName: websecure
      kind: Gateway

  hostnames:
    - whoami.company.com

  rules:
    - matches:
        - path:
            type: PathPrefix
            value: /

      backendRefs:
        - name: whoami
          namespace: test
          port: 80

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: whoami
  namespace: test
spec:
  selector:
    matchLabels:
      app: whoami

  template:
    metadata:
      labels:
        app: whoami
    spec:
      containers:
        - name: whoami
          image: traefik/whoami

---

apiVersion: v1
kind: Service
metadata:
  name: whoami
  namespace: test
spec:
  selector:
    app: whoami
  type: ClusterIP
  ports:
    - port: 80
      name: whoami
---

```

---

<div class="post-metadata">

**Author:** ![Albert](https://avatars.discourse-cdn.com/v4/letter/a/48db29/32.png) [@Albert](https://community.traefik.io/u/Albert)\
**Post date:** [February 22, 2025, 7:11am UTC](https://community.traefik.io/t/traefik-with-providers-kubernetesgateway-experimentalchannel-true/26591/2 "2025-02-22T07:11:20Z")

</div>

The issue is that the experimental feature must also be activated on the Kubernetes Cluster. Once I activate the feature, the traefik gateway api starts to work. I would be nice to have logs in traefik to highlight the missing feature from the kubernetes cluster.

`kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/download/v1.2.0/experimental-install.yaml`
