Skip to content

Commit a9b9bee

Browse files
authored
Merge pull request #32 from flatcar/kai/overlay-opaque-dirs
flatcar-postinst: Ensure /etc/extensions is mergable
2 parents d262b46 + 1009cc1 commit a9b9bee

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)