-
Notifications
You must be signed in to change notification settings - Fork 70
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
boot_device
sugar is not supported on s390x
#453
Comments
Hi @bgilbert Presently the testing has been done vda/zfcp/eckd-dasd. We have not done any luks disk encryption testing on zfba-dasd. So for the device like vda/zfcp/eckd-dasd can be configured with partition number. Layout S390x-zfcp
For eckd-dasd diskLayout S390x-eckd
For virtual disk S390x-virtLayout S390x-virt
|
In the zfcp layout, it looks like you're hardcoding boot_device:
layout: s390x-zfcp
luks:
# only permitted for layouts that use it. should probably be here and not directly
# under boot_device, to avoid a semantic conflict with the device list in the mirror
# section.
device: /dev/sda
tang:
- url: http://tang1.example.com:7500
thumbprint: jwGN5tRFK-kF6pIX89ssF3khxxX Similarly for DASD and For virt setups, we can continue to use In the DASD and zfcp cases, we should make sure to fail if a |
I was trying to depict that the butane generates the device as /dev/sda. This is right , And will make a conditional check that the configuration will generate only with zfcp
eckd-dasd
|
So, to be explicit: is it 100% certain that the user will always want And to be clear, we'll still need a separate |
An example when user try to create boot_device sugar, so the butane template looks like this.
Similarly for dasd. And condition to ensure that For zKVM we can still provision |
Please directly answer the question I asked in #453 (comment): is it true or false that the user will sometimes want to install on a disk other than the first one? If we add a I think you're right that we should require a For the |
Is it 100% certain that the user will always want (I cannot assert the statement True, because it depends on the user requirements ). I've a question here related to above question. if we use boot_device sugar, it generates ignition with valid device automatically lets say for x86 it is If we add a device field, it should be forbidden for layouts that don't support it, and mandatory for layouts that do. Otherwise the user will likely forget to set it. - Will do that. Will add s390x-virt layout. something like below.
so the butane should generate the following output...
|
It doesn't have anything to do with the number of disks. On other arches, we can find the existing partition with the label |
Hi @bgilbert
s390x-eckd
s390x-zfcp
s390x-virt
|
Looks good! Could you also post the expected output for each of those configs? Note that FCOS should also support these layouts, so the implementation should happen in the |
Will implement on FCOS also , in the experimental spec. Here is the expected output for each configs. s390x-eckd
Converting to ignition
s390x-zfcp
Converting to ignition
s390x-virtdevice section forbidden for
Converting to ignition
|
Looks good. Note that you don't need to implement on FCOS also. If you implement it in the FCOS experimental spec, the OpenShift spec will automatically inherit. |
If
boot_device.mirror
is specified, Butane emits Ignition directives to repartition the entire boot disk(s), create RAID volumes, and create filesystems inside them. During first boot, the OS copies the entire OS contents into memory, does the repartitioning, and copies the contents back to disk. The partition tables created by Butane are hardcoded to match what the OS expects, which is slightly different for each architecture, and so Butane needs to know the CPU architecture via theboot_device.layout
field (which defaults tox86_64
).If
boot_device.luks
is specified, Butane doesn't need to emit directives for repartitioning the entire disk, but it does need to locate the existing root partition so it can create a LUKS volume in it and a new filesystem inside that. (At runtime, the OS still does the copy to RAM and copy back to disk.) To do this, it references the partition by partition label (/dev/disk/by-partlabel/root
) so that it doesn't need to know the number of the root partition. Since we're not repartitioning the disk, the layout directive is technically not required when only usingboot_device.luks
.If both
mirror
andluks
are specified, Butane does a combination of both.That all works fine for x86_64, aarch64, and ppc64le, since they all use GPT partition tables. But s390x uses different partition table formats depending on the type of disk. On FBA DASD disks, it uses MBR partition tables, which Ignition doesn't know how to create, and which don't have partition labels. On ECKD DASD disks, it uses the DASD native partitioning format, which Ignition doesn't know how to create and which don't have partition labels (and which only support 3 partitions per disk).
So we could technically have three different layout values, e.g.:
s390x-virt
- works like the other archess390x-fba
- doesn't supportmirror
, supportsluks
by hardcoding a partition number (which requires a field for specifying the boot disk, e.g./dev/sda
)s390x-eckd
- same constraints asfba
but with different hardcoded constantsbut that would be confusing.
Ignition and the OS copy-to-RAM/copy-to-disk code should work fine on s390x, it's just that the Butane sugar doesn't know how to configure them. For now, all users on s390x should bypass the
boot_device
sugar and manually configure LUKS and/or mirroring using the low-level directives, similar to how an encrypted/mirrored data volume would be configured. Do not useboot_device
with the defaultx86_64
layout on s390x, even in VMs where it appears to work, since thex86_64
layout is not guaranteed to remain compatible with the needs of s390x.On VMs using GPT partition tables this might look like:
/dev/disk/by-partlabel/root
will only work in VMs using GPT partition tables. Other values will need to be used on DASD disks.The text was updated successfully, but these errors were encountered: