Support multiple oem partitions #1140
Labels
kind/enhancement
New feature or request
need/discussion
Issues that needs reviewed and are still untriaged by the team
Projects
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 andinitramfs
stage are not guaranteed to have network unlessrd.neetnet=1
is set: this is tied also to #1124 as the standard cloud init is mapped toboot
andinitramfs
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#15Describe 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
The text was updated successfully, but these errors were encountered: