gateway.networking.k8s.io). It reuses the standard GatewayClass and Gateway resources and introduces two custom route kinds.
Resource hierarchy
GatewayClass
AGatewayClass is a cluster-scoped resource that names a controller. Set spec.controllerName to minefleet.dev/gateway-controller for minecraft-gateway to manage it.
parametersRef points to a NetworkInfrastructure that provides cluster-wide defaults, including edgeTemplate configuration (which is only effective at this level).
Gateway
AGateway represents a single Minecraft entry point. Each listener in spec.listeners gets its own network proxy Deployment and Service.
protocol must be JAVA (Minecraft Java Edition) or BEDROCK (Minecraft Bedrock Edition).
hostname is optional. When set, only routes whose spec.hostnames are compatible with this hostname will attach to the listener. A wildcard like *.example.com allows any route whose hostnames fall under that domain.
allowedRoutes.kinds must reference kinds from group gateway.networking.minefleet.dev. allowedRoutes.namespaces controls which namespaces can attach routes to this listener.
Custom route types
minecraft-gateway replaces the standardHTTPRoute with two Minecraft-specific route kinds.
MinecraftJoinRoute
AMinecraftJoinRoute routes initial player connections. The optional spec.hostnames field declares which hostnames this route is available for at the edge — the edge proxy uses it to know which incoming connections this route can handle. filterRules with domain patterns define the actual routing logic that maps connections to backends.
See the MinecraftJoinRoute reference for full field documentation.
MinecraftFallbackRoute
AMinecraftFallbackRoute defines where players go when a primary server is unavailable or full. It supports a fallbackFor selector that dynamically resolves to a set of services at snapshot build time. Fallback routes are evaluated by the network proxy and do not affect edge-layer routing.
See the MinecraftFallbackRoute reference for full field documentation.
Infrastructure merging
When both theGatewayClass and the Gateway have a parametersRef, the controller merges their NetworkInfrastructure specs:
This lets you set cluster-wide edge configuration centrally while allowing individual gateways to customize their network proxy and discovery settings.