bootc-dev / bootc-dev/bootc

Support a plugin system

Open
#1,520 3 comments 5 reactions 0 assignees View on GitHub
enhancement triaged
Dominant language
Rust
Stars
2.3k
Forks
230
Avg merge
3d 12h
Merged PRs (30d)
38

Description

Add the ability for other software to augment what bootc can do.

A primary use case is package layering, which is necessarily distro-dependent and so shouldn't live directly in bootc. This would allow bootc to remain the entrypoint and single pane of glass for managing the system, rather than (if e.g. $pkgmanager were the one driving bootc from higher up in the stack) awkwardly being an implementation detail. Awkwardly, because the story would be "you use bootc to manage your node if you don't layer packages, otherwise you must use `$pkgmanager`".

But that said, this would be generally useful for other kinds of layering/mutation (or even reading: e.g. scanning, or e.g. an "upgrade compatibility" checker could be implemented this way).

The main integration points I think are:
- upgrades: plugins need to be able to hook into the upgrade process; e.g. bootc downloads the payload, then hands it off to configured plugins, which hands back a final image to actually deploy
- change detection: plugins need to be able to report whether another mutation is required even if the base didn't change
- status: plugins need to be able to feed into the `bootc status` output, including ideally in its machine-readable output formats

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.