~ 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

```bash
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:

```json
{
  "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:

```text
ran at Wed Nov  4 06:37:37 UTC 2026
```

## Node

A node appeared while the Job's pod was Pending/Running:

```text
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`:

```text
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.