test(kind): always dump on failure, and record the second Agones failure

The dump added in 9ab1bec8 never ran. A `kubectl cluster-info`
reachability guard suppressed it, so its first exercise produced exactly
the silence it was written to prevent. Every command inside is already
`|| true`, so the guard bought nothing and cost the whole dump; removed.

That run did establish something the CI logs cannot: after clearing
local Docker pressure, the Agones install completes cleanly (controller
and allocator both reach "condition met") and the gate instead fails
later, waiting for the Fleet's game-server pods to become Ready. CI
never reaches that point because the Agones install times out first.

So there are likely two failures stacked, and fixing the CI timeout will
probably expose the Fleet one. Recorded in AGONES-CI-INVESTIGATION.md
along with the reasons the Fleet failure warrants suspicion -- fleet.yaml
changed its join-signing key mount from raw bytes to a JSON map this
branch -- and the reasons it may be unrelated.
This commit is contained in:
Josh Creek
2026-09-05 20:03:16 +01:00
parent 9ab1bec89a
commit 8aa4af3a3a
2 changed files with 152 additions and 5 deletions
+11 -5
View File
@@ -58,7 +58,11 @@ dump_cluster_state() {
cleanup() {
local status=$?
if [[ "$status" != 0 ]] && kubectl cluster-info --context "kind-${cluster_name}" >/dev/null 2>&1; then
# No reachability guard here: every command inside dump_cluster_state is
# already `|| true`, so a gone cluster costs a few harmless errors, whereas
# a guard that misjudges reachability silently suppresses the whole dump --
# which is exactly what happened on its first run.
if [[ "$status" != 0 ]]; then
dump_cluster_state
fi
if [[ "$status" != 0 && "${KIND_KEEP_ON_FAILURE:-}" == 1 ]]; then
@@ -96,15 +100,17 @@ 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.
# Agones 1.49 otherwise requests 10,100 MiB of ephemeral storage for both its
# controller and extensions pods, 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.controller.resources.requests.ephemeral-storage=128Mi \
--set agones.controller.resources.limits.ephemeral-storage=512Mi \
--set agones.extensions.replicas=1 \
--set agones.extensions.resources.requests.ephemeral-storage=128Mi \
--set agones.extensions.resources.limits.ephemeral-storage=512Mi \