mirror of
https://github.com/flatcar/scripts.git
synced 2026-05-04 11:51:14 +02:00
build_image: Build sysext store after image when requested
This function is meant to prebuild certain sysexts to be released along with each release. These will not be built into the image, but instead can be fetched by the user on demand. The command to build sysexts would be: ./build_image prod sysext Signed-off-by: Jeremi Piotrowski <jpiotrowski@microsoft.com>
This commit is contained in:
parent
2e491fb22e
commit
fb83a191f4
@ -108,11 +108,13 @@ fi
|
||||
PROD_IMAGE=0
|
||||
PROD_TAR=0
|
||||
CONTAINER=0
|
||||
SYSEXT=0
|
||||
for arg in "$@"; do
|
||||
case "${arg}" in
|
||||
prod) PROD_IMAGE=1 ;;
|
||||
prodtar) PROD_IMAGE=1 PROD_TAR=1 ;;
|
||||
container) CONTAINER=1 ;;
|
||||
sysext) SYSEXT=1 ;;
|
||||
*) die_notrace "Unknown image type ${arg}" ;;
|
||||
esac
|
||||
done
|
||||
@ -177,6 +179,9 @@ if [[ "${PROD_IMAGE}" -eq 1 ]]; then
|
||||
create_prod_tar ${FLATCAR_PRODUCTION_IMAGE_NAME}
|
||||
fi
|
||||
fi
|
||||
if [[ "${SYSEXT}" -eq 1 ]]; then
|
||||
create_prod_sysexts "${FLATCAR_PRODUCTION_IMAGE_NAME}"
|
||||
fi
|
||||
|
||||
if [[ ${FLAGS_generate_update} -eq ${FLAGS_TRUE} ]] || \
|
||||
[[ ${FLAGS_extract_update} -eq ${FLAGS_TRUE} ]]
|
||||
|
||||
@ -247,3 +247,42 @@ create_prod_tar() {
|
||||
sudo losetup --detach "${lodev}"
|
||||
upload_image "${container}"
|
||||
}
|
||||
|
||||
DEFAULT_SYSEXTS=(
|
||||
flatcar-zfs:sys-fs/zfs
|
||||
)
|
||||
|
||||
create_prod_sysexts() {
|
||||
local image_name="$1"
|
||||
local image_sysext_base="${image_name%.bin}_sysext.squashfs"
|
||||
sudo rm -rf "${BUILD_DIR}/sysexts/*"
|
||||
mkdir -p "${BUILD_DIR}/sysexts"
|
||||
local to_upload=()
|
||||
for sysext in "${DEFAULT_SYSEXTS[@]}"; do
|
||||
local name="${sysext%:*}"
|
||||
local pkg="${sysext#*:}"
|
||||
local mangle_script="${BUILD_LIBRARY_DIR}/sysext_mangle_${name}"
|
||||
if [[ ! -x "${mangle_script}" ]]; then
|
||||
mangle_script=
|
||||
fi
|
||||
sudo "${SCRIPT_ROOT}/build_sysext" --board="${BOARD}" \
|
||||
--squashfs_base="${BUILD_DIR}/${image_sysext_base}" \
|
||||
--image_builddir="${BUILD_DIR}/sysexts" \
|
||||
${mangle_script:+--manglefs_script=${mangle_script}} \
|
||||
"${name}" "${pkg}"
|
||||
delta_generator \
|
||||
-private_key "/usr/share/update_engine/update-payload-key.key.pem" \
|
||||
-new_image "${BUILD_DIR}/sysexts/${name}.raw" \
|
||||
-out_file "${BUILD_DIR}/sysexts/flatcar_test_update-${name}.gz"
|
||||
to_upload+=(
|
||||
"${BUILD_DIR}/sysexts/${name}.raw"
|
||||
"${BUILD_DIR}/sysexts/${name}_contents.txt"
|
||||
"${BUILD_DIR}/sysexts/${name}_contents_wtd.txt"
|
||||
"${BUILD_DIR}/sysexts/${name}_disk_usage.txt"
|
||||
"${BUILD_DIR}/sysexts/${name}_packages.txt"
|
||||
"${BUILD_DIR}/sysexts/flatcar_test_update-${name}.gz"
|
||||
)
|
||||
done
|
||||
upload_image -d ${BUILD_DIR}/sysexts/sysext.DIGESTS "${to_upload[@]}"
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user