chore(images): repoint OCI provenance labels at Forgejo (batch 1/5) #75
Open
ryangr0
wants to merge 2 commits from
chore/oci-labels-batch1 into main
pull from: chore/oci-labels-batch1
merge into: webgrip:main
webgrip:main
webgrip:feat/agent-runner-dhi-alpine
webgrip:feat/techdocs-builder-dhi
webgrip:feat/semrel-family-dhi-alpine
webgrip:feat/semantic-release-monorepo-dhi-base
webgrip:feat/semantic-release-dhi-base
webgrip:feat/node-ci-runner-dhi-base
webgrip:feat/helm-deploy-dhi-base
webgrip:feat/act-runner-dhi-base
webgrip:fix/promote-dash-candidate
webgrip:perf/consolidate-release-plumbing
webgrip:fix/helm-deploy-tool-bumps
webgrip:fix/candidate-keyed-by-version
webgrip:feat/promote-by-digest
webgrip:feat/cve-budgets-measured
webgrip:diag/measure-cve-budgets
webgrip:fix/techdocs-builder-zensical-conflict
webgrip:fix/semantic-release-rust-signed-reentry
webgrip:fix/node-ci-runner-signed-reentry
webgrip:docs/hardening-wave3-plan
webgrip:fix/techdocs-runner-pin-parent
webgrip:fix/mkdocs-runner-pin-parent
webgrip:fix/tauri-ci-runner-pin-parent
webgrip:fix/ci-runner-signed-cve-gate
webgrip:fix/helm-deploy-verify-downloads
webgrip:fix/techdocs-builder-annotate-stages
webgrip:fix/rust-ci-runner-pin-build-stage
webgrip:fix/rust-releaser-pin-toolchain
webgrip:fix/semantic-release-rust-pin-base
webgrip:fix/semantic-release-monorepo-pin-base
webgrip:fix/semantic-release-pin-base
webgrip:fix/playwright-runner-pin-base
webgrip:fix/act-runner-pin-act
webgrip:fix/node-ci-runner-pin-base
webgrip:fix/bump-workflows-pin-codeberg-bash
webgrip:fix/renovate-digest-aware-args
webgrip:docs/upstream-vex-in-harbor
webgrip:fix/harbor-sbom-honest-report
webgrip:fix/vex-aliases-and-unmatched-guard
webgrip:fix/gate-stderr-not-a-tty
webgrip:perf/drop-installer-actions
webgrip:fix/release-matrix-multiline-output
webgrip:fix/cve-gate-header-accuracy
webgrip:feat/release-manual-trigger
webgrip:fix/ci-runner-claude-code-and-renovate-annotation
webgrip:docs/adr-buildkitd-and-gate-as-step
webgrip:perf/release-verify-uses-buildkitd
webgrip:perf/cve-gate-as-a-step
webgrip:perf/ci-runner-bake-gate
webgrip:fix/cve-gate-volume-ownership
webgrip:fix/ci-runner-verify-helm-yq
webgrip:fix/cve-gate-scan-space
webgrip:perf/build-check-cli
webgrip:chore/forgejo-git-throughput-probe
webgrip:perf/ci-runner-bake-cosign-syft
webgrip:fix/cve-gate-seccomp-clone
webgrip:fix/cve-gate-pin-existing-version
webgrip:fix/cve-gate-readonly-inputs
webgrip:fix/cve-gate-moby-floor
webgrip:feat/cve-gate-static
webgrip:fix/cve-gate-vex-and-budget
webgrip:fix/cve-gate-staging-root
webgrip:ci/build-check-on-branches
webgrip:fix/cve-gate-dhi-registry
webgrip:feat/cve-gate
webgrip:feat/harden-supply-chain
webgrip:fix/semrel-toolchain-one-source
webgrip:fix/semrel-fork-direct-binary
webgrip:renovate/actions-attest-build-provenance-3.x
webgrip:renovate/sigstore-cosign-installer-4.x
webgrip:renovate/github-codeql-action-4.x
webgrip:renovate/docker-login-action-4.x
webgrip:renovate/actions-create-github-app-token-3.x
webgrip:renovate/actions-attest-build-provenance-4.x
webgrip:copilot/fix-docker-build-and-push
webgrip:copilot/fix-1
No reviewers
No labels
pull-request
released
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
webgrip/infrastructure!75
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/oci-labels-batch1"
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?
Replaces the label portion of the closed #70.
org.opencontainers.image.{source,url,documentation}are baked into every published image and still point at github.com, which stopped being the source of truth when the platform moved to Forgejo. Anyone inspecting one of these images is sent to a mirror.Three images only:
node-ci-runner,vikunja-mcp,act-runner. Pure label change — 3 lines per file, verified: 9 insertions, 9 deletions, allimage.source/image.url/image.documentation.Why this is batched
on_source_changebuilds one matrix entry per changedops/docker/dir, and Forgejo ignoresstrategy.max-parallel— the setting is present in the workflow and does nothing. So the original #70, touching all 17 Dockerfiles, would have fanned out 17 concurrent builds ontofringe-workstation: the node co-locating Harbor, its Postgres, the Envoy data plane and the dind DaemonSet on 8 threads, and the documented cause of the "Harbor outages" in runs 136/137/158.These three are the lowest-stakes to go first — small alpine images, short Dockerfiles, and nothing builds
FROMthem. If the batching approach is wrong, it is wrong here rather than on the release toolchain.Remaining batches
Ordered by blast radius and rebuild cost. The
LABEL's position in the Dockerfile decides the cost: near the end means the buildx registry cache covers everything before it and the rebuild is cheap; near the top invalidates the whole image.FROMrust-ci-runner; ci-runner and helm-deploy are the only two images whose LABEL sits near the top, so they are the only two that get a full rebuildIndependent of #74 — no overlapping files.
org.opencontainers.image.{source,url,documentation} are baked into every published image and still pointed at github.com, which stopped being the source of truth when the platform moved to Forgejo. A consumer inspecting one of these images was sent to a mirror. Batch 1 of 5. Split deliberately: on_source_change builds one matrix entry per changed ops/docker/ dir, and Forgejo IGNORES strategy.max-parallel (the setting is present and does nothing), so a single PR touching all 17 images produces 17 concurrent builds on fringe-workstation — the node co-locating Harbor, its Postgres, the Envoy data plane and the dind DaemonSet on 8 threads, and the documented cause of the "Harbor outages" in runs 136/137/158. These three first because they are the lowest-stakes: small alpine-based images, short Dockerfiles, and nothing else builds FROM them. If the batching approach is wrong, it is wrong here rather than on the release toolchain. Remaining batches, ordered by blast radius and rebuild cost (the LABEL's position decides the latter — near the end of the file means the registry cache covers everything before it): 2. mkdocs-runner, techdocs-runner, techdocs-builder (techdocs chain) 3. semantic-release{,-monorepo,-rust}, rust-releaser (release toolchain) 4. agent-runner, php-ci-runner, playwright-runner (cheap; playwright is large but cache-friendly) 5. rust-ci-runner then tauri-ci-runner, and ci-runner + helm-deploy SOLO — tauri builds FROM rust-ci-runner, and ci-runner/helm-deploy are the only two images whose LABEL sits near the TOP of the Dockerfile, so they are the only two that cannot use the cache and get a full rebuild. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.