Add an allowlisted egress proxy for Forgejo Actions runner jobs #563
Labels
No labels
burndown-2026-06
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#563
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Forgejo Actions jobs need a stable outbound path for services that fail from the runner DinD job network. Start with Telegram CI alerts, but design the surface for more destinations later.
Context:
api.telegram.org.forgejocan reachhttps://api.telegram.org/over IPv4, and Pythonurllibfromagentic-os:releaseas a normal pod succeeds in about 1.1s.kubectl exec forgejo-runner-0 -c dind -- docker run curlimages/curl ...) fails for Telegram. IPv6 isNetwork unreachable; forced IPv4 sends TLS ClientHello and times out. Non-Telegram HTTPS from that same DinD path still works forexample.comand Forgejo.Likely direction:
deploy/egress-proxy.ymlor an equivalent runner support manifest.api.telegram.org:443.egress-proxyService inforgejoor a dedicated namespace.HTTPS_PROXYfor the Telegram call, while keepingNO_PROXYfor cluster-local services, Forgejo, the in-cluster registry, and localhost.Acceptance:
https://api.telegram.org/through the proxy.This belongs in infrastructure because it is runner substrate, next to
deploy/forgejo-runner.ymland the k3s runner network trap docs, not in the deploy repo.Second affected destination confirmed from the same class of Forgejo runner path. eco-app Actions run 105, build-image task 14518, reached a Docker build that restores
mods/jobs/src, then timed out fetchinghttps://api.nuget.org/v3/index.jsonwith NU1301. Restore spent about 10 minutes retrying before the image build failed, so none of the four downstream per-mod publishers started.This strengthens the case that #563 owns a general destination-sensitive DinD egress defect rather than a Telegram-only integration problem. Add
api.nuget.org:443to the diagnostic and eventual allowlist alongsideapi.telegram.org:443. Acceptance should verify both endpoints from the general runner DinD path and the dedicateddocker-buildBuildKit path.Related application blockers: coilyco-gaming/eco-app#111 and #141. The narrower NuGet-proxy proposal in #571 is being closed as a duplicate because a package cache would mask the shared runner-network symptom and still fail on cold misses.