~ knotless Search/
↑↓ move↵ open⇧↵ all results

johnandersen777.bsky.social/knotless-runner-k8s

0
0
80 lines · 2.2 KB Raw History

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, exec and delete.
  • A Pending Job pod drives the tenant node autoscaler.
  • Tar over kubectl exec -i moves 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.check needs.