chore(consistency): sync task status from DB [auto]
Updated by fix-consistency on 2026-10-13: - update .custodian-brief.md for rapp-playwright Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a13590-a16f-7f60-be60-fd71627bc99d
This commit is contained in:
parent
e2705891ac
commit
e9b63c307b
15 changed files with 409 additions and 20 deletions
162
docs/evidence/2026-10-13-publication-diagnosis.json
Normal file
162
docs/evidence/2026-10-13-publication-diagnosis.json
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
{
|
||||
"observed_at": "2026-10-13T18:01:35.319316+00:00",
|
||||
"forgejo_image": "code.forgejo.org/forgejo/forgejo:11.0.3-rootless",
|
||||
"traefik_version": "3.6.7",
|
||||
"prior_explicit_read_timeout": false,
|
||||
"failed_blob_puts": [
|
||||
{
|
||||
"timestamp": "2026/10/13 16:50:28",
|
||||
"status": 500,
|
||||
"duration_ms": 60000.5
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 16:50:28",
|
||||
"status": 500,
|
||||
"duration_ms": 59998.7
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 16:50:28",
|
||||
"status": 500,
|
||||
"duration_ms": 7.6
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 16:50:28",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.2
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 16:50:28",
|
||||
"status": 500,
|
||||
"duration_ms": 59998.0
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 16:50:28",
|
||||
"status": 500,
|
||||
"duration_ms": 59976.1
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:15:26",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.7
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:15:26",
|
||||
"status": 500,
|
||||
"duration_ms": 60001.1
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:15:26",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.5
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:15:26",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.4
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:15:26",
|
||||
"status": 500,
|
||||
"duration_ms": 59924.0
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:21",
|
||||
"status": 500,
|
||||
"duration_ms": 59998.1
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:21",
|
||||
"status": 500,
|
||||
"duration_ms": 60001.2
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:21",
|
||||
"status": 500,
|
||||
"duration_ms": 60000.6
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:21",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.5
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:21",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.6
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:21",
|
||||
"status": 500,
|
||||
"duration_ms": 7.1
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:21",
|
||||
"status": 500,
|
||||
"duration_ms": 4.3
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:22",
|
||||
"status": 500,
|
||||
"duration_ms": 3.8
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:22",
|
||||
"status": 500,
|
||||
"duration_ms": 2.9
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:22",
|
||||
"status": 500,
|
||||
"duration_ms": 2.3
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:22",
|
||||
"status": 500,
|
||||
"duration_ms": 3.2
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:22",
|
||||
"status": 500,
|
||||
"duration_ms": 10.0
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:17:22",
|
||||
"status": 500,
|
||||
"duration_ms": 3.1
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:49:19",
|
||||
"status": 500,
|
||||
"duration_ms": 60000.2
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:49:19",
|
||||
"status": 500,
|
||||
"duration_ms": 59998.2
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:49:19",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.9
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:49:19",
|
||||
"status": 500,
|
||||
"duration_ms": 60000.0
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 17:49:19",
|
||||
"status": 500,
|
||||
"duration_ms": 59999.4
|
||||
}
|
||||
],
|
||||
"unexpected_eof_count": 20,
|
||||
"offset_mismatch_count": 9,
|
||||
"disk_available_gib": 129.9,
|
||||
"forgejo_restarts": 0,
|
||||
"cpu_requested_m": 3460,
|
||||
"cpu_allocatable_m": 4000,
|
||||
"rendered_change": "one additional argument: --entryPoints.websecure.transport.respondingTimeouts.readTimeout=600s",
|
||||
"server_dry_run": "passed",
|
||||
"client_diff": "new HelmChartConfig only"
|
||||
}
|
||||
28
docs/evidence/2026-10-13-publication-timeout-rollout.json
Normal file
28
docs/evidence/2026-10-13-publication-timeout-rollout.json
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"observed_at": "2026-10-13T18:12:13.559452+00:00",
|
||||
"configuration_commit": "bad08fd712bded4aefe011d2cdad1f50ade8c43e",
|
||||
"authority": "ADMINISTER @ realm:kubernetes/railiance01",
|
||||
"activation": "APPROVED",
|
||||
"source": "founder publication-fix instruction and explicit approval of shared timeout change",
|
||||
"deployment_generation": 2,
|
||||
"observed_generation": 2,
|
||||
"ready_replicas": 1,
|
||||
"image": "rancher/mirrored-library-traefik:3.6.7",
|
||||
"timeout_arguments": [
|
||||
"--entryPoints.websecure.transport.respondingTimeouts.readTimeout=600s"
|
||||
],
|
||||
"https_checks": [
|
||||
{
|
||||
"url": "https://forgejo.coulomb.social/api/v1/version",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"url": "https://reuse.coulomb.social/health",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"url": "https://forgejo.coulomb.social/v2/",
|
||||
"status": 401
|
||||
}
|
||||
]
|
||||
}
|
||||
53
docs/evidence/2026-10-13-publication-upload-timings.json
Normal file
53
docs/evidence/2026-10-13-publication-upload-timings.json
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"observed_at": "2026-10-13T18:15:32.252082+00:00",
|
||||
"uploads": [
|
||||
{
|
||||
"timestamp": "2026/10/13 18:13:40",
|
||||
"kind": "blob",
|
||||
"status": 201,
|
||||
"duration_ms": 85466.9
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 18:14:02",
|
||||
"kind": "blob",
|
||||
"status": 201,
|
||||
"duration_ms": 106917.7
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 18:14:06",
|
||||
"kind": "blob",
|
||||
"status": 201,
|
||||
"duration_ms": 111375.0
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 18:15:07",
|
||||
"kind": "blob",
|
||||
"status": 201,
|
||||
"duration_ms": 172691.8
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 18:15:17",
|
||||
"kind": "blob",
|
||||
"status": 201,
|
||||
"duration_ms": 182603.3
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 18:15:17",
|
||||
"kind": "manifest",
|
||||
"status": 201,
|
||||
"duration_ms": 39.3
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 18:15:17",
|
||||
"kind": "manifest",
|
||||
"status": 201,
|
||||
"duration_ms": 108.9
|
||||
},
|
||||
{
|
||||
"timestamp": "2026/10/13 18:15:17",
|
||||
"kind": "manifest",
|
||||
"status": 201,
|
||||
"duration_ms": 30.6
|
||||
}
|
||||
]
|
||||
}
|
||||
63
docs/evidence/2026-10-13-publication.md
Normal file
63
docs/evidence/2026-10-13-publication.md
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
# Forgejo image publication fixed — 2026-10-13
|
||||
|
||||
Release **0.1.0** is published and pullable on railiance01. Its immutable reference:
|
||||
|
||||
```text
|
||||
forgejo.coulomb.social/coulomb/rapp-playwright@sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441
|
||||
```
|
||||
|
||||
The fetched OCI index bytes hash to exactly that digest, matching the image
|
||||
previously tested by the independent agent. The linux/amd64 manifest is
|
||||
`sha256:20d8310d44cd807579aca06df01090a7bb27892ce387519f9957e4dd67f64cc7`;
|
||||
cluster pull resolved the expected config
|
||||
`sha256:5bda1139fda091648b1e984f6be8119291ad5616263b206d62ac7986ba2762b3`.
|
||||
This publication did not rebuild or alter the browser image and did not deploy
|
||||
the browser workload.
|
||||
|
||||
## Cause and fix
|
||||
|
||||
The previous HTTP 499/500 responses were caused by the shared Traefik ingress
|
||||
cutting off large request bodies at its default 60-second read deadline. Forgejo
|
||||
reported `unexpected EOF`; retries of those interrupted sessions could report
|
||||
`offset mismatch between file and model`. Authentication and smaller blobs
|
||||
succeeded. Forgejo had no restarts and approximately 130GiB disk available.
|
||||
|
||||
The approved fix declares a **bounded 600-second read timeout** on the shared
|
||||
`websecure` entry point through a k3s `HelmChartConfig`. This setting covers HTTPS
|
||||
request bodies for all services on that entry point. Other timeouts, TLS and
|
||||
registry authentication remain unchanged. Source is owned by railiance-cluster:
|
||||
`install/traefik/railiance01-helmchartconfig.yaml`, initial published commit
|
||||
`bad08fd712bded4aefe011d2cdad1f50ade8c43e`, workplan RCLUSTER-WP-0016.
|
||||
The estate close-down checklist row 23 tracks review of the longer shared budget.
|
||||
|
||||
Rendering the installed chart with its actual base values produced exactly one
|
||||
additional argument. Server dry-run and diff passed, capacity was checked, and
|
||||
the k3s Helm controller rolled Traefik to generation 2, Ready, on the same 3.6.7
|
||||
image. Forgejo version and reuse health returned HTTP 200; registry `/v2/` still
|
||||
returned HTTP 401 without authentication. Rollback is a reviewed source change
|
||||
back to 60s and reapplication through the same controller.
|
||||
|
||||
References: [Traefik entry-point timeout](https://doc.traefik.io/traefik/v3.6/reference/install-configuration/entrypoints/)
|
||||
and [k3s managed customization](https://docs.k3s.io/networking/networking-services).
|
||||
|
||||
## Executed verification
|
||||
|
||||
- `docker push forgejo.coulomb.social/coulomb/rapp-playwright:0.1.0` succeeded.
|
||||
Five large layers completed with HTTP 201 in 85.5, 106.9, 111.4, 172.7 and
|
||||
182.6 seconds. Manifests published at 2026-10-13T18:15:17Z.
|
||||
- `docker buildx imagetools inspect ...:0.1.0` returned the exact expected index.
|
||||
The raw fetched index's SHA-256 was independently computed and matched.
|
||||
- `ssh railiance01 'sudo k3s crictl pull <immutable-reference>'` succeeded, and
|
||||
`crictl inspecti` confirmed the expected image config identity.
|
||||
|
||||
Retained [diagnosis](2026-10-13-publication-diagnosis.json),
|
||||
[rollout and HTTPS checks](2026-10-13-publication-timeout-rollout.json),
|
||||
[successful upload timings](2026-10-13-publication-upload-timings.json),
|
||||
[remote index](2026-10-13-published-image-index.json),
|
||||
[cluster pull](2026-10-13-published-image-pull.json), and
|
||||
[release record](../../releases/0.1.0.json).
|
||||
|
||||
WP-0003-T01 is now done and WP-0003 is finished. Managed workload admission,
|
||||
consumer binding, deployment and live browser recovery/rollback remain in
|
||||
WP-0004-T01. The publication fix does not claim those outcomes or close discovery
|
||||
and consumer-acceptance work.
|
||||
28
docs/evidence/2026-10-13-published-image-index.json
Normal file
28
docs/evidence/2026-10-13-published-image-index.json
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"schemaVersion": 2,
|
||||
"mediaType": "application/vnd.oci.image.index.v1+json",
|
||||
"manifests": [
|
||||
{
|
||||
"mediaType": "application/vnd.oci.image.manifest.v1+json",
|
||||
"digest": "sha256:20d8310d44cd807579aca06df01090a7bb27892ce387519f9957e4dd67f64cc7",
|
||||
"size": 3344,
|
||||
"platform": {
|
||||
"architecture": "amd64",
|
||||
"os": "linux"
|
||||
}
|
||||
},
|
||||
{
|
||||
"mediaType": "application/vnd.oci.image.manifest.v1+json",
|
||||
"digest": "sha256:3267896f3b778dedce0b2c92ea1c67b64a6e168417aa422c4750dcbcb0d165f5",
|
||||
"size": 566,
|
||||
"annotations": {
|
||||
"vnd.docker.reference.digest": "sha256:20d8310d44cd807579aca06df01090a7bb27892ce387519f9957e4dd67f64cc7",
|
||||
"vnd.docker.reference.type": "attestation-manifest"
|
||||
},
|
||||
"platform": {
|
||||
"architecture": "unknown",
|
||||
"os": "unknown"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
12
docs/evidence/2026-10-13-published-image-pull.json
Normal file
12
docs/evidence/2026-10-13-published-image-pull.json
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"observed_at": "2026-10-13T18:17:15.031531+00:00",
|
||||
"node": "railiance01",
|
||||
"pull_command": "sudo k3s crictl pull forgejo.coulomb.social/coulomb/rapp-playwright@sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441",
|
||||
"pull_exit_code": 0,
|
||||
"image_id": "sha256:5bda1139fda091648b1e984f6be8119291ad5616263b206d62ac7986ba2762b3",
|
||||
"repo_digests": [
|
||||
"forgejo.coulomb.social/coulomb/rapp-playwright@sha256:8d6fd5a8172cf906bb503642ed620761945c5138b86f6396c36f65cbe6def441"
|
||||
],
|
||||
"size_bytes": "990518395",
|
||||
"workload_deployed": false
|
||||
}
|
||||
|
|
@ -69,3 +69,10 @@ explicit migration/rollback decision.
|
|||
Upgrade Playwright and its base image together, update the lockfile, repeat the
|
||||
unit/browser/client tests and consumer pilot, then publish a new immutable image.
|
||||
The Python client checks protocol v1 and does not install Playwright.
|
||||
|
||||
## Published release
|
||||
|
||||
Release [0.1.0](../releases/0.1.0.json) is published and pull-verified. Use its
|
||||
immutable reference for rendering; registry publication is no longer blocked.
|
||||
The cluster-owned ingress now allows a bounded 600-second HTTPS request body;
|
||||
see [cause, rollout and verification](evidence/2026-10-13-publication.md).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue