1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-15 11:22:43 +03:00

Add package_update / package_upgrade

Allows system to be upgraded before installing new.

ref: https://cloudinit.readthedocs.io/en/latest/reference/modules.html#package-update-upgrade-install
This commit is contained in:
Natanael Copa 2023-05-19 17:50:33 +02:00
parent 3837da9471
commit c4195b5e8b
2 changed files with 41 additions and 1 deletions

View File

@ -3,7 +3,7 @@
# shellcheck shell=sh
INIT_ACTIONS_MAIN="$(insert_after set_hostname \
"userdata_bootcmd userdata_write_files userdata_ntp userdata_apk_cache userdata_apk_repositories userdata_packages" \
"userdata_bootcmd userdata_write_files userdata_ntp userdata_apk_cache userdata_apk_repositories userdata_package_update userdata_package_upgrade userdata_packages" \
$INIT_ACTIONS_MAIN)"
INIT_ACTIONS_FINAL="$INIT_ACTIONS_FINAL userdata_runcmd"
@ -163,6 +163,20 @@ init__userdata_apk_repositories() {
done
}
init__userdata_package_update() {
local update="$(get_userdata package_update)"
if [ "$update" = "true" ]; then
$MOCK apk update
fi
}
init__userdata_package_upgrade() {
local upgrade="$(get_userdata package_upgrade)"
if [ "$upgrade" = "true" ]; then
$MOCK apk upgrade
fi
}
init__userdata_packages() {
local packages="$(get_userdata packages)"
local pkgs=

View File

@ -21,6 +21,8 @@ init_tests \
userdata_apk_repositories \
userdata_apk_repositories_version \
userdata_apk_repositories_version_auto_edge \
userdata_package_update \
userdata_package_upgrade \
userdata_packages \
userdata_runcmd
@ -213,6 +215,30 @@ userdata_apk_repositories_version_auto_edge_body() {
cat etc/apk/repositories
}
userdata_package_update_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
package_update: true
EOF
atf_check -e ignore -o ignore tiny-cloud net
atf_check \
-e match:"userdata_package_update: done" \
-o match:"apk update" \
tiny-cloud main
}
userdata_package_upgrade_body() {
fake_userdata_nocloud <<-EOF
#alpine-config
package_upgrade: true
EOF
atf_check -e ignore -o ignore tiny-cloud net
atf_check \
-e match:"userdata_package_upgrade: done" \
-o match:"apk upgrade" \
tiny-cloud main
}
userdata_packages_body() {
fake_userdata_nocloud <<-EOF
#alpine-config