Repository navigation
feat(gke-test): test keep on the shared faberline GKE cluster - #6
Open
chrischeng-c4 wants to merge 4 commits into
Open
chrischeng-c4 wants to merge 4 commits into
chrischeng-c4 wants to merge 4 commits into
Conversation
Local kind clusters fight for the same CPU and memory. keep now has a
pull request run on the shared cluster faberline-test, which faberline/aw
owns. Its pool pool-keep has 0 nodes between runs.
- k8s/overlays/gke-test: base plus the GHCR image, and a StatefulSet
patch that pins keep to pool-keep (nodeSelector and toleration) and
pulls with the ghcr-pull secret that the run creates.
- scripts/gke-test/verify.sh: /readyz, a PUT and GET round trip on
/kv/{key}, then delete keep-0 and read the same key again to prove the
PVC keeps the data.
- .github/workflows/gke-test.yml: build the image with
keep-test-image.yml, then call aw's reusable gke-test.yml, which
deploys, runs verify.sh, and always deletes the namespace.
The aw refs point at claude/gke-test-cluster until faberline/aw#32
merges.
11 tasks done
faberline/aw#32 is merged, so the pilot no longer needs the feature branch. aw-ref defaults to main.
This was referenced Oct 15, 2026
The check moves from a runner script with a port-forward to the Job in k8s/gke-test-job/ on pool-keep-client, so the client never takes CPU from the keep server. The server runs on pool-keep-server, with one replica per node (topologySpreadConstraints). Needs faberline/aw#35 applied first.
The server and the test Job each get a node of their own: a required pod anti-affinity on the hostname that matches every pod of the namespace. The overlay removes the base's limits, and the Job sets no limit, so each pod can use the whole node. Rules: aw docs/standards/test-cluster.md.
This was referenced Oct 22, 2026
chrischeng-c4
added a commit
to faberline/aw
that referenced
this pull request
Oct 23, 2026
…itory (#65) The status table in docs/standards/saas-service.md names the S5 pull request for each saas-service repository: faberline/tape#29, faberline/defer#29, faberline/relay#57, faberline/lumen#159, #160 and #161, and faberline/keep#7. All of them merged on 2026-10-23. The one exception left is keep's SV7, until faberline/keep#6.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Local kind clusters fight for the same CPU and memory. keep now tests on the shared GKE cluster
faberline-test, which faberline/aw owns (faberline/aw#32). keep gets its own namespace and its own poolpool-keep(e2-standard-4 Spot, 0..1 nodes). The pool has 0 nodes between runs.What is in this PR
k8s/overlays/gke-test/kustomization.yaml: base plus the GHCR image. A StatefulSet patch adds thefaberline.dev/pool=keepnodeSelector and toleration, and theghcr-pullpull secret that the run creates.scripts/gke-test/verify.sh:/readyz, a PUT and GET round trip on/kv/{key}, then deletekeep-0and read the same key again. This proves the PVC keeps the data..github/workflows/gke-test.yml: build the image withkeep-test-image.yml, then call aw's reusablegke-test.yml. It deploys, runsverify.sh, and always deletes the namespace.Temporary
The workflow points at
faberline/aw@claude/gke-test-cluster(bothuses:andaw-ref). Switch both tomainafter faberline/aw#32 merges.Checks
shellcheck -x -S warning scripts/gke-test/verify.shactionlint .github/workflows/gke-test.ymlrun.shrender check on this overlay: it passes; the image, nodeSelector, toleration, andghcr-pullare in the rendered StatefulSet.🤖 Generated with Claude Code