docs(bom): wrap auto-generated image inventory with hand-written prose#773
Conversation
Closes the second half of #741 (1b — content/prose). The first half landed via #763 (tooling, deterministic output, scheduled refresh); this PR adds the explanation around the auto-generated table that customers need to interpret it. What's new in `docs/user/container-images.md`: - Plain-language intro explaining the page's purpose, who maintains it, and how it relates to the CycloneDX JSON release artifact. - "How to read this list" section: explicit-vs-implicit images, per-registry rationale (why ngc/ghcr/quay/registry.k8s.io/ECR/etc.), and the reproducibility caveat for unpinned charts. - "Regenerating locally" with the three relevant make targets. - "Related" links to component catalog, the supply-chain epic, and the air-gap follow-up issue. Auto-generated content is now bracketed by `<!-- BEGIN AICR-BOM -->` / `<!-- END AICR-BOM -->`. `make bom-docs` splices fresh BOM content between the markers via awk; prose outside the markers is preserved. Verified idempotent (md5 stable across consecutive runs). Mechanics that enable the splice: - `pkg/bom.Metadata.NoTitle` — opt-in flag suppressing the H1 in WriteMarkdown so the body can be embedded as a section of a larger doc (off by default; existing callers unchanged). - `tools/bom -no-title` plumbs the flag through. - `make bom-docs` now requires existing markers in the doc and refuses to clobber prose; prints a clear error if markers are missing. Issue cross-references in this commit and in the doc itself use the correct numbering (#739 epic; #740 pinning policy; #741 docs; #742 BOM tool; #743 air-gap; #744 untagged refs; #745 provenance; #748 chart pins; #749 digest pins).
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Enterprise Run ID: 📒 Files selected for processing (6)
📝 WalkthroughWalkthroughThe pull request introduces support for suppressing H1 titles in BOM Markdown output. A new Estimated code review effort🎯 2 (Simple) | ⏱️ ~15 minutes 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Coverage Report ✅
Coverage BadgeMerging this branch will increase overall coverage
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. |
Summary
Closes the second half of #741 (1b — content/prose). The first half landed via #763 (tooling, deterministic output, scheduled refresh); this PR adds the explanation around the auto-generated table that customers need to interpret it.
Refs #739, #741. Filed alongside as a follow-up: #765 (gpu-operator BOM extracts a bare
vgpu-managerref — surfaced by publishing the doc, scoped out of this PR).Type of Change
Component(s) Affected
docs/user/container-images.md)Makefile—bom-docssplice logic)pkg/bom—NoTitleflag)Implementation Notes
Doc structure.
docs/user/container-images.mdis now wrapped:make bom-docssplices instead of overwriting. The target now:-no-titleto a temp dir.awkto replace content between<!-- BEGIN AICR-BOM -->and<!-- END AICR-BOM -->with the fresh body, preserving everything outside.Verified idempotent: two consecutive
make bom-docsruns produce identical md5.pkg/bomAPI addition.Metadata.NoTitle boolopt-in flag (off by default) that suppresses the H1 line so the body can be embedded as a section of a larger document. The same pattern will be useful for the planned per-bundle SBOM inpkg/bundler(#750).Numbering note. I'd drifted from the actual issue numbering in earlier work; cross-references in this PR's commit message, the doc itself, and the freshly-corrected #739 epic body now consistently use:
Testing
Idempotency check:
pkg/bomcoverage held with newTestWriteMarkdown_NoTitleSuppressesH1.Risk Assessment
NoTitleflag is opt-in and defaults off (no behavior change for existing callers);make bom-docsis now safer (errors on missing markers instead of clobbering prose). Easy to revert.Rollout notes: Future contributors who edit recipes need to run
make bom-docsto refresh the auto-generated section; the splice preserves their prose untouched. The weekly refresh action keeps the same behavior.Checklist
make testwith-race)make lint)git commit -S)