Repository navigation
check-kolla: run the drift detector from osism/release - #617
Merged
Merged
Conversation
ideaship
force-pushed
the
retire-local-kolla-inventory-check
branch
from
September 4, 2026 19:27
32b548a to
c9c4f28
Compare
This repo has carried its own inventory-drift check since 2022, gated in CI since #602 (merged 2026-06-30). One day later osism/release landed kolla_inventory, a plugin in its check-drift tool that does the same comparison, and its docs described this script as retired -- which it was not. Two implementations of one check have run side by side ever since, and they had already diverged: this one compares against a single hardcoded KOLLA_BRANCH = "stable/2025.2", so it never saw that 2026.1 renames kolla-toolbox to kolla_toolbox and kolla-logs to kolla_logs and adds six more groups. The plugin, now range-aware, checks every release OSISM builds. Keep the gate, drop the duplicate implementation: tox -e check-kolla now invokes the plugin instead of the local script, and the job gains osism/release in required-projects so Zuul checks it out alongside this repo. The pipelines and the job name do not change. The gate is what makes this worth wiring rather than simply deleting. osism/release runs its detector in periodic-daily only, and reads this repo from GitHub main, so it can report drift a generics change introduced but never block it. Zuul checks out the proposed change here, so the plugin runs against the inventory under review -- and speculative merging means an in-flight change to the detector is tested against a real inventory before it lands. Nothing is suppressed that was suppressed before. IGNORE_ROLE_GROUPS and IGNORE_NOT_DEPLOYED are covered entry for entry by the plugin's shipped allowlist, including its own stale-entry guard; a local run reports 19 allowlisted and 0 stale. The detector needs only requests and PyYAML, both already pinned in this repo's requirements.txt at the same versions, so the tox env keeps its deps. The script's own guidance is not lost either: the plugin's remediation gives the same add-or-allowlist instruction, and names both spellings a renamed group needs while two releases want different ones. python3 ../release/src/check-drift.py --group kolla \ --plugin kolla_inventory --base-dir .. --remote-fallback \ --use-raw-get --base-dir .. finds this repo and osism/release as siblings, which is both the Zuul workspace layout and the usual one-directory-per-org local layout; kolla-ansible is not checked out, hence --remote-fallback. Each release contributes one file read, so --use-raw-get fetches those directly rather than a source tarball per ref. Verified locally: tox -e check-kolla passes against this branch, and fails with exit 1 against a main checkout that still lacks the 2026.1 groups. Depends-On: #616 Depends-On: osism/release#2693 Assisted-by: Claude:claude-opus-5 Signed-off-by: Roger Luethi <luethi@osism.tech>
ideaship
force-pushed
the
retire-local-kolla-inventory-check
branch
from
September 4, 2026 19:33
c9c4f28 to
993abd4
Compare
ideaship
marked this pull request as ready for review
September 9, 2026 09:01
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.
Option B of the consolidation: keep the gate, drop the duplicate implementation.
Why there are two
This repo has carried
src/check-kolla-inventory.pysince 2022, gated in CI since#602 (merged 2026-06-30). One day later, osism/release landed
kolla_inventory— a plugin in itscheck-drifttool doing the same comparison —and its docs described this script as "retired", which it was not. Both have run
side by side since, and they had already diverged: this one compares against a
single hardcoded
KOLLA_BRANCH = "stable/2025.2", so it never saw that 2026.1renames
kolla-toolbox→kolla_toolboxandkolla-logs→kolla_logsand addssix more groups. The plugin, now range-aware, checks every release OSISM builds.
What changes
tox -e check-kollainvokes the plugin instead of the local script, and the jobgains
osism/releaseinrequired-projects. Pipelines and the job name do notchange.
--base-dir ..finds this repo and osism/release as siblings — both the Zuulworkspace layout and the usual one-directory-per-org local layout.
kolla-ansible is not checked out, hence
--remote-fallback; each releasecontributes one file read, so
--use-raw-getfetches those directly rather than asource tarball per ref. The detector needs only
requestsandPyYAML, bothalready pinned in this repo's
requirements.txtat the same versions, so the toxenv keeps its
deps.Why wire it rather than just delete the job
osism/release runs its detector in periodic-daily only, and reads this repo
from GitHub
main— so it can report drift a generics change introduced, but neverblock it. Zuul checks out the proposed change here, so the plugin runs against
the inventory under review. Speculative merging is a bonus in the other direction:
an in-flight change to the detector gets tested against a real inventory before it
lands.
Nothing is suppressed that was not suppressed before
IGNORE_ROLE_GROUPSandIGNORE_NOT_DEPLOYEDare covered entry for entry by theplugin's shipped allowlist, which has its own stale-entry guard. A local run
reports 19 allowlisted, 0 stale. The script's guidance is not lost either: the
plugin's remediation gives the same add-or-allowlist instruction, and additionally
names both spellings a renamed group needs while two supported releases want
different ones.
Verification
tox -e check-kollapasses against this branchmaincheckout that still lacks the 2026.1 groups, i.e. thegate still gates
Ordering — must not merge first
The new gate is red on
mainuntil the eight 2026.1 groups exist, so this carriesa
Depends-On:forZuul speculatively merges that change into the workspace, so the gate job here runs
against the combined state and the dependency is enforced in the gate pipeline
rather than by a note. It also needs the range-aware detector it invokes:
#2693is aDepends-On:too. It is not a hard merge dependency — the pluginexists in
osism/releasemaintoday, just single-ref — but without it in theworkspace the gate job proves nothing useful: the single-ref check at
stable/2025.2is green whether or not the 2026.1 groups exist, so it cannotdistinguish a working gate from a no-op. The first run here did exactly that
(one read,
multinode @ stable/2025.2, 16 allowlisted). With both dependenciesthe job reads five refs and 19 allowlisted, which is a test that can fail.
Originally opened with
#616as its base branch. That gets no CI at all — Zuuldid not enqueue it, while two draft PRs based on
mainwere enqueued the sameminute — so it is rebased onto
mainwithDepends-On:instead. Worth knowingfor future stacked work in this tenant.
Not in this PR
osism/releasedocs still describe this script as retired; that sentence becomestrue when this merges. And note that the alternative once proposed for this repo —
bumping
KOLLA_BRANCHtostable/2026.1— would have failed the job outrightrather than reporting drift:
telegrafis gone from multinode at 2026.1, so thescript's stale-ignore guard exits 3.