← Back to team overview

cloud-init team mailing list archive

cloud-init + overlayfs: after ubuntu trusty -> xenial upgrade, missing 'workdir'


Hi all,

I have a cloud-init template that deploys an Ubuntu Trusty 14.04 machine that mounts an overlayfs at /var/spool/postfix, and this works great:

  - label: postfix
    device: /dev/xvde
    filesystem: ext4
- [ /dev/xvde, /mnt/postfix-overlay ]
- [ overlayfs, /var/spool/postfix, "overlayfs", "defaults,lowerdir=/var/spool/postfix,upperdir=/mnt/postfix-overlay", "0", "2" ]
mount_default_fields: [ None, None, "auto", "defaults,nobootwait", "0", "2” ]

Upgrading the system image to Xenial 16.04 causes the overlayfs to fail to mount with the error “missing ‘workdir’”.

Turns out, between Trusty and Xenial, the “workdir” directory in overlayfs went from optional to mandatory, and now the system no longer deploys.

What needs to happen is that after the fs_setup step that creates /mnt/postfix-overlay, but before the mounts section where the overlayfs is created, the workdir and upperdir directories need to be created on the /mnt/postfix-overlay disk as /mnt/postfix-overlay/upperdir and /mnt/postfix-overlay/workdir (or something) respectively.

Is there something that can be done in cloud-init to make this possible?


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Follow ups