Configure bounded HTTPS upload timeout for Forgejo OCI publication
Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a13590-a16f-7f60-be60-fd71627bc99d
This commit is contained in:
parent
8657e43b16
commit
bad08fd712
3 changed files with 79 additions and 0 deletions
27
install/traefik/README.md
Normal file
27
install/traefik/README.md
Normal 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).
|
||||||
9
install/traefik/railiance01-helmchartconfig.yaml
Normal file
9
install/traefik/railiance01-helmchartconfig.yaml
Normal 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"
|
||||||
43
workplans/RCLUSTER-WP-0016-forgejo-upload-timeout.md
Normal file
43
workplans/RCLUSTER-WP-0016-forgejo-upload-timeout.md
Normal 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.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue