Skip to content

lab-runner is 497MB: argo v4 added ~100MB unverified #48

Description

@castrojo

Found by the new pull-request build gate (#42), which is the first thing in this repo's history to actually build and just verify lab-runner before merge.

lab-runner now measures 497,245,531 bytes uncompressed against a 320MB budget. Composition, measured directly from the upstream release artefacts:

Binary Uncompressed
argo v4.0.8 181.2 MB
kubectl v1.36.3 56.8 MB

plus python3, git, openssh, curl, jq, nginx, and the shell-enabled base.

How it got here: #22 bumped argo from v3 to v4.0.8 and was merged on 2026-07-31 by mergeraptor. Renovate was running with GITHUB_TOKEN at the time, so the PR triggered no workflows at all, and lab-runner was independently broken (just.bst, nginx.bst) so no build on main ever reached the size gate either. Both causes are fixed in #42.

#42 raises the ceiling to 544MB so the gate reflects reality rather than staying red on a pre-existing condition. That is a stopgap, not an endorsement — this repo's standard is ~150MB uncompressed (docs/skills/container-standards.md), and lab-runner is 3x that.

Options to evaluate:

  • Is argo v4 required, or would the v3 line (~100MB smaller) still satisfy the Argo Workflows templates that consume this image?
  • Can the Go binaries be stripped? strip-binaries: "" is deliberately disabled for these elements to avoid corrupting them; confirm whether that is still necessary for these specific artefacts.
  • Should argo and kubectl live in a separate image from the general shell-enabled runner, so workflow steps pull only what they use?

Metadata

Metadata

Assignees

No one assigned

    Labels

    1-triageNew work awaiting human triage.3-clanker-queueWork admitted to the agent-maintained queue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions