feat/resilience-metrics #44

Merged
finkregh merged 21 commits from feat/resilience-metrics into main 2026-08-19 10:37:04 +00:00
Owner
No description provided.
fix: resolve golangci-lint issues in tests and metrics
Some checks failed
Conventional Commits / Validate commit messages (pull_request) Failing after 2s
release / release-changelog (pull_request) Successful in 24s
Build PR Image / Build & push container image (pull_request) Successful in 1m30s
Build PR Image / build-container (pull_request) Successful in 0s
Build PR Image / Comment image tag on PR (pull_request) Failing after 3s
GO lint & test / check (pull_request) Successful in 3m0s
684e3aecaa
- errcheck: check w.Write return in metrics_test
- errorlint: use errors.Is for ErrReplayQueueFull comparison
- noctx: use httptest.NewRequestWithContext across tests
- revive: fix exported const comments and unused param
- staticcheck: use collectors.NewGoCollector/NewProcessCollector
- unparam: makePushPayload no longer takes unused repo arg
The renovate/renovate image (Containerbase) pre-populates
/tmp/containerbase/cache and /home/ubuntu/.cache (a symlink into it)
as root:root drwxrwxr-x — group-writable to GID 0 only. Running with
primary GID 12021 strips group-write access, causing EACCES for uv,
nix, pip, poetry, cargo, gradle, m2, gem, nuget, sbt, cocoapods,
conan, dart, flutter and other Containerbase-managed tool caches.

Extract the required uid:gid into `renovateContainerUser` so it cannot
drift across the three container creation sites.

Empirically verified on saturn.local against renovate/renovate:full.
See .unipi/docs/generated/2026-08-04-permission-issues-uv-nix.md and
.unipi/docs/plans/2026-08-04-containerbase-cache-and-gid-fix-plan.md.

Refs: TODO.md items 1 & 2

Co-Authored-By: pi-agent <noreply@earendil.works>
Signed-off-by: Oluf Lorenzen <finkregh@mafia-server.net>
Adds a second named Docker volume (default: renovate-containerbase-cache,
override via ROP_CONTAINERBASE_CACHE_VOLUME) bound at
/tmp/containerbase/cache inside child renovate containers. Persists every
Containerbase-managed tool cache across runs: uv, pip, poetry, nix (via
the baked NIX_STORE_DIR, so the public substituter stays valid), cargo,
gradle, m2, gem, nuget, sbt, cocoapods, conan, dart, flutter, hex, mix.

Podman/Docker auto-seeds the empty volume from the image on first mount,
preserving the root:root drwxrwxr-x permissions required by the 12021:0
container user (fixed in the previous commit).

Applies to executor, discovery and apply container creation sites.

Refs: TODO.md items 1 & 2

Co-Authored-By: pi <noreply@earendil.works>
Signed-off-by: Oluf Lorenzen <finkregh@mafia-server.net>
Add the new env var (introduced in the previous commit) to .env.example
and the README configuration table.

Co-Authored-By: pi <noreply@earendil.works>
Signed-off-by: Oluf Lorenzen <finkregh@mafia-server.net>
Mirror the existing CacheVolume assertions so the new second-volume
wiring cannot regress silently.

Co-Authored-By: pi <noreply@earendil.works>
Signed-off-by: Oluf Lorenzen <finkregh@mafia-server.net>
DRY the three container-creation sites (executor, discovery, apply) to
a single hostBinds() method on *DockerExecutor. Locks in the invariant
that both cache volumes must be mounted together: dropping either
would silently break caching for one class of tools. New unit test
guards the invariant.

Co-Authored-By: pi <noreply@earendil.works>
Signed-off-by: Oluf Lorenzen <finkregh@mafia-server.net>
docs(readme): add cache-volumes runbook subsection
Some checks failed
Conventional Commits / Validate commit messages (pull_request) Failing after 1s
Build PR Image / Build & push container image (pull_request) Failing after 3s
release / release-changelog (pull_request) Failing after 2s
GO lint & test / check (pull_request) Failing after 3s
Build PR Image / build-container (pull_request) Failing after 0s
Build PR Image / Comment image tag on PR (pull_request) Has been skipped
8701e87579
Explain the two persistent Docker volumes (renovate-cache and
renovate-containerbase-cache), the GID 0 requirement for child
containers, and how to reclaim disk. Cross-references the underlying
finding in .unipi/docs/generated/2026-08-04-permission-issues-uv-nix.md.

Co-Authored-By: pi <noreply@earendil.works>
Signed-off-by: Oluf Lorenzen <finkregh@mafia-server.net>
finkregh force-pushed feat/resilience-metrics from 8701e87579
Some checks failed
Conventional Commits / Validate commit messages (pull_request) Failing after 1s
Build PR Image / Build & push container image (pull_request) Failing after 3s
release / release-changelog (pull_request) Failing after 2s
GO lint & test / check (pull_request) Failing after 3s
Build PR Image / build-container (pull_request) Failing after 0s
Build PR Image / Comment image tag on PR (pull_request) Has been skipped
to ec43a4d6cb
Some checks failed
Conventional Commits / Validate commit messages (pull_request) Failing after 1s
Build PR Image / Build & push container image (pull_request) Successful in 2m7s
Build PR Image / build-container (pull_request) Successful in 0s
Build PR Image / Comment image tag on PR (pull_request) Failing after 48s
release / release-changelog (pull_request) Successful in 19s
GO lint & test / check (pull_request) Successful in 1m47s
2026-08-04 12:13:53 +00:00
Compare
finkregh force-pushed feat/resilience-metrics from ec43a4d6cb
Some checks failed
Conventional Commits / Validate commit messages (pull_request) Failing after 1s
Build PR Image / Build & push container image (pull_request) Successful in 2m7s
Build PR Image / build-container (pull_request) Successful in 0s
Build PR Image / Comment image tag on PR (pull_request) Failing after 48s
release / release-changelog (pull_request) Successful in 19s
GO lint & test / check (pull_request) Successful in 1m47s
to 618afbf4a0
Some checks failed
Conventional Commits / Validate commit messages (pull_request) Successful in 2s
release / release-changelog (pull_request) Successful in 27s
Build PR Image / Build & push container image (pull_request) Successful in 2m3s
Build PR Image / build-container (pull_request) Successful in 0s
Build PR Image / Comment image tag on PR (pull_request) Failing after 2s
GO lint & test / check (pull_request) Successful in 2m11s
Cleanup PR Image / Remove PR container image (pull_request) Successful in 1s
2026-08-04 12:37:59 +00:00
Compare
finkregh deleted branch feat/resilience-metrics 2026-08-19 10:37:04 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
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
finkregh/renovate-docker-operator!44
No description provided.