mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-13 04:42:10 +00:00
fix(multiplayer): size kind agones smoke resources
This commit is contained in:
+1
-1
@@ -1503,7 +1503,7 @@ proposal cannot create false timeout penalties for its innocent participants.
|
||||
|
||||
The following Phase 8 slices have local implementation and verification evidence in this document: 8.29 dynamic allocated launch flags and endpoint handling; 8.30 allocator claim/reconciliation including provider-outcome recovery fencing and durable arena identity (migrations 0008–0009); 8.31 signed assignment/roster validation; 8.35 initial-connect no-show and casual bot policy; 8.36 controlled drain and shutdown acknowledgment; 8.39–8.43 client state, assignment, profile, recovery, and idempotent action retry; 8.44 structured observability and content-aware redaction; 8.45 bounded API metrics export plus optional Prometheus scrape/alert rules; 8.46 normal/race/vet/fuzz coverage; 8.47–8.48 offline/testkit/Compose coverage; 8.50 atomic stalled-allocation recovery notifications; 8.51 the 10,000-client API load boundary; 8.52 the opt-in per-replica plus shared PostgreSQL regional allocator quota; and 8.53 the fail-closed promotion validator. Their remaining acceptance text is infrastructure or production dependent where explicitly noted below the corresponding row.
|
||||
|
||||
The following are not locally certifiable from this workspace and remain open prerequisites rather than silently “done”: Valve/GodotSteam credentials and hosted SDR (7.1–7.8), live Agones/kind lifecycle (8.30–8.38, 8.49), public-network chaos/load/cost/release gates (8.50–8.53), and real-hardware graphics profiling (0.15b onward). `make verify-kind-agones` is the committed runner for 8.49; its response validator is unit-tested against malformed/ambiguous allocation payloads, but this machine still lacks kind and Helm. `TODO.md`’s AI-training and presentation tasks remain separate from multiplayer and are not marked by this index.
|
||||
The following are not locally certifiable from this workspace and remain open prerequisites rather than silently “done”: Valve/GodotSteam credentials and hosted SDR (7.1–7.8), live Agones/kind lifecycle (8.30–8.38, 8.49), public-network chaos/load/cost/release gates (8.50–8.53), and real-hardware graphics profiling (0.15b onward). `make verify-kind-agones` is the committed runner for 8.49; its response validator is unit-tested against malformed/ambiguous allocation payloads. On 2026-09-04, kind and Helm were installed and the runner reached its real Agones chart. That run found and repaired the chart's default 10,100 MiB `agones-extensions` ephemeral-storage request, which cannot schedule on a one-node kind cluster. The corrected extensions pod became Ready, but the Agones controller image then could not unpack because this Docker Desktop instance retains 2.71 GB of non-reclaimable BuildKit state and its internal disk filled despite pruning unused volumes, images, and cache. The live gate remains open pending Docker engine capacity; no kind/Agones success is claimed. `TODO.md`’s AI-training and presentation tasks remain separate from multiplayer and are not marked by this index.
|
||||
|
||||
The live control-plane integration was retried on 2026-09-01 after Docker Desktop became available, but the disposable `postgres:17-alpine` container failed during `initdb` with `No space left on device`; Docker reported 10.2 GB of images and 3.3 GB of volumes. The user approved pruning the disposable volumes on 2026-09-04 (3.3 GB reclaimed), and `scripts/run_postgres_integration.sh` then passed against real PostgreSQL. That run caught and repaired a stalled-allocation outbox CTE without `RETURNING`, an untyped JSON timestamp parameter, a season-rollover scan arity mismatch, lifecycle-incompatible fixtures, and a rollback-test step count that did not actually reach migration 0006.
|
||||
|
||||
|
||||
@@ -45,12 +45,18 @@ kind load docker-image "$game_server_image" --name "$cluster_name"
|
||||
|
||||
helm repo add agones https://agones.dev/chart/stable >/dev/null
|
||||
helm repo update >/dev/null
|
||||
# Agones 1.49 otherwise requests 10,100 MiB of ephemeral storage for its
|
||||
# extensions pod, which exceeds a default single-node kind cluster before the
|
||||
# Fleet can be exercised. These are smoke-only bounds; production resource
|
||||
# sizing remains deployment-owned.
|
||||
helm upgrade --install agones agones/agones \
|
||||
--namespace agones-system --create-namespace \
|
||||
--version "$agones_version" \
|
||||
--set agones.crds.cleanup.enabled=true \
|
||||
--set agones.controller.replicas=1 \
|
||||
--set agones.extensions.replicas=1 \
|
||||
--set agones.extensions.resources.requests.ephemeral-storage=128Mi \
|
||||
--set agones.extensions.resources.limits.ephemeral-storage=512Mi \
|
||||
--set agones.allocator.replicas=1 \
|
||||
--wait --timeout 5m
|
||||
|
||||
|
||||
@@ -52,6 +52,11 @@ class ComposeManifestTest(unittest.TestCase):
|
||||
self.assertIn("verify_agones_allocation_response.py", runner)
|
||||
self.assertNotIn("p.get(\"port\", 0) > 0", runner)
|
||||
|
||||
def test_kind_runner_bounds_agones_extensions_ephemeral_storage(self):
|
||||
runner = (ROOT / "scripts/verify_kind_agones.sh").read_text()
|
||||
self.assertIn("agones.extensions.resources.requests.ephemeral-storage=128Mi", runner)
|
||||
self.assertIn("agones.extensions.resources.limits.ephemeral-storage=512Mi", runner)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user