Live proof
Date: 2026-11-04
Hosted gateway: https://k8s.socialweb.computer
Cluster: knotless-poc (hosted tenant k3s)
Kubeconfig: obtained with scripts/tenant-kubeconfig.sh, which drives
socialweb-computer-kcp/scripts/oauth-signin.ts with
~/.aliceoa_bsky_social_source. The credential file and session cookie
were not printed or committed.
Run
scripts/live-proof.sh
The Job's pod became Ready, the checkout and steps streamed in, four
steps ran, /outputs/ran.txt streamed back, and the Job was deleted.
Result:
{
"name": "knotless-poc",
"job": "knotless-poc",
"namespace": "default",
"pod": "knotless-poc-ldht6",
"status": "success",
"steps": [
{"name": "date", "status": "success", "exitCode": 0, "durationMs": 450, "timedOut": false},
{"name": "hostname", "status": "success", "exitCode": 0, "durationMs": 350, "timedOut": false},
{"name": "files", "status": "success", "exitCode": 0, "durationMs": 401, "timedOut": false},
{"name": "outputs", "status": "success", "exitCode": 0, "durationMs": 400, "timedOut": false}
],
"log": "~/.tmp/knotless-runner-k8s/run.log",
"outputs": "~/.tmp/knotless-runner-k8s/outputs",
"jobDeleted": true,
"dryRun": false,
"error": null
}
The pod hostname in the hostname step matched the pod name, and
/work/steps.tsv was present after the tar upload. The output file
contained:
ran at Wed Nov 4 06:37:37 UTC 2026
Node
A node appeared while the Job's pod was Pending/Running:
node/2wjeqtgx-knotless-poc-node1 Ready <none> 12s v1.36.4+k3s1
The Job was deleted after the run. The tenant's scale hold then returned
the cluster to zero nodes, confirmed with kubectl get nodes:
tenant nodes: 0
scripts/tenant-kubeconfig.sh with DELETE=1 deletes the cluster
itself.
What this proves
- The client-certificate kubeconfig from the hosted gateway works for
kubectl apply,wait,get,execanddelete. - A Pending Job pod drives the tenant node autoscaler.
- Tar over
kubectl exec -imoves the checkout in and outputs out. - Steps share one pod, so later steps see earlier steps' changes.
- A single log carries step output and exit statuses.
- The result shape has the fields a
dev.knotless.checkneeds.