1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-14 19:02:45 +03:00

Move create_default_user to main phase

This commit is contained in:
Natanael Copa 2023-05-23 14:28:23 +00:00 committed by Jake Buchholz Göktürk
parent a042bf8cf1
commit b4776260db
4 changed files with 66 additions and 1 deletions

View File

@ -46,6 +46,18 @@ replace_word() {
done
}
# usage: insert_after <where> <what> <list>...
insert_before() {
local search="$1" addition="$2"
shift 2
for i in "$@"; do
if [ "$i" = "$search" ]; then
echo "$addition"
fi
echo "$i"
done
}
# usage: insert_after <where> <what> <list>...
insert_after() {
local search="$1" addition="$2"

View File

@ -15,13 +15,13 @@ DEFAULT_ACTIONS_BOOT="
expand_root
install_hotplugs
set_default_interfaces
create_default_user
enable_sshd
"
DEFAULT_ACTIONS_EARLY="
save_userdata
"
DEFAULT_ACTIONS_MAIN="
create_default_user
set_hostname
set_ssh_keys
"

View File

@ -2,6 +2,7 @@
# vim:set ft=sh:
# shellcheck shell=sh
INIT_ACTIONS_MAIN="$(insert_before create_default_user userdata_user $INIT_ACTIONS_MAIN)"
INIT_ACTIONS_MAIN="$(insert_after set_hostname \
"userdata_bootcmd userdata_write_files userdata_ntp userdata_apk_cache userdata_apk_repositories userdata_package_update userdata_package_upgrade userdata_packages" \
$INIT_ACTIONS_MAIN)"
@ -13,6 +14,18 @@ get_userdata() {
unset IFS
}
init__userdata_user() {
local name="$(get_userdata user/name)"
if [ -z "$name" ]; then
name="$(get_userdata user)"
if [ -n "$(get_userdata user/$name)" ]; then
log -s err "user/name is required"
return
fi
fi
CLOUD_USER="${name:-$CLOUD_USER}"
}
init__userdata_bootcmd() {
# run bootcmd
local bootcmds="$(get_userdata bootcmd)"

View File

@ -12,6 +12,9 @@ lib="$srcdir"/lib/tiny-cloud/cloud/alpine/init
init_tests \
set_network_config_network_interfaces \
set_network_config_auto \
userdata_user_name \
userdata_user_missing_name \
userdata_create_default_user \
userdata_bootcmd \
userdata_write_files \
userdata_ntp \
@ -82,6 +85,43 @@ set_network_config_auto_body() {
fi
}
userdata_user_name_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
user:
name: joeuser
EOF
atf_check -e ignore -o ignore tiny-cloud early
atf_check \
-e match:"create_default_user: done" \
-o match:"adduser.*joeuser" \
tiny-cloud main
}
userdata_user_missing_name_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
user:
gecos: Foo B. Baz
EOF
atf_check -e ignore -o ignore tiny-cloud early
atf_check \
-e match:"create_default_user: done" \
-o not-match:"adduser.*gecos" \
tiny-cloud main
}
userdata_create_default_user_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
EOF
atf_check -e ignore -o ignore tiny-cloud early
atf_check \
-e match:"create_default_user: done" \
-o match:"adduser.*alpine" \
tiny-cloud main
}
userdata_bootcmd_body() {
fake_userdata_nocloud <<-EOF
#alpine-config