From 115dafdfa06f1385091c8792e7f6e9ee1e3794cb Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Wed, 31 Jul 2024 15:09:34 +0200 Subject: [PATCH] Add support for groups in alpine-config Only support creating empty groups for now ref: https://cloudinit.readthedocs.io/en/latest/reference/modules.html#users-and-groups --- lib/tiny-cloud/user-data/alpine-config | 10 +++++++++- tests/tiny-cloud-alpine.test | 15 +++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/lib/tiny-cloud/user-data/alpine-config b/lib/tiny-cloud/user-data/alpine-config index bc53064..8a4e8de 100644 --- a/lib/tiny-cloud/user-data/alpine-config +++ b/lib/tiny-cloud/user-data/alpine-config @@ -4,7 +4,7 @@ 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" \ + "userdata_bootcmd userdata_groups userdata_write_files userdata_ntp userdata_apk_cache userdata_apk_repositories userdata_package_update userdata_package_upgrade userdata_packages" \ $INIT_ACTIONS_MAIN)" INIT_ACTIONS_MAIN="$(insert_after set_ssh_keys ssh_authorized_keys $INIT_ACTIONS_MAIN)" INIT_ACTIONS_FINAL="$INIT_ACTIONS_FINAL userdata_runcmd userdata_autoinstall" @@ -233,6 +233,14 @@ init__userdata_runcmd() { done } +init__userdata_groups() { + local groups="$(get_userdata groups)" + for i in $groups; do + local group="$(get_userdata groups/$i)" + $MOCK addgroup $group + done +} + find_biggest_empty_disk() { local d for d in "$ROOT"/sys/class/block/*/device; do diff --git a/tests/tiny-cloud-alpine.test b/tests/tiny-cloud-alpine.test index 79aa32a..a26d839 100755 --- a/tests/tiny-cloud-alpine.test +++ b/tests/tiny-cloud-alpine.test @@ -16,6 +16,7 @@ init_tests \ userdata_user_missing_name \ userdata_create_default_user \ userdata_ssh_authorized_keys \ + userdata_groups \ userdata_bootcmd \ userdata_write_files \ userdata_ntp \ @@ -178,6 +179,20 @@ userdata_bootcmd_body() { tiny-cloud main } +userdata_groups_body() { + fake_userdata_nocloud <<-EOF + #alpine-config + groups: + - group1 + - group2 + EOF + atf_check -e ignore -o ignore tiny-cloud early + atf_check \ + -e match:"userdata_groups: done" \ + -o match:"addgroup group1" -o match:"addgroup group2" \ + tiny-cloud main +} + userdata_ntp_body() { fake_userdata_nocloud <<-EOF #alpine-config