ref: 30c782493e162e1f283985d7ef2c865bde3e9e15
parent: 255cc02bfa6603498e1c5f7f0f7dbb49a6449072
author: Natanael Copa <ncopa@alpinelinux.org>
date: Tue Nov 28 10:42:55 CST 2023
init: add disable feature to tiny-cloud Some VPS providers provide cloud-init files (meta-data, user-data) on /dev/sr0, which overwrite existing .apkovl.tar.gz configuration. Creating a blank (/etc/tiny-cloud-init.disabled) file in the .apkovl.tar.gz ensures that tiny-cloud is not loaded. ref: https://gitlab.alpinelinux.org/alpine/mkinitfs/-/merge_requests/133
--- a/initramfs-init.in
+++ b/initramfs-init.in
@@ -698,7 +698,7 @@
rc_add sshd default
fi
- if findfs LABEL=cidata >/dev/null 2>&1 || findfs LABEL=CIDATA >/dev/null 2>&1; then
+ if ! [ -f "$sysroot/etc/tiny-cloud.disabled" ] && (findfs LABEL=cidata >/dev/null 2>&1 || findfs LABEL=CIDATA >/dev/null 2>&1); then
pkgs="$pkgs tiny-cloud-alpine ifupdown-ng"
rc_add tiny-cloud-boot boot
rc_add tiny-cloud-early default
--- a/tests/initramfs-init.test
+++ b/tests/initramfs-init.test
@@ -11,7 +11,8 @@
initramfs_init_tmpfs_root_console_serial \
initramfs_init_tmpfs_root_autodetect_serial \
initramfs_init_tmpfs_root_remount_opts \
- initramfs_init_tmpfs_root_tiny_cloud
+ initramfs_init_tmpfs_root_tiny_cloud \
+ initramfs_init_tmpfs_root_tiny_cloud_disabled
fake_cmdline() {
mkdir -p proc
@@ -209,5 +210,24 @@
atf_check \
-o not-empty \
find sysroot/ -name '*tiny-cloud*'
+}
+
+initramfs_init_tmpfs_root_tiny_cloud_disabled_body() {
+ fake_cmdline ""
+ fake_switch_root
+ fake_sysroot_init
+ fake_bin findfs <<-EOF
+ #!/bin/sh
+ true
+ EOF
+
+ mkdir -p sysroot/etc
+ touch sysroot/etc/tiny-cloud.disabled
+
+ atf_check \
+ -o ignore \
+ initramfs-init
+ atf_check \
+ find sysroot/etc/runlevels -name '*tiny-cloud*'
}