krata xen control-plane

This commit is contained in:
Alex Zenla
2024-09-16 01:57:02 -04:00
parent a320efad6b
commit 67652a5e1b
189 changed files with 30 additions and 22252 deletions

27
hack/dist/apk.sh vendored
View File

@ -1,27 +0,0 @@
#!/bin/sh
set -e
# shellcheck source-path=SCRIPTDIR source=common.sh
. "$(dirname "${0}")/common.sh"
export TARGET_LIBC="musl"
KRATA_SYSTAR_OPENRC=1 "${KRATA_DIR}/hack/dist/systar.sh"
KRATA_VERSION="$("${KRATA_DIR}/hack/dist/version.sh")"
TARGET_ARCH="$("${KRATA_DIR}/hack/build/arch.sh")"
cd "${OUTPUT_DIR}"
rm -f "krata_${KRATA_VERSION}_${TARGET_ARCH}.apk"
fpm -s tar -t apk \
--name krata \
--license agpl3 \
--version "${KRATA_VERSION}" \
--architecture "${TARGET_ARCH}" \
--depends "squashfs-tools" \
--depends "erofs-utils" \
--description "Krata Isolation Engine" \
--url "https://krata.dev" \
--maintainer "Edera Team <contact@edera.dev>" \
"${OUTPUT_DIR}/system-openrc-${TARGET_ARCH}.tgz"

42
hack/dist/bundle.sh vendored
View File

@ -1,42 +0,0 @@
#!/bin/sh
set -e
# shellcheck source-path=SCRIPTDIR source=common.sh
. "$(dirname "${0}")/common.sh"
TARGET_ARCH="$("${KRATA_DIR}/hack/build/arch.sh")"
BUNDLE_TAR="${OUTPUT_DIR}/bundle-systemd-${TARGET_ARCH}.tgz"
rm -f "${BUNDLE_TAR}"
BUNDLE_DIR="$(mktemp -d /tmp/krata-bundle.XXXXXXXXXXXXX)"
BUNDLE_DIR="${BUNDLE_DIR}/krata"
mkdir -p "${BUNDLE_DIR}"
./hack/build/cargo.sh build --release --bin kratad --bin kratanet --bin kratactl
RUST_TARGET="$(./hack/build/target.sh)"
for X in kratad kratanet kratactl
do
cp "${KRATA_DIR}/target/${RUST_TARGET}/release/${X}" "${BUNDLE_DIR}/${X}"
done
./hack/initrd/build.sh
./hack/kernel/fetch.sh
cd "${BUNDLE_DIR}"
cp "${KRATA_DIR}/target/initrd/initrd-${TARGET_ARCH}" initrd
cp "${KRATA_DIR}/target/kernel/kernel-${TARGET_ARCH}" kernel
cp "${KRATA_DIR}/target/kernel/addons-${TARGET_ARCH}.squashfs" addons.squashfs
cp "${KRATA_DIR}/resources/systemd/kratad.service" kratad.service
cp "${KRATA_DIR}/resources/systemd/kratanet.service" kratanet.service
cp "${KRATA_DIR}/resources/bundle/install.sh" install.sh
cp "${KRATA_DIR}/resources/bundle/uninstall.sh" uninstall.sh
for X in install.sh uninstall.sh kratactl kratad kratanet
do
chmod +x "${X}"
done
cd ..
tar czf "${BUNDLE_TAR}" .
cd "${KRATA_DIR}"
rm -rf "$(dirname "${BUNDLE_DIR}")"

33
hack/dist/deb.sh vendored
View File

@ -1,33 +0,0 @@
#!/bin/sh
set -e
# shellcheck source-path=SCRIPTDIR source=common.sh
. "$(dirname "${0}")/common.sh"
"${KRATA_DIR}/hack/dist/systar.sh"
KRATA_VERSION="$("${KRATA_DIR}/hack/dist/version.sh")"
TARGET_ARCH_STANDARD="$(KRATA_ARCH_ALT_NAME=0 "${KRATA_DIR}/hack/build/arch.sh")"
TARGET_ARCH_DEBIAN="$(KRATA_ARCH_ALT_NAME=1 "${KRATA_DIR}/hack/build/arch.sh")"
cd "${OUTPUT_DIR}"
rm -f "krata_${KRATA_VERSION}_${TARGET_ARCH_DEBIAN}.deb"
fpm -s tar -t deb \
--name krata \
--license agpl3 \
--version "${KRATA_VERSION}" \
--architecture "${TARGET_ARCH_DEBIAN}" \
--depends "xen-system-${TARGET_ARCH_DEBIAN}" \
--depends "squashfs-tools" \
--depends "erofs-utils" \
--description "Krata Isolation Engine" \
--url "https://krata.dev" \
--maintainer "Edera Team <contact@edera.dev>" \
-x "usr/lib/**" \
--deb-systemd "${KRATA_DIR}/resources/systemd/kratad.service" \
--deb-systemd "${KRATA_DIR}/resources/systemd/kratanet.service" \
--deb-systemd-enable \
--deb-systemd-auto-start \
"${OUTPUT_DIR}/system-systemd-${TARGET_ARCH_STANDARD}.tgz"

48
hack/dist/systar.sh vendored
View File

@ -1,48 +0,0 @@
#!/bin/sh
set -e
# shellcheck source-path=SCRIPTDIR source=common.sh
. "$(dirname "${0}")/common.sh"
"${KRATA_DIR}/hack/dist/bundle.sh"
SYSTAR_VARIANT="systemd"
if [ "${KRATA_SYSTAR_OPENRC}" = "1" ]
then
SYSTAR_VARIANT="openrc"
fi
TARGET_ARCH="$("${KRATA_DIR}/hack/build/arch.sh")"
SYSTAR="${OUTPUT_DIR}/system-${SYSTAR_VARIANT}-${TARGET_ARCH}.tgz"
rm -f "${SYSTAR}"
SYSTAR_DIR="$(mktemp -d /tmp/krata-systar.XXXXXXXXXXXXX)"
cd "${SYSTAR_DIR}"
tar xf "${OUTPUT_DIR}/bundle-systemd-${TARGET_ARCH}.tgz"
mkdir sys
cd sys
mkdir -p usr/bin usr/sbin
mv ../krata/kratactl usr/bin
mv ../krata/kratanet ../krata/kratad usr/sbin/
if [ "${SYSTAR_VARIANT}" = "openrc" ]
then
mkdir -p etc/init.d
cp "${KRATA_DIR}/resources/openrc/kratad" etc/init.d/kratad
cp "${KRATA_DIR}/resources/openrc/kratanet" etc/init.d/kratanet
chmod +x etc/init.d/kratad
chmod +x etc/init.d/kratanet
else
mkdir -p usr/lib/systemd/system
mv ../krata/kratad.service ../krata/kratanet.service usr/lib/systemd/system/
fi
mkdir -p usr/share/krata/zone
mv ../krata/kernel ../krata/initrd usr/share/krata/zone
mv ../krata/addons.squashfs usr/share/krata/zone/addons.squashfs
tar czf "${SYSTAR}" --owner 0 --group 0 .
cd "${KRATA_DIR}"
rm -rf "${SYSTAR_DIR}"