Repository navigation
ci: validate the chart against the pinned decdn release and drop version-pinned prose - #157
Merged
Merged
Conversation
…ion-pinned prose CI's helm job now runs make lint-helm with the decdn CLI of the release the chart pins (appVersion), fetched by the new scripts/fetch-decdn-cli.sh and verified as the decdn_node role verifies a release: a good signature from a still-valid key in the vendored KEYS (gpg exit 0, VALIDSIG, no EXPKEYSIG/REVKEYSIG/EXPSIG), exactly one manifest entry for the archive and `decdn <version>` from the binary. Every chart PR and every decdn bump now gets the real `decdn config validate`. bump_decdn.py rewrite also moves the commented examples keyed by a variable name (both inventory trees, cloud-init/user-data-publisher.yaml) and AGENTS.md's pinned decdn version; prose that restated a pinned decdn or sponsord version now names the pin instead, and make test-scripts checks AGENTS.md's numbers against the role defaults. open-decdn-bump.sh drops the old-version grep and its "Before merging" checklist: a bump PR with no "Needs work" list and a green CI needs no hand edits. Closes #145 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟢 Approval recommended
The verification chain, CI integration, bump rewrites, synchronized examples, and negative tests are complete and consistent.
0 open findings
What changed in this PR
Adds verified real-binary chart validation to CI and automates version-reference updates during deCDN bumps.
Changes:
- Adds and tests secure fetching of the pinned
decdnCLI. - Extends bump automation to update keyed examples and
AGENTS.md. - Replaces duplicated version numbers in documentation with pin references.
| File | Description |
|---|---|
.github/workflows/ci.yml |
Runs chart validation with the verified CLI. |
scripts/fetch-decdn-cli.sh |
Fetches and verifies the pinned CLI. |
tests/scripts-test.sh |
Tests fetch security and CI path filters. |
scripts/bump_decdn.py |
Rewrites keyed version examples and prose. |
scripts/tests/test_bump_decdn.py |
Covers the expanded rewrite behavior. |
scripts/open-decdn-bump.sh |
Removes obsolete manual bump steps. |
AGENTS.md |
Documents automated validation and pin handling. |
CONTRIBUTING.md |
Updates lint-helm guidance. |
charts/decdn-node/tests/render-test.sh |
Documents CI-provided CLI validation. |
charts/decdn-node/README.md |
Documents verified CLI fetching. |
ansible/roles/decdn_node/README.md |
Updates release-bump workflow documentation. |
ansible/README.md |
Replaces duplicated versions with pin names. |
cloud-init/README.md |
References role pins instead of versions. |
compose/README.md |
References Compose image pin variables. |
compose/.env.example |
Generalizes the sponsord release comment. |
ansible/roles/sponsord/README.md |
Generalizes release documentation and checklist. |
ansible/roles/sponsord/tasks/main.yml |
Uses a non-current example version. |
ansible/roles/sponsord_onramp/README.md |
Generalizes release documentation. |
ansible/roles/sponsord_onramp/tasks/main.yml |
Uses a non-current example version. |
ansible/inventory/group_vars/sponsord_onramp_hosts.yml |
References the node version pin. |
examples/collection-fleet/inventory/group_vars/sponsord_onramp_hosts.yml |
Mirrors the inventory documentation update. |
ansible/galaxy/publisher/README.md |
References sponsord pin variables. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
Closes #145. Once this lands, a decdn bump PR whose CI is green and whose body has no "Needs work" list needs no hand edits.
Chart check in CI
scripts/fetch-decdn-cli.sh <dir>downloads thedecdnCLI of the releaseappVersionpins and verifies it asroles/decdn_node/tasks/install.ymldoes. It prints only the binary's path on stdout. Checks:VALIDSIG) must come from a key in the vendoreddecdn-release-KEYS.asc;EXPKEYSIG,REVKEYSIGorEXPSIG(gpg --verifyexits 0 for those);sha256sum --check --strict;decdn <version>, checked before it is installed.helmjob runsmake lint-helmwithDECDN_CLIset from it. The assignment and the export are on separate lines, so a failed fetch fails the step instead of becoming a SKIPPED.helmpath filter adds the script and the KEYS file, andmake test-scriptschecks both are listed.Prose that named the version
bump_decdn.py rewritealso moves:decdn_node_versionanddecdn_node_source_refin host_vars,sponsord_onramp_decdn_releasein group_vars, in both inventory trees and incloud-init/user-data-publisher.yaml;make test-scriptschecks them against the role defaults.open-decdn-bump.shdrops the old-version grep and its "Before merging" checklist. The "Needs work" list and the exit codes are unchanged.Testing
make test-scriptspasses. It now builds a fixture release signed with throwaway gpg keys and served overfile://:bump_decdnunit tests pass, with the new files covered and an AGENTS.md wrap test.rewriteto 9.8.7 in a scratch copy moves every pin, example and AGENTS.md. The pin check passes, andexamples/collection-fleetstays identical toansible/inventory.fetch-decdn-cli.shagainst the real v0.0.4 release, thenmake lint-helmwith that binary:decdn config validatepasses on all threeci/*.yamlrenders.make lintpasses.Not done: making
render-test.shfail when it runs in CI withoutDECDN_CLI.release-chart.ymlalso runsmake lint-helmwithout a binary, so that guard would break chart releases.🤖 Generated with Claude Code