Skip to content

Commit 1009cc1

Browse files
committed
flatcar-postinst: Ensure /etc/extensions is mergable
In Beta 3760.1.0 the /etc/extensions/ folder gets created by "mkdir -p" because it does not exist in the lowerdir /usr/share/flatcar/etc/. This causes the opaque marker to be set by overlayfs. The update to Alpha thus does not merge the new /usr/share/flatcar/etc/extensions/ folder with its docker/containerd sysext symlinks. We should have had /etc/extensions/ in the lowerdir in Beta but didn't. Ensure that the created folders are mergable by removing the overlayfs marker. This is needed for existing installations and folders we expect to exist in the lowerdir but were missing so far.
1 parent d262b46 commit 1009cc1

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

flatcar-postinst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,18 @@ for NAME in $(grep -h -o '^[^#]*' /etc/flatcar/enabled-sysext.conf /usr/share/fl
217217
mv "/var/lib/update_engine/flatcar-${NAME}.raw" "/etc/flatcar/sysext/flatcar-${NAME}-${NEXT_VERSION}.raw"
218218
done
219219

220+
# A mkdir -p /etc/extensions was done for the OEM sysext symlink when the /etc overlay
221+
# was already set up but we didn't ship /etc/extensions in the lowerdir. Since overlayfs
222+
# creates any folders that don't exist in the lowerdir as opaque it means that when
223+
# they appear later in the lowerdir through an update, the lowerdir folder is ignored.
224+
# That happened in the update from, e.g., 3760.1.0 to 3794.0.0 to where /etc/extensions
225+
# wasn't present in /usr/share/flatcar/etc/.
226+
# To fix this, remove any opaque markers for this directory. Other common folders which
227+
# we introduce later in the lowerdir could also be handled that way, e.g., /etc/cni/.
228+
if mountpoint -q /etc; then
229+
unshare -m sh -c "umount /etc && mkdir -p /etc/extensions && attr -R -r overlay.opaque /etc/extensions || true"
230+
fi
231+
220232
# Keep old nodes on cgroup v1
221233
if [[ "${BUILD_ID}" != "dev-"* ]]; then
222234
if [ "${VERSION_ID%%.*}" -lt 2956 ]; then

0 commit comments

Comments
 (0)