mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-21 20:08:54 +00:00
osbuilder: Multistrap Ubuntu
Use `multistrap` for building Ubuntu rootfs. Adds support for building for foreign architectures using the `ARCH` environment variable. In the process, the Ubuntu rootfs workflow is vastly simplified. Signed-off-by: Jakob Naucke <jakob.naucke@ibm.com>
This commit is contained in:
@@ -39,7 +39,11 @@ handle_error() {
|
||||
trap 'handle_error $LINENO' ERR
|
||||
|
||||
# Default architecture
|
||||
ARCH=$(uname -m)
|
||||
export ARCH=${ARCH:-$(uname -m)}
|
||||
if [ "$ARCH" == "ppc64le" ] || [ "$ARCH" == "s390x" ]; then
|
||||
LIBC=gnu
|
||||
echo "WARNING: Forcing LIBC=gnu because $ARCH has no musl Rust target"
|
||||
fi
|
||||
|
||||
# distro-specific config file
|
||||
typeset -r CONFIG_SH="config.sh"
|
||||
@@ -103,6 +107,11 @@ AGENT_SOURCE_BIN Path to the directory of agent binary.
|
||||
AGENT_VERSION Version of the agent to include in the rootfs.
|
||||
Default value: ${AGENT_VERSION:-<not set>}
|
||||
|
||||
ARCH Target architecture (according to \`uname -m\`).
|
||||
Foreign bootstraps are currently only supported for Ubuntu
|
||||
and glibc agents.
|
||||
Default value: $(uname -m)
|
||||
|
||||
DISTRO_REPO Use host repositories to install guest packages.
|
||||
Default value: <not set>
|
||||
|
||||
@@ -408,6 +417,7 @@ build_rootfs_distro()
|
||||
--env ROOTFS_DIR="/rootfs" \
|
||||
--env AGENT_BIN="${AGENT_BIN}" \
|
||||
--env AGENT_INIT="${AGENT_INIT}" \
|
||||
--env ARCH="${ARCH}" \
|
||||
--env CI="${CI}" \
|
||||
--env KERNEL_MODULES_DIR="${KERNEL_MODULES_DIR}" \
|
||||
--env LIBC="${LIBC}" \
|
||||
@@ -538,10 +548,6 @@ EOT
|
||||
AGENT_DEST="${AGENT_DIR}/${AGENT_BIN}"
|
||||
|
||||
if [ -z "${AGENT_SOURCE_BIN}" ] ; then
|
||||
if [ "$ARCH" == "ppc64le" ] || [ "$ARCH" == "s390x" ]; then
|
||||
LIBC=gnu
|
||||
echo "WARNING: Forcing LIBC=gnu because $ARCH has no musl Rust target"
|
||||
fi
|
||||
test -r "${HOME}/.cargo/env" && source "${HOME}/.cargo/env"
|
||||
# rust agent needs ${arch}-unknown-linux-${LIBC}
|
||||
if ! (rustup show | grep -v linux-${LIBC} > /dev/null); then
|
||||
@@ -559,7 +565,7 @@ EOT
|
||||
info "Set up libseccomp"
|
||||
libseccomp_install_dir=$(mktemp -d -t libseccomp.XXXXXXXXXX)
|
||||
gperf_install_dir=$(mktemp -d -t gperf.XXXXXXXXXX)
|
||||
bash ${script_dir}/../../../ci/install_libseccomp.sh "${libseccomp_install_dir}" "${gperf_install_dir}"
|
||||
${script_dir}/../../../ci/install_libseccomp.sh "${libseccomp_install_dir}" "${gperf_install_dir}"
|
||||
echo "Set environment variables for the libseccomp crate to link the libseccomp library statically"
|
||||
export LIBSECCOMP_LINK_TYPE=static
|
||||
export LIBSECCOMP_LIB_PATH="${libseccomp_install_dir}/lib"
|
||||
|
Reference in New Issue
Block a user