Repository navigation
ci(testing): publish a develop-collector-omnibus testing image - #1016
Merged
Merged
Conversation
The testing channel published only the all-in-one omnibus image. That image starts its collectors from rootfs/etc/services.d, so it cannot exercise any change to the docker/entrypoint-collector*.sh scripts, which belong to Dockerfile.collector, Dockerfile.collector-omnibus and Dockerfile.collector-performance. A collector-side fix therefore had no testing tag at all: it could not be validated on a real host before release, and a reporter waiting on the fix had nothing to try. deploy-testing.yml now also builds Dockerfile.collector-omnibus and pushes develop-collector-omnibus. collector-omnibus is the one addition that covers the gap, because it carries all six collectors and is the image most hub/spoke deployments run. It is built for amd64 only. The image installs zfsutils-linux, mdadm, btrfs-progs and fio, and emulating that for arm64 under QEMU would dominate the runtime of every develop push. Stable releases still publish both architectures, and the build uses its own cache scope so it does not evict the all-in-one image's cache. Correcting the published tag table while adding to it, because it listed tags that no workflow produces. docs/DEPLOYMENTS.md advertised eight testing tags and eight beta tags; deploy-testing.yml published two and deploy-beta.yml publishes two. The stable row was also missing latest-collector-omnibus, which docker/image-matrix.json does build. Each row now matches its workflow, with a note that stable builds the full matrix while beta and testing publish a smaller set deliberately.
11 of 15 tasks
Starosdev
added a commit
that referenced
this pull request
Oct 20, 2026
## Summary Reverts #1016. Its premise was wrong and it caused an architecture regression on an existing tag. `docker-build.yaml` already triggers on pushes to `develop` and publishes `develop-${{ matrix.image }}` for every entry in `docker/image-matrix.json`, which includes `collector-omnibus`. `develop-collector-omnibus` therefore already existed, and multi-arch. The gap #1016 claimed to close was not real. The reason the tag was not found by inspection: the tag name is templated, so grepping the workflows for the literal string `develop-collector` matches nothing. ## The regression #1016 added a second, amd64-only build that pushed the same tag. Because #1016 touched only `deploy-testing.yml` and `docs/**`, it missed `docker-build.yaml`'s path filters, so the Docker workflow did not run on that push to restore the multi-arch manifest. Observed on a host after the merge: | Tag | Architectures | | --- | --- | | `develop-collector-omnibus` after #1016 | amd64 | | `develop-collector` from `docker-build.yaml` | amd64, arm, arm64 | An arm64 host pulling `develop-collector-omnibus` would no longer find a matching manifest. ## Type of Change - [x] Bug fix (non-breaking change that fixes an issue) - [ ] New feature (non-breaking change that adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation update - [ ] Refactoring (no functional changes) - [x] CI/CD or infrastructure change ## Related Issues Reverts #1016. Follow-up to #1011. ## Changes Made - Removes the duplicate `develop-collector-omnibus` build step from `deploy-testing.yml`. - Restores the published tag tables in `docs/DEPLOYMENTS.md` and `docs/TROUBLESHOOTING_DOCKER.md`. The original tables were correct; #1016 replaced them with a narrower list that described only `deploy-testing.yml` and ignored the tags `docker-build.yaml` publishes on the same push. ## Testing - [x] I have tested this locally - [ ] I have added/updated tests that prove my fix/feature works - [x] All existing tests pass - `deploy-testing.yml` parses as YAML and is byte-identical to its state before #1016. - Verified from the workflow definitions rather than by grepping for tag strings: `docker-build.yaml` runs on `push` to `develop`, and its `docker/metadata-action` config emits `develop-${{ matrix.image }}` for each of the 8 matrix entries. - The multi-arch manifest for `develop-collector-omnibus` needs one run of `docker-build.yaml` to be restored, since this revert only stops the overwriting. Being dispatched separately against `develop`. ## Checklist - [x] My code follows the project's code style - [x] I have performed a self-review of my code - [x] I have commented my code where necessary (particularly complex areas) - [x] I have updated the documentation if needed - [x] My changes generate no new warnings - [x] No console.log, debug statements, or commented-out code ## Additional Notes Review: not required (removes a build step added hours earlier and restores two documentation tables to their prior content). One pre-existing documentation gap is left alone here to keep this a clean revert: all three channel rows omit `*-collector-omnibus`, which `docker/image-matrix.json` does build for stable, beta and develop alike. That deserves its own change rather than riding along with a revert.
This was referenced Oct 20, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The testing channel published only the all-in-one omnibus image, which cannot exercise a collector entrypoint change. That image is s6-based and starts its collectors from
rootfs/etc/services.d; thedocker/entrypoint-collector*.shscripts belong toDockerfile.collector,Dockerfile.collector-omnibusandDockerfile.collector-performance, anddocker/Dockerfilecopies none of them.The practical consequence showed up immediately after #1011, which changed those entrypoints: there was no testing tag anywhere that contained the change, so it could not be validated on a real host before release, and the reporter in discussion #1007 had nothing to try in the meantime.
Type of Change
Related Issues
Follow-up to #1011. Relevant to discussion #1007.
Changes Made
deploy-testing.ymlalso buildsdocker/Dockerfile.collector-omnibusand pushesdevelop-collector-omnibus.collector-omnibusis the single addition that closes the gap: it carries all six collectors and is the image most hub/spoke deployments run.linux/amd64only. The image installszfsutils-linux,mdadm,btrfs-progsandfio, and emulating that build for arm64 under QEMU would dominate the runtime of everydeveloppush. Stable releases still publish both architectures. Flagging this as the deliberate trade-off in this PR: if arm64 testing images matter more than develop push latency, the platform list is a one-line change.testing-collector-omnibus, so it does not evict the all-in-one image's cache.Tag table corrections
Adding to the published tag table surfaced that it listed tags no workflow produces, so this PR also makes it match reality:
latest-collector-omnibusdocker/image-matrix.json, includingcollector-omnibusbeta,beta-omnibusdevelop,develop-omnibus(plusdevelop-collector-omnibusafter this PR)docs/DEPLOYMENTS.mdanddocs/TROUBLESHOOTING_DOCKER.mdnow match their workflows, with a note that stable builds the full matrix while beta and testing publish a smaller set on purpose. Anyone who followed the old table and pulleddevelop-collectororbeta-collector-zfswas pulling a tag that does not exist.Testing
I have tested this locally
I have added/updated tests that prove my fix/feature works
All existing tests pass
deploy-testing.ymlparses as YAML, and both build steps resolve to the intended file, platforms and tags.Verified against the workflows rather than from memory:
deploy-beta.ymlpublishes two tags;docker-build.yamlbuilds fromdocker/image-matrix.json, which has 8 entries and includescollector-omnibus;docker/Dockerfilecontains no reference toentrypoint-collector.No new test. The change is a build step and three documentation edits; the real proof is the first
developpush publishing the tag, which is observable in the workflow run.Not verifiable before merge: this workflow only runs on a push to
develop, so the new step cannot execute on a pull request. Worth watching the first run after merge to confirm the build succeeds and the tag appears in GHCR.Checklist
Additional Notes
Review: not required (one additive build step plus documentation corrections; it publishes a new testing tag and changes no existing tag, image, or deployment).
The amd64-only decision and the scope of the tag table corrections are the two judgement calls here, and both are easy to reverse.