mirror of
https://github.com/flatcar/scripts.git
synced 2025-09-27 00:21:44 +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
54c8545eec
commit
5d5dd59102
@ -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}"
|
||||
}
|
||||
|
||||
EXTRA_SYSEXTS=(
|
||||
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 "${EXTRA_SYSEXTS[@]}"; do
|
||||
local name="flatcar-${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