Report this

What is the reason for this report?

Kubernetes cilium GatewayClass stuck in pending state

Posted on October 31, 2025

I’m trying out the latest Gateway API on DOKS, following this tutorial.

I apply the exact same yaml provided to provision a Gateway, but when I try to get the gateway, it says:

> kubectl get gateways
NAME                  CLASS    ADDRESS   PROGRAMMED   AGE
cilium-gateway-http   cilium             Unknown      3m14s

instead of the PROGRAMMED=true indicated in the tutorial.

Furthermore, I notice the Cilium GatewayClass provided by DO seems to have some issues:

> kubectl describe gatewayclass cilium
Name:         cilium
Namespace:    
Labels:       c3.doks.digitalocean.com/component=cilium
              c3.doks.digitalocean.com/plane=data
              c3.doks.digitalocean.com/variant=ebpf
              doks.digitalocean.com/managed=true
Annotations:  <none>
API Version:  gateway.networking.k8s.io/v1
Kind:         GatewayClass
Metadata:
  Creation Timestamp:  2025-10-31T05:32:49Z
  Generation:          1
  Resource Version:    1502
  UID:                 9e7488ed-5ed3-47ee-b599-b0c731dd5a6f
Spec:
  Controller Name:  io.cilium/gateway-controller
  Description:      The default Cilium GatewayClass
Status:
  Conditions:
    Last Transition Time:  1970-01-01T00:00:00Z
    Message:               Waiting for controller
    Reason:                Pending
    Status:                Unknown
    Type:                  Accepted
Events:                    <none>

Notice the Message says “Waiting for controller”, and the timestamp seems like a placeholder.

Can confirm the cluster is running on the latest version

> kubectl version
Client Version: v1.34.1
Kustomize Version: v5.7.1
Server Version: v1.33.1

I’ve tried to create another cluster in a different region, but they all result in the same error.

What can go wrong here?



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Hi there,

It looks like the Cilium GatewayClass controller isn’t getting picked up properly, the Waiting for controller message usually means the Cilium agent or gateway controller isn’t running or hasn’t registered yet with the Gateway API. You could try checking if the cilium-gateway-controller pod is running in the kube-system namespace or see if there are any errors in the cilium-operator logs.

That said, since this seems to be happening across clusters and regions, it might point to something on the managed side of DOKS. I’d suggest keeping your support ticket open so the DOKS team can check if the GatewayClass controller is currently deployed correctly in your environment.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.