Configure bounded HTTPS upload timeout for Forgejo OCI publication
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a13590-a16f-7f60-be60-fd71627bc99d
This commit is contained in:
codex 2026-10-13 19:59:10 +02:00
parent 8657e43b16
commit bad08fd712
3 changed files with 79 additions and 0 deletions

27
install/traefik/README.md Normal file
View file

@ -0,0 +1,27 @@
# Railiance01 Traefik upload timeout
Forgejo OCI blob uploads were cut off at 60 seconds with unexpected EOF and
HTTP 499/500. The shared HTTPS entry point now declares a bounded 600-second
request-read budget via the k3s-managed HelmChartConfig. It applies to all
websecure request bodies; it does not disable timeouts or change authentication.
Validated against the installed chart traefik-38.0.201+up38.0.2 and its live
values: the rendered difference is exactly one additional argument. Traefik
remains 3.6.7. The separate HelmChartConfig survives k3s reconciliation; do not
edit the generated Deployment or packaged traefik.yaml.
After node/capacity review, run from this repository:
```sh
ssh railiance01 'kubectl apply --server-side --dry-run=server -f -' < install/traefik/railiance01-helmchartconfig.yaml
ssh railiance01 'kubectl diff -f -' < install/traefik/railiance01-helmchartconfig.yaml
ssh railiance01 'kubectl apply --server-side -f -' < install/traefik/railiance01-helmchartconfig.yaml
```
Wait for the Helm controller to finish and the replacement Traefik pod to become
Ready. Verify the actual argument, HTTPS endpoints and a previously failing
large OCI publication. Rollback: set the argument to 60s in this source and
reapply with the same checks; this restores the former upload limitation.
References: [Traefik read timeout](https://doc.traefik.io/traefik/v3.6/reference/install-configuration/entrypoints/)
and [k3s customization](https://docs.k3s.io/networking/networking-services).

View file

@ -0,0 +1,9 @@
apiVersion: helm.cattle.io/v1
kind: HelmChartConfig
metadata:
name: traefik
namespace: kube-system
spec:
valuesContent: |-
additionalArguments:
- "--entryPoints.websecure.transport.respondingTimeouts.readTimeout=600s"

View file

@ -0,0 +1,43 @@
---
id: RCLUSTER-WP-0016
type: workplan
title: Fix the ingress timeout interrupting Forgejo OCI uploads
domain: financials
repo: railiance-cluster
topic_slug: railiance
status: active
flavor: implementation
owner: codex
created: "2026-10-13"
updated: "2026-10-13"
---
# Forgejo upload timeout
The founder requested fixing rapp-playwright image publication on 2026-10-13.
Large authenticated blob PUTs fail after 59998-60001ms with unexpected EOF.
Traefik 3.6.7 has the default 60s read timeout; Forgejo is healthy and has disk
headroom. Source/configuration ownership is S2 railiance-cluster.
## Apply the managed timeout and prove image publication
```task
id: RCLUSTER-WP-0016-T01
status: progress
priority: high
```
Change only the shared websecure request-read timeout to 600s through a retained
HelmChartConfig. Record ADMINISTER @ realm:kubernetes/railiance01,
activation=APPROVED under the founder's scoped publication-fix instruction and
approval of this concrete shared-ingress change. Use the existing k3s Helm
controller; no ArgoCD application exists for this packaged component. Before
apply, retain the one-argument rendered diff, server dry-run and capacity check.
After apply, verify the controller rollout, stable HTTPS/authentication, real
large blob upload, remote manifest digest and image pull. Revert the source
argument to 60s if rollout health fails. Record the longer request-body allowance
on the estate close-down checklist. No endpoint, TLS or identity policy changes.
Acceptance is runtime evidence and successful immutable publication; do not
finish merely because the manifest was accepted. Evidence lives with the
rapp-playwright publication report and a cluster execution receipt.