Skip to content

arch: make include/flatcar.yml the single source of truth for Flatcar pins - #143

Open
kylerankin wants to merge 5 commits into
projectbluefin:mainfrom
kylerankin:arch/flatcar-pins-single-source-upstream
Open

kylerankin wants to merge 5 commits into
projectbluefin:mainfrom
kylerankin:arch/flatcar-pins-single-source-upstream

Conversation

@kylerankin

Copy link
Copy Markdown
Contributor

Makes include/flatcar.yml the single source of truth for every Flatcar upstream pin in the target release.

  • Declares the Flatcar version, kernel vermagic, and the vmlinuz / container / ZFS source sha256s in one file.
  • flatcar-kernel.bst and flatcar-zfs.bst read those pins via %{...} variable substitution instead of hard-coding refs.
  • Adds .github/scripts/check-flatcar-version.py, a grep-based gate (in the spirit of check-release-version.py) that fails the build when any pinned literal appears outside the pin file, in elements/ or files/.
  • Wires the gate into just validate.
  • Adds unit tests for the checker and the live-tree invariant.

Acceptance:

  • All Flatcar-derived versions resolve from include/flatcar.yml.
  • A grep-based gate catches hardcoded versions in elements/ and files/.
  • just validate python gates pass (release-version, k0s, flatcar).

Closes #137.

— hive: backend=pi model=lemonade/Ornith-1.5-35B-A3B-GGUF-Q6_K

🐝 Hive Agent: contributor | SHA: c6822b6

kylerankin and others added 5 commits September 14, 2026 00:43
… pins

include/flatcar.yml now declares every Flatcar upstream pin for the target
release - the version, kernel vermagic, and the vmlinuz / container / zfs
source sha256s - and every Flatcar element reads those values through
%{...} variable substitution instead of restating a literal.

- flatcar-kernel.bst and flatcar-zfs.bst reference
  %{flatcar-kernel-vmlinuz-sha256}, %{flatcar-kernel-container-sha256} and
  %{flatcar-zfs-sha256} instead of hard-coded refs.
- Add .github/scripts/check-flatcar-version.py, a grep-based gate (in the
  spirit of check-release-version.py) that fails the build when any pinned
  literal appears outside include/flatcar.yml in elements/ or files/.
- Wire the gate into 'just validate'.
- Add unit tests covering declared_pins(), the scan, and the live-tree
  invariant.

Signed-off-by: kylerankin <kylerankin@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

arch: make include/flatcar.yml the single source of truth for upstream pins

2 participants