Skip to content

composefs: Read manifest+config from composefs repo instead of .imginfo#2044

Draft
cgwalters wants to merge 3 commits intobootc-dev:mainfrom
cgwalters:prep-composefs-manifest
Draft

composefs: Read manifest+config from composefs repo instead of .imginfo#2044
cgwalters wants to merge 3 commits intobootc-dev:mainfrom
cgwalters:prep-composefs-manifest

Conversation

@cgwalters
Copy link
Collaborator

Sticking this as draft for now

@github-actions github-actions bot added the area/install Issues related to `bootc install` label Mar 4, 2026
@bootc-bot bootc-bot bot requested a review from gursewak1997 March 4, 2026 21:18
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors how container image manifest and configuration are handled for composefs deployments. Instead of storing them in a separate .imginfo file, the manifest digest is now stored in the .origin file, and the manifest/config are read directly from the composefs repository. This is a good improvement that centralizes image metadata storage. The changes are consistent across the codebase, and backward compatibility for older deployments with .imginfo files is maintained. I've found one area for improvement regarding repository handling efficiency.

@cgwalters cgwalters force-pushed the prep-composefs-manifest branch 2 times, most recently from 0d8ac87 to ef5cb0f Compare March 13, 2026 11:27
Needed for handling GC later.

Assisted-by: OpenCode (Claude claude-opus-4-6)
Signed-off-by: Colin Walters <walters@verbum.org>
Update to the latest API here, just on general principle
since it gives us logging info which we use.

Assisted-by: OpenCode (Claude Opus 4)
Signed-off-by: Colin Walters <walters@verbum.org>
The latest composefs-rs stores manifest and config objects and
the manifest becomes a GC root, so we can use that instead of `.imginfo`
sidecar files.

The flow now is:
 bootloader entry -> deployment -> origin file
   -> manifest digest -> manifest -> [config | objects]

For backward compatibility, fall back to the legacy .imginfo
file if the .origin does not contain a manifest_digest key.

Drop the really old hacky fallback that did network fetches.

Note the manifest becomes part of the GC root.

Assisted-by: OpenCode (Claude claude-opus-4-6)
Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters cgwalters force-pushed the prep-composefs-manifest branch from ef5cb0f to d1f366d Compare March 13, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/install Issues related to `bootc install`

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant