Passed cilium connectivity tests as a worker node

This commit is contained in:
2026-04-29 02:34:04 +08:00
parent e86b3b3383
commit 6d290a97ae
10 changed files with 614 additions and 277 deletions

View File

@@ -22,6 +22,9 @@ mount_retry() {
i=0
while :; do
# BusyBox mount just needs a normal -o option string here.
# The important bit is that overlayfs itself requires lowerdir/upperdir/workdir,
# and workdir must live on the same filesystem as upperdir.
if mount -o "$opts" -t "$fstype" "$dev" "$target"; then
return 0
fi
@@ -32,6 +35,30 @@ mount_retry() {
done
}
mount_data_overlay() {
dir="$1"
case "$dir" in
/*) ;;
*) panic "overlay dir must be absolute: $dir" ;;
esac
lower="/newroot$dir"
state="/newroot/data${dir}-overlay"
upper="$state/upper"
work="$state/work"
[ -d "$lower" ] || mkdir -p "$lower"
mkdir -p "$upper" "$work"
log "Mounting overlay for $dir"
mount_or_panic -t overlay overlay \
-o "lowerdir=$lower,upperdir=$upper,workdir=$work" \
"$lower"
}
wait_for_path() {
path="$1"
i=0
@@ -207,6 +234,16 @@ mount_or_panic -t proc proc /proc
mount_or_panic -t sysfs sysfs /sys
mount_or_panic -t tmpfs tmpfs /run
mkdir -p /sys/fs/bpf
if ! mountpoint -q /sys/fs/bpf; then
mount_or_panic -t bpf bpffs /sys/fs/bpf
fi
mount_or_panic --make-rshared /sys
mount_or_panic --make-rshared /run
mount_or_panic --make-shared /sys/fs/bpf
echo 1 > /proc/sys/kernel/printk
mkdir -p /dev/pts
@@ -264,17 +301,11 @@ mount_retry "$ROOT_DEV" /newroot ext4 ro
mount_retry "$DATA_DEV" /newroot/data ext4 rw
mkdir -p /newroot/data/var
mkdir -p /newroot/data/etc-overlay/upper
mkdir -p /newroot/data/etc-overlay/work
mount_or_panic --bind /newroot/data/var /newroot/var
mount_or_panic --make-rshared /newroot/var
# BusyBox mount just needs a normal -o option string here.
# The important bit is that overlayfs itself requires lowerdir/upperdir/workdir,
# and workdir must live on the same filesystem as upperdir.
mount_or_panic -t overlay overlay \
-o "lowerdir=/newroot/etc,upperdir=/newroot/data/etc-overlay/upper,workdir=/newroot/data/etc-overlay/work" \
/newroot/etc
mount_data_overlay /etc
mount_data_overlay /opt/cni
if [ "$BOOT_PART" = "A" ]; then
ALT_PART="$(find_sibling_part_on_same_disk "$ROOT_DEV" rootfsB || true)"