Repository navigation
v0.2.0-beta.8
Pre-release
Pre-release
·
3649 commits
to master
since this release
A dependency sweep: all Go modules bumped to latest available versions,
web dependencies updated, and CI image pins aligned to current stable releases.
Added
- Wake-on-connect for idle auto-sleep: a sentinel component (distroless Docker
image, configured viaoperator.sentinelImage) holds advertised ports while a GameServer
is asleep and wakes it on a genuine connection attempt. Opt-in per server via
spec.idle.wakeOnConnect(default false). New CRD fields:
GameServer.spec.idle.wakeOnConnect(bool) andGamePort.wakeProtocol
(enum:minecraft|terraria|generic|none, defaultgeneric). New shared
modulegameproto/for Minecraft and Terraria handshake parsing; UDP-only
games use a generic packets-in-window heuristic. Works across all four expose
modes; Hostport has asymmetric limitations documented indocs/roadmap.md.
Costs one small pod per sleeping server. - Load-balancer address pools: GameServers can now request a specific address
pool or explicit public IP when exposed as LoadBalancer services, via optional
spec.networking.addressPoolandspec.networking.addressCRD fields. The
operator translates these to the cluster's load-balancer flavor (configured
viaoperator.addressManagerHelm value:metallb|cilium|none,
defaultnone): MetalLB gets pool →metallb.io/address-poolannotation and
address →metallb.io/loadBalancerIPs; Cilium gets pool →
gameplane.local/lb-poollabel (admin mirrors it in
CiliumLoadBalancerIPPool.spec.serviceSelector) and address →
lbipam.cilium.io/ips. A newAddressAssignmentstatus condition tracks the
assignment outcome with eight reason codes (Assigned, AssignmentPending,
PoolNotFound, AllocationFailed, AddressInUse, ServiceNotReady,
IgnoredForExposureMode, NoAddressManagerConfigured). Dashboard support added
for setting and viewing pool/address. Seedocs/networking.md.
Security
- Signing key rotated: cosign key type changed from Ed25519 to ECDSA P-256
(cross-signed for trust continuity; seedocs/key-rotation.md). - Transparency logging enabled: all published images, the Helm chart (now
signed for the first time), and official module bundles are signed and
recorded in the public Sigstore Rekor transparency log. Signing is now
fail-closed in CI (missingCOSIGN_PRIVATE_KEYfails the release).
Changed
- Go dependencies: telemetry-receiver, sentinel, and mcp-server updated
to latest go-openapi versions (github.com/go-openapi/{jsonpointer,jsonreference,swag}
v0.2x → v1.x); operator updated with 50+ indirect dependency bumps (go-git
v5.19.1 → v5.19.2); api'smodernc.org/sqlitev1.54.0 → v1.55.0; agent and
e2e test suite indirect dependencies (k8s.io, golang.org/x packages) brought
current. - Web dependencies:
@tanstack/react-virtualv3.14.8 → v3.14.9,
lucide-reactv1.26.0 → v1.27.0,@types/nodev26.1.1 → v26.1.2,
globalsv17.7.0 → v17.8.0,jsdomv29.1.1 → v30.0.1,postcssv8.5.23 →
v8.5.25. - CI image pins:
setup-envtestrelease-0.19 → release-0.24, Kubernetes
(envtest) 1.31.0 → 1.36.2 (now in sync with the Makefile), andkindv0.24.0 →
v0.32.0. - Container image defaults: restic/restic 0.18.1 → 0.19.1 (charts/gameplane/values.yaml operator.resticImage default) and nginxinc/nginx-unprivileged 1.30-alpine → 1.31-alpine (web/Dockerfile base image).
modules/build.shgained--tlog-uploadflag (passed by the release
pipeline for official bundles); default stays offline for air-gapped authoring.- Module bundles are now signed by the pushed manifest digest.
build.sh
previously took the firstsha256:token inoras pushoutput, which is not
necessarily the manifest — a layer digest printed in full would have been
signed instead (operator verification unchanged).
Notes
- TypeScript held at 6.x:
@typescript-eslint/parser@8.65.0declares
peerDependencies: typescript >=4.8.4 <6.1.0, so upgrading to TS 7.x would
break type-aware linting. Reevaluate when@typescript-eslint/parserpublishes
a v8.x major that supports TS 7+. - ESLint held at 9.x:
eslint-plugin-react@7.37.5declares no^10peer
range, so upgrading to ESLint 10.x would break React linting. Reevaluate when
eslint-plugin-reactpublishes a v8+ major or a 7.x patch that widens the
peer range. - Prometheus client_golang:
telemetry-receiver's
github.com/prometheus/client_golangv1.24.1 is at latest; no update
available.