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

docs: document the mechanism for after installation setup #1695

Merged
merged 1 commit into from
Oct 24, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions doc/after_installation_setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Further configuration

TL;DR Agama will support running post-installation scripts after the first boot. No specific support
for a CMS[^cms], Combustion/Ignition, etc.

It is rather typical that users want to perform some additional configuration steps once the
installation is finished. To cover those use cases, AutoYaST offers support for running
[user-defined
scripts](https://documentation.suse.com/sles/15-SP5/html/SLES-all/cha-configuration-installation-options.html#createprofile-scripts)
and the [YaST2 Configuration Management
module](https://github.com/yast/yast-configuration-management/).

But what are the plans for Agama? This document describes Agama's take on this topic, including the
rationale behind the decision.

[^cms]: Configuration Management System

## Using user-defined scripts

Enabling users to run their own scripts is the minimal Agama could do. With that support, a user can
decide what to do with them. Actually, SUMA and many customers already follow this approach with
AutoYaST.

Furthermore, it looks like a must if we want to offer a good level of backward compatibility with
AutoYaST. However, whether we should unify the `post-installation` and `init-scripts` into a single
type of scripts is debatable.

## Setting up a CMS

The [YaST2 Configuration Management module](https://github.com/yast/yast-configuration-management/)
can set up the system to connect to a CMS. It even supports [Salt parametrizable
formulas](https://imobachgs.github.io/yast/2017/03/01/yast2-cm-gets-support-for-salt-parametrizable-formulas.html)
since 2017. However, we have the impression that no one uses them in the context of AutoYaST.

As this set up can be achieved by using a user-defined script, we will not implement specific
support for any CMS (at least by now).

## Using Combustion/Ignition

[openSUSE MicroOS](https://microos.opensuse.org/) images rely on Combustion (or Ignition) to perform
additional configuration steps, so we considered to use it in Agama too. However, you cannot use the
root file system to provide the Combustion scripts (and additional assets). You need to provide an
additional source (a URL, a USB stick, or specific
[QEMU](https://www.qemu.org/docs/master/specs/fw_cfg.html) and
[VirtualBox](https://docs.vmware.com/en/VMware-Tools/12.4.0/com.vmware.vsphere.vmwaretools.doc/GUID-D026777B-606D-4442-957A-B953C2049659.html)
mechanisms).

For that reason, Agama will not rely on Combustion by now.

## References

- [PED-10827](https://jira.suse.com/browse/PED-10827)