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

Support multiple oem partitions #1140

Closed
mudler opened this issue Feb 23, 2022 · 0 comments
Closed

Support multiple oem partitions #1140

mudler opened this issue Feb 23, 2022 · 0 comments
Labels
kind/enhancement New feature or request need/discussion Issues that needs reviewed and are still untriaged by the team
Projects

Comments

@mudler
Copy link
Contributor

mudler commented Feb 23, 2022

Is your feature request related to a problem? Please describe.
Currently we support pulling datasources from CDROM, but that has drawbacks as #1124. Our current dracut module currently reads a oem partition that can be used during the initramfs stage (which can be even separate from the system one).

As datasources are pulled in runtime by the cloud-init system, they require network in order to pull things from. We currently can't support network configuration via datasources at the moment because of this.

Using rd.neednet=1 in bootargs also forces to have network configuration, and thus datasources can't be used to provide any network configuration, cdrom data source included. Setting that argument makes CDROM datasource not work since it would fail booting without network #388.

While we could early pull cdrom data, it would lately fail to execute as the boot stage and initramfs stage are not guaranteed to have network unless rd.neetnet=1 is set: this is tied also to #1124 as the standard cloud init is mapped to boot and initramfs stages.
Both of them are not guaranteed to have network if rd.neednet=1 is not set , leaving then in the cold ssh keys for users from network in a scenario like rancher/elemental#15

Describe the solution you'd like
A way in cOS to have support for multiple oem partitions, which are in turn overlayed automatically in /oem or in a read-only representation of /oem (e.g. /oem_ro). This would allow to have multiple OEM partitions (coming from different sources, as CDROM, system partitions, usb stick and so on) and have an unified view. In the same way it can be used to provide network configuration in the early stages in place of using the cloud-init datasource mechanism.

In case of opting for a read-only view, derivatives can specify to read in such path for cloud-init, as per https://rancher-sandbox.github.io/cos-toolkit-docs/docs/customizing/general_configuration/ ( see CLOUD_INIT_PATHS ), and we should update our defaults accordingly.

Describe alternatives you've considered
Using separate partitions for initrd oem and system oem. It makes the implementation more convoluted and requires bootargs to be set specifically via GRUB, depending on the condition.

Additional context

@mudler mudler added the kind/enhancement New feature or request label Feb 23, 2022
@mudler mudler self-assigned this Feb 23, 2022
@mudler mudler removed their assignment Feb 23, 2022
@mudler mudler added this to 💡 Untriaged in Releases Feb 23, 2022
@mudler mudler added the need/discussion Issues that needs reviewed and are still untriaged by the team label Feb 25, 2022
@mudler mudler changed the title Support multiple COS_OEM partitions Support multiple oem partitions Mar 1, 2022
@mudler mudler closed this as completed Mar 1, 2022
Releases automation moved this from 💡 Untriaged to ✅ Done Mar 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement New feature or request need/discussion Issues that needs reviewed and are still untriaged by the team
Projects
No open projects
Releases
✅ Done
Development

No branches or pull requests

1 participant