Hi,
I was discussing containerization and making RPMs more declarative with Aleksandra
Fedorova, and she suggested I ask here and mention Zbigniew Jędrzejewski-Szmek.
It sounds like there's already some effort to make tasks in RPMs like adding users
more declarative:
https://docs.fedoraproject.org/en-US/packaging-guidelines/UsersAndGroups/
I'm working with rpm-ostree (
https://coreos.github.io/rpm-ostree/) and Butane
(
https://coreos.github.io/butane/) to manage system state more declaratively. Currently
rpm-ostree manages RPMs and then Butane handles things like putting config files in /etc
or creating users. It sounds like there's some overlap between the changes in RPMs
around managing users and Butane, so I'm wondering if there could be more
cooperation.
If RPMs relied less on scriptlets and more on declarative config that could be merged, it
would make optimizations for containerization a lot easier. Each package in a container
image could be in a separate layer, which would allow much better sharing between
container images. Adding a single package to a container image could just require pulling
the package, rather than running a scriptlet that could possibly change the base image.
Do you think it would be possible to move some of the configuration tasks performed in
scriptlets into something declarative that could be merged with other configuration?
Are there any ways rpm-ostree/Butane could align itself better with the direction RPMs are
taking? Is there a solution or format that would satisfy the requirements of both tools?
Thanks,
Matthew