Restart the router when its routing config changes (2.0.0+up1.46.4)

The deployment now carries a checksum/config annotation over the rendered
ConfigMap, so a changed routing table produces a new pod template and a
controlled rollout.

Without it a mapping change was inert but looked successful: the file is
mounted with subPath (kubelet never refreshes those in a running container)
and mc-router reads ROUTES_CONFIG only at startup. That combination caused the
minecraft-server stage-3 outage - the ConfigMap pointed at the renamed
services, the running router kept proxying to the old ones, and the pod stayed
Ready throughout.

Major bump: runtime behaviour changes. A mapping change now costs a router
restart (~4.5 s in k3d, so roughly 17-19 s in the real cluster) during which
clients cannot connect. That restart is what makes the change take effect at
all.

Refs #82.
This commit is contained in:
jklein committed 2026-08-23 18:52:19 +02:00
1 parent b41cc6eccc
commit e4b3c06674
3 files changed
+13 -1

No files matched your search

+5
View File
@@ -15,6 +15,11 @@ scaleDown: false
# - domain: creative.example.com
# internalUrl: creative-service.minecraft.svc.cluster.local
# port: 25566
# Since chart 2.0.0 a change here rolls the router pod: the deployment carries
# a checksum/config annotation over the rendered ConfigMap. That restart is
# required for the change to take effect at all - the config is mounted with
# subPath and mc-router only reads it at startup - and costs a few seconds of
# proxy downtime, during which clients cannot connect.
mappings: null
server: