Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: agama.yaml should be packaged seperately from agama-live #602

Closed
sysrich opened this issue Jun 5, 2023 · 6 comments
Closed

Proposal: agama.yaml should be packaged seperately from agama-live #602

sysrich opened this issue Jun 5, 2023 · 6 comments
Labels
enhancement New feature or request

Comments

@sysrich
Copy link
Contributor

sysrich commented Jun 5, 2023

I'm not sure exactly how agama-live is put together, as the documentation seems to reference _service files that are no longer in use

But one thing is clear, there is a single monolithic agama.yaml used by the installer

https://github.com/openSUSE/agama/blob/master/service/etc/agama.yaml

This currently offers "all" the products Agama could install

And then when we want to offer something like an ALP-only flavour, magic is done as part of the kiwi config.sh

if [[ "$kiwi_profiles" == "ALP" ]]; then
	filter_config=$(find /usr/lib64/ruby/gems/3.2.0/gems -name filter-config.rb)
	ruby $filter_config /etc/agama.yaml ALP-Bedrock ALP-Micro >/etc/agama.yaml.new
	mv /etc/agama.yaml.new /etc/agama.yaml
fi

As fancy as this is, I do not think this will scale, at all

I see a future with multiple different Agama-based installation media all needing different content in their agama.yamls to offer different combinations of products, with different defaults - eg.

all openSUSE Products
all SUSE Products
all ALP Products
all openSUSE immutable desktops (Because the all openSUSE Products installer has too many options)
Some special media for one special Product (that needs more a different set of defaults than the above)
etc etc and so on

doing funky filters and sed's in image builds is not going to be flexible enough for all the different permutations of agama.yaml people are going to want to have for their Products as the adoption grows.

As much as it pains me, I suggest we look to packaging agama.yaml in separate rpms

I propose a naming scheme like "agama-control-$FOO", where $FOO could be the name of a family of products (openSUSE, SUSE, ALP) or the name of a Product, or whatever we need to differentiate it from the other flavours of "agama-control-*"

The packages would include nothing besides the correct agama.yaml for that usecase, and the package would have a "Provides: agama-control" which could then be used as a generic requires on packages like agama-cli so we always make sure that agama has an agama.yaml :)

what do you all think?

@sysrich sysrich added the enhancement New feature or request label Jun 5, 2023
@imobachgs
Copy link
Contributor

I support this. Some months ago we were discussing about this problem (when we started to build a separate ALP-based ISO), but as we were the only users of Agama, we decided to postpone the implementation. Actually, we even considered having separate files for each product and putting them in /etc/agama.d.

Thanks for bringing up this topic again! It looks like we will need to put some effort into this soon.

@Conan-Kudo
Copy link

Please don't put packaged stuff in /etc, though.

@imobachgs
Copy link
Contributor

Please don't put packaged stuff in /etc, though.

OK, is /usr/etc a better place?

@Conan-Kudo
Copy link

Conan-Kudo commented Jun 8, 2023

/usr/share/agama/conf.d please.

@imobachgs
Copy link
Contributor

@jreidinger
Copy link
Contributor

fixed with #822

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants