diff --git a/lib/tiny-cloud/user-data/alpine-config b/lib/tiny-cloud/user-data/alpine-config index 1d4a059..bc53064 100644 --- a/lib/tiny-cloud/user-data/alpine-config +++ b/lib/tiny-cloud/user-data/alpine-config @@ -172,6 +172,11 @@ init__userdata_apk_cache() { } init__userdata_apk_repositories() { + local apk="$(get_userdata apk)" + if [ -z "$apk" ] && ! [ -e "$ROOT"/etc/apk/repositories ]; then + $MOCK setup-apkrepos -1 -c + return + fi local repositories="$(get_userdata apk/repositories)" mkdir -p "$ROOT"/etc/apk for r in $repositories; do diff --git a/tests/tiny-cloud-alpine.test b/tests/tiny-cloud-alpine.test index a9a0de2..79aa32a 100755 --- a/tests/tiny-cloud-alpine.test +++ b/tests/tiny-cloud-alpine.test @@ -22,6 +22,7 @@ init_tests \ userdata_ntp_busybox \ userdata_ntp_openntpd \ userdata_apk_cache \ + userdata_apk_empty \ userdata_apk_repositories \ userdata_apk_repositories_version \ userdata_apk_repositories_version_auto_edge \ @@ -238,6 +239,17 @@ userdata_apk_cache_body() { atf_check -o match:"$PWD/var/cache/apk" readlink -f etc/apk/cache } +userdata_apk_empty_body() { + fake_userdata_nocloud <<-EOF + #alpine-config + EOF + atf_check -e ignore -o ignore tiny-cloud early + atf_check \ + -e match:"userdata_apk_repositories: done" \ + -o match:"setup-apkrepos -1 -c" \ + tiny-cloud main +} + userdata_apk_repositories_body() { fake_userdata_nocloud <<-EOF #alpine-config