Repository navigation
butane/openshift: stabilize spec 5.0.0 - #2334
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: coreos/ignition/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (38)
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review. 📜 Recent review details🧰 Additional context used📓 Path-based instructions (2)Documentation served via GitHub Pages/Jekyll.⚙️ CodeRabbit configuration file Files:
Source excerpt: **License header**: Required on all `.go` files (Apache 2.0, 13-line header)📄 CodeRabbit inference engine (AGENTS.md) Files:
🪛 LanguageToolbutane/docs/config-openshift-v5_1-exp.md[style] ~11-~11: ‘without warning’ might be wordy. Consider a shorter alternative. (EN_WORDINESS_PREMIUM_WITHOUT_WARNING) [style] ~66-~66: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~75-~75: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~75-~75: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE) [style] ~76-~76: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~87-~87: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~106-~106: It’s more common nowadays to write this noun as one word. (RECOMMENDED_COMPOUNDS) [style] ~128-~128: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~134-~134: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~139-~139: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~141-~141: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~156-~156: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~156-~156: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE) [style] ~157-~157: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~187-~187: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~191-~191: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~196-~196: It’s more common nowadays to write this noun as one word. (RECOMMENDED_COMPOUNDS) [style] ~202-~202: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) butane/docs/config-openshift-v5_0.md[style] ~64-~64: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~73-~73: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~73-~73: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE) [style] ~74-~74: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~85-~85: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~104-~104: It’s more common nowadays to write this noun as one word. (RECOMMENDED_COMPOUNDS) [style] ~126-~126: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~132-~132: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~137-~137: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~139-~139: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~146-~146: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~146-~146: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym. (ENGLISH_WORD_REPEAT_BEGINNING_RULE) [style] ~147-~147: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~168-~168: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~172-~172: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) [style] ~183-~183: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’. (WHETHER) 🔇 Additional comments (36)
📝 WalkthroughWalkthroughAdds stable OpenShift 5.0.0 and experimental 5.1.0 support. Both versions include configuration schemas, validation, and translation to MachineConfig or Ignition output. The change also registers the versions and updates generated specifications, upgrade guidance, and release notes. ChangesOpenShift 5.0 and 5.1 support
Priority: ➖ Normal Estimated code review effort: 4 (Complex) | ~60 minutes Change: Feature Sequence Diagram(s)sequenceDiagram
participant Caller
participant ToConfigBytes
participant IgnitionOutput
participant MachineConfigOutput
Caller->>ToConfigBytes: provide input bytes and translation options
alt Raw output
ToConfigBytes->>IgnitionOutput: translate to the version's Ignition config
else MachineConfig output
ToConfigBytes->>MachineConfigOutput: translate to the version's MachineConfig
end
Merge Risk: ⚪ Minimal · up to The new versions consistently distinguish stable and experimental support. The special-mode documentation matches translation behavior; no actionable merge-blocking issue remains after normal checks. 🚥 Pre-merge checks | ✅ 5 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 51.52% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 33 functions across 16 files. (22 skipped: 22 unsupported.)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Binary size report (
|
| Size | |
|---|---|
Base (main) |
33MiB |
| PR (#2334) | 33MiB |
| Delta | +77KiB (0.23%) |
Target Ignition 3.5.0 to match OCP 5.0's MCO, using the 4.22 stable implementation and its restrictions. Preserve the existing 4.23 experimental spec for its separate stabilization. Refs coreos#2333
61d2ea7 to
f0a8d65
Compare
Start the next OpenShift development spec from v4_23_exp, retaining its Ignition 3.7 experimental target and GRUB behavior. Keep the existing 4.23 development line available for its separate stabilization. Refs coreos#2333
Document the stable 5.0 and experimental 5.1 feature sets and their different Ignition targets. Regenerate OpenShift specs, correct experimental mode-bit wording, and add upgrade guidance and release notes.
Guard dispatch, parser compatibility, and generated documentation across stable and experimental OpenShift versions. Verify the new 5.1 development line mirrors 4.23 experimental, including GRUB behavior and MCO restrictions.
f0a8d65 to
78cf80b
Compare
Summary
openshift 5.0.0, based on the existing 4.22 implementation and targeting Ignition 3.5.0, which OCP 5.0's MCO currently parses.openshift 5.1.0-experimentalby copying the existing 4.23 experimental implementation, including its Ignition 3.7.0-experimental target and experimental GRUB behavior. Keep4.23.0-experimentalavailable and unchanged in behavior.Related to #2333. Follows the stabilization and next-experimental-spec structure from coreos/butane#704, accounting for the compatibility correction discussed in coreos/butane#715.
Commit structure
butane/openshift: stabilize spec 5.0.0butane/openshift: add v5_1_expbutane/docs: update for OpenShift 5.0.0 stabilizationbutane/openshift: add stabilization regression testsCompatibility and scope
The inspected MCO
release-5.0revision importsconfig/v3_5and uses itsParseCompatibleVersionentry point:https://github.com/openshift/machine-config-operator/blob/cafc37a760319b235d5301e3790f83e2de9d78f7/pkg/controller/common/helpers.go#L32-L33
Stable 5.0 therefore uses
fcos/v1_6,base/v0_6, and Ignitionconfig/v3_5, with the MCO restrictions tracked in #2279. Experimental 5.1 mirrors 4.23 usingfcos/v1_8_exp,base/v0_8_exp, andconfig/v3_7_experimental. Experimental features are for development and testing and do not imply OCP 5.0 MCO support.No existing translator behavior, Ignition specs, or dependencies are changed. OCP 4.23 stabilization remains separate.
Documentation distinguishes stable and experimental features, fixes prerelease matching for the special-mode-bit warning, and refreshes generated OpenShift specs/navigation. Regenerating the 4.23 experimental page also picks up its existing virtiofs documentation. Unrelated FCOS and Flatcar generated-documentation drift is excluded.
Validation
go test ./butane/..../test: license, formatting, vet, race-enabled unit tests, and documentation validation passed. The local run excluded unrelated nested.claude/worktrees from the script's source-file scan.go test -race -count=3 ./butane/config ./butane/config/openshift/v5_0/... ./butane/config/openshift/v5_1_exp/... ./butane/internal/docgo vet ./butane/config/openshift/v5_1_exp/..../build butaneand./build ignition-validateDraft follow-up
Reconfirm the Ignition target against the OCP 5.0 release payload and validate generated MachineConfigs on an OCP 5.0 cluster before marking ready. Local tests exercise the Ignition 3.5 parser used by the MCO; they do not replace cluster validation.