Additional disks and kernel arguments in FCOS base image

I am building a FCOS image with coreos assembler based on the base config and would like to know how I could add kernel arguments or additional disks to a system running it.

I have looked for documentation but there seems to be very little available for building you own images, also looking through some github issues delivered no real results. I have tried adding a custom .ign file to the base image and figuring out how the base image mounts /sysroot/ and /boot/, I am looking at some scripts which seem to setup this, look for “module-setup.sh” and “ignition-ostree-firstboot-uuid” if interested. Of which the latter seemed to be a possible, albeit a complicated, solution to my disks problem. I am sure I could also find the scripted solution for the kernel arguments but have not found any place for that yet.

I thought maybe some of you here might be able to point me into the right direction for a real, better and cleaner?, solution to my use-case.

I would like to apply changes along the lines of the following butane file, but then directly into a base image:

variant: fcos
version: 1.4.0

kernel_arguments:
  should_exist:
    - vt.global_cursor_default=0
storage:
  disks:
    - device: /dev/disk/by-id/coreos-boot-disk
      wipe_table: false
      partitions:
        - number: 4
          label: root
          size_mib: 8000
          resize: true
        - label: container
          size_mib: 4000
  filesystems:
    - path: /var/lib/containers
      device: /dev/disk/by-partlabel/container
      format: ext4
      with_mount_unit: true
      wipe_filesystem: true

Thanks in advance!

I’m guessing just applying these changes on boot via Ignition isn’t sufficient? That would be my recommendation.

The code that sets up the disk structure in the baked disk images is in create_disk.sh. The kernel command line that gets baked in the disk images comes from image-base.yaml.