Kubernetes
Octopus is Kubernetes-first. The same binary that runs as a standalone gateway can also run an in-process operator that watches the cluster and programs its own router — no sidecar, no separate control plane. It understands two complementary resource models:
The Kubernetes Gateway API —
GatewayClass,Gateway,HTTPRoute,GRPCRoute, andReferenceGrant.Octopus CRDs —
OctopusGateway,OctopusRoute,OctopusUpstream, andOctopusPolicy, which expose Octopus-specific features (auth, rate limiting, canaries, …) that the portable Gateway API does not model.
Both are reconciled into the same internal route table, so you can adopt the portable Gateway API and reach for Octopus CRDs only where you need gateway-specific behaviour.
Enable the operator with kubernetes.enabled: true. Install the Octopus CRDs with
octopus crd | kubectl apply -f -, and install the upstream Gateway API CRDs separately if you
use HTTPRoute/GRPCRoute.
What you get01
Operator — watches Gateway API and Octopus resources, reconciles them into live routes, and writes status back.
Health probes —
/livez,/readyz, and/startupzon the listen port for Kubernetes liveness/readiness/startup probes.Graceful drain — on
SIGTERM, readiness flips to503and a configurable delay letskube-proxystop routing before in-flight requests drain.EndpointSlice discovery — Pod endpoints are discovered via the
discovery.k8s.io/v1EndpointSlice API, reflecting scale up/down.TLS via cert-manager — terminate TLS using certificates from Gateway listener Secrets, hot-reloaded as they rotate.
Helm chart — install with RBAC, probes, autoscaling, and a
ServiceMonitor.