summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorzer0def2020-10-26 06:39:35 +0100
committerzer0def2020-11-02 23:49:01 +0100
commit143ef58114260a632e5b0cee66a47a4072410a13 (patch)
tree851ba1c59110ec8c961765e13521f1efb986eee8
parentc05bdd28b8d16ba8fec64c143c45a2a04a7924b6 (diff)
downloadaur-143ef58114260a632e5b0cee66a47a4072410a13.tar.gz
PKGBUILD cleanup; initrd and image builds
-rw-r--r--.SRCINFO42
-rw-r--r--PKGBUILD260
-rw-r--r--install_kata-agent.tpl5
-rw-r--r--install_sd-kata-agent.tpl7
-rw-r--r--kata-agent.service.in24
-rw-r--r--kata-containers.target16
-rw-r--r--mkinitcpio-agent.conf6
7 files changed, 250 insertions, 110 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 0441bed06890..6c774357e976 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,24 +1,58 @@
pkgbase = kata2-containers
- pkgdesc = Lightweight virtual machines for containers
+ pkgdesc = Lightweight virtual machines for containers, version 2
pkgver = 2.0.0
- pkgrel = 1
+ pkgrel = 2
url = https://katacontainers.io/
arch = x86_64
license = Apache
makedepends = go
makedepends = bc
makedepends = rust
- makedepends = git
+ makedepends = yq2-bin
+ makedepends = mkinitcpio
makedepends = udisks2
+ noextract = archlinux-bootstrap-2020.11.01-x86_64.tar.gz
source = kata-containers-2.0.0.tar.gz::https://github.com/kata-containers/kata-containers/archive/2.0.0.tar.gz
source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.71.tar.xz
source = https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.71.tar.sign
+ source = mkinitcpio-agent.conf
+ source = install_kata-agent.tpl
+ source = install_sd-kata-agent.tpl
+ source = kata-agent.service.in
+ source = kata-containers.target
+ source = http://mirrors.evowise.com/archlinux/iso/2020.11.01/archlinux-bootstrap-2020.11.01-x86_64.tar.gz
+ source = http://mirrors.evowise.com/archlinux/iso/2020.11.01/archlinux-bootstrap-2020.11.01-x86_64.tar.gz.sig
+ source = image_builder.sh
+ source = rootfs-builder-config.sh
+ source = rootfs-builder-lib.sh
+ validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
+ validpgpkeys = 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
sha512sums = 3106c05aa2ab613525ef4eff545059a9af864bf0fc44f67a5966ad9a0fb27cfd6c67f5d8f004a186a0d57ae52d419bce2462a6a751723a135b4419951eb78ef7
sha512sums = 2b9c83425c3fd40abb76197e65933d1f79c60b71b3eccc6e0dcbb6748001ccbd002366cc2b61a796536166f08d831478a840bcb1e19ca0531b7f180a451e4d1c
sha512sums = SKIP
+ sha512sums = 182a249aecbab33b8704e9567e96d33b535ee59e6d2f52f0c30fbc3d12813f60192886539cc745933caaf59268925d78db9e0b6b427321e2bac932ebde77d62e
+ sha512sums = 0250e52251986f36cfb9e378d848f755caaf5253daa8ff7d87172f2622754c1eb4180b338a497e3fbeb880e232eef19d5e512f5a8e610e7a6eb468f210849a08
+ sha512sums = 60e2dee0afcfc52b6075309b4eeb55c75dc4a8f063274f2cd481a0056fae0e78e414f0422af26acddff93edb43a23cb52c26aefd92677160fd8eb6a685b6a6d6
+ sha512sums = 8f927f482d54a762ae5c952883034355a76c5547993ed4245a434a74014aa96e6c5182e3ece0a431e075c1d2f86e99ed0d0d8d839586821c5a7cdf053ec6963d
+ sha512sums = b599a62d07f4451f52747eaf185142fbe8eeb9aced211369fc83d88c43483ef1008f87615fcfcf30d74a557569b89d5fcb4a61326ffc8cb0559ec51807d808ca
+ sha512sums = 91a3f0a1cbc7addb1941bc583b364b411e28223580980063ddc950cf4a0d247b0c40dbac6462f39d4d2f20102a8ff643b02179fa7dba685ae588962ea778c5d3
+ sha512sums = SKIP
+ sha512sums = 6f476297d9001eef9a0665689f752cf5124907522cfc87240df16488379a5c7c9820a6e33a576dbf7f75c4fdfa7cab7a0e395b05c9339069dedbdaac42fb6c04
+ sha512sums = 375990194988a019f2429ed85eb996222929a028a52ec609de106df8939704db6654af6d92aec5e192693d7758fc9561f236bbb29df319c2d506b5b2d2b16553
+ sha512sums = f163aa40aea809e8cb9acdc78de6ea504e6fa608a3f71d5c62418a3f23390e006e5a6c81a0aa96a2f9319ff67ca31ae85084caf26df7bc61739f0a21a967d5ec
b2sums = 818e5cf96e85d0116c350bf09666073579c1126d6c7ca23412352e0aebb0794605a42052317d2313c28e9dc24192f9436c996b202e5de5bf6868f2a2b22aba6f
b2sums = 450f91dd84df37cb16c6937e2a4cc55a8b2e5046b6396685cf2ae5a733a925ed5502944b5a60a1056827c788407fa3f916e04b48b9c8e3d68df6b0830039ff0b
b2sums = SKIP
+ b2sums = 43c81141a65fd14b60ae72c5b98168bec531990903cc7c8b224b416c71d1d05c1cf3f73891954604e0b0c6f48c52a3a41a8e9e78874a79e72b14282373108e8b
+ b2sums = 9abf2208af353019ba177d8a48ba613401742cd21258a79c5d9cb8518a51f4f22a41dc386b71f2d6521d03f6ff65d8710dc59d1ca9c7c1dc5f94061c7374286c
+ b2sums = 1ce51ec8cfac8149e3d421d58ec4cb5df2119f4c4d6371da3406297f87a35b6453a9a91bfce9b3b6ac81945b9c8c8237d5818b7321198635614148a8001e3da7
+ b2sums = 8b5371fe7b1858dc61dcf4153b58f9c7a5ba564299d657c2bc4eac2328801346e9ca3f6f441dcca710e89495e5b7f9d35b002a8e031eb3cbd4a4fa850566309a
+ b2sums = 60bb47bec6e35ccc460ac066d7205d084ab8bdc7d1749918ce0497983a6e7eb770ca9fd996f44b05dbdbfc35390bf2d02b7e8abc619fa6d9df298988d5f19053
+ b2sums = ce8bfce07a121780e6a09f2b652b0be3fb3c728cd0cccedaad4add394784a6ded18c5163d2a999fc8043cdc9eb6fc347aa6a26a990b31f1f4a445f83460eccc3
+ b2sums = SKIP
+ b2sums = 1745aa5d5df0af2452381de163e3964511172e045c13736a062bb2c932e3306250d24992b2bdbc534ced188b35d3b1f4958a5680c99356afd3097d11c84aee31
+ b2sums = a0d55c2fbd3d94859c156e7f68033091430d523e374a7058cbcbe029cb9dc41c5c6c56560425c698438f66ab3754423f656885962ac40d8cd5aeb2f8039a77c9
+ b2sums = f1be90935e6201bb8d0c911d75d3c5f52ee6530ea8cd7b42f405bd09485e89e0465dcfe01648d2e3efe20bd19a84c19ae19f907ed1de90e940d9891c945393f6
pkgname = kata2-agent
@@ -32,3 +66,5 @@ pkgname = kata2-runtime
pkgname = kata2-linux-container
+pkgname = kata2-containers-image
+
diff --git a/PKGBUILD b/PKGBUILD
index c3e344ac53c7..b311048476fa 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,71 +7,87 @@ pkgname=(
kata2-agent
kata2-runtime
kata2-linux-container
-
- # this doesn't work, but exists for completeness of source build
- #kata2-containers-image
+ kata2-containers-image
)
pkgver=2.0.0
_pkgver=${pkgver/\~/-}
-pkgrel=1
-pkgdesc="Lightweight virtual machines for containers"
+pkgrel=2
+pkgdesc="Lightweight virtual machines for containers, version 2"
arch=('x86_64')
url="https://katacontainers.io/"
license=('Apache')
-makedepends=('go' 'bc' 'rust' 'git' 'udisks2')
+makedepends=(
+ 'go' 'bc' 'rust'
+ 'yq2-bin' # quietly pulled by Kata's codebase to read versions.yaml from repo
+ 'mkinitcpio' # initrd build
+ 'udisks2' # rootless image build
+)
_gh_org="github.com/kata-containers"
-_kata_kernel_ver="5.4.71"
-_arch_bootstrap_ver="2020.10.01"
-
-source=("${_pkgbase}-${_pkgver}.tar.gz::https://${_gh_org}/kata-containers/archive/${_pkgver}.tar.gz")
-sha512sums=(3106c05aa2ab613525ef4eff545059a9af864bf0fc44f67a5966ad9a0fb27cfd6c67f5d8f004a186a0d57ae52d419bce2462a6a751723a135b4419951eb78ef7)
-b2sums=(818e5cf96e85d0116c350bf09666073579c1126d6c7ca23412352e0aebb0794605a42052317d2313c28e9dc24192f9436c996b202e5de5bf6868f2a2b22aba6f)
-
-if [[ " ${pkgname[@]} " =~ " kata2-linux-container " ]]; then
- source+=(
- "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_kata_kernel_ver}.tar.xz"
- "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_kata_kernel_ver}.tar.sign"
- )
- sha512sums+=(
- 2b9c83425c3fd40abb76197e65933d1f79c60b71b3eccc6e0dcbb6748001ccbd002366cc2b61a796536166f08d831478a840bcb1e19ca0531b7f180a451e4d1c
- SKIP
- )
- b2sums+=(
- 450f91dd84df37cb16c6937e2a4cc55a8b2e5046b6396685cf2ae5a733a925ed5502944b5a60a1056827c788407fa3f916e04b48b9c8e3d68df6b0830039ff0b
- SKIP
- )
- _build_kernel="yes"
-fi
-
-if [[ " ${pkgname[@]} " =~ " kata2-containers-image " ]]; then
- source+=(
- "http://mirrors.evowise.com/archlinux/iso/${_arch_bootstrap_ver}/archlinux-bootstrap-${_arch_bootstrap_ver}-x86_64.tar.gz"
- "http://mirrors.evowise.com/archlinux/iso/${_arch_bootstrap_ver}/archlinux-bootstrap-${_arch_bootstrap_ver}-x86_64.tar.gz.sig"
-
- "image_builder.sh"
- "rootfs-builder-config.sh"
- "rootfs-builder-lib.sh"
- )
- sha512sums+=(
- 0bbe8fd91b3f38b6035a72ba71bb2dd006a39dc13fd4c9b6dba6369f9d0ef8f0471ad96052a78cacd81572ef9fffe4694bdb8d14cc9053a0aaa628aec8bc47e2
- SKIP
-
- 6f476297d9001eef9a0665689f752cf5124907522cfc87240df16488379a5c7c9820a6e33a576dbf7f75c4fdfa7cab7a0e395b05c9339069dedbdaac42fb6c04
- 375990194988a019f2429ed85eb996222929a028a52ec609de106df8939704db6654af6d92aec5e192693d7758fc9561f236bbb29df319c2d506b5b2d2b16553
- f163aa40aea809e8cb9acdc78de6ea504e6fa608a3f71d5c62418a3f23390e006e5a6c81a0aa96a2f9319ff67ca31ae85084caf26df7bc61739f0a21a967d5ec
- )
- b2sums+=(
- 5053da704b1d908ee2b413cb4f8c8d330035b8081cdeeb2e78191b2f67f3fc25c36b47db906a113c0c99134381162bc6660a47f4915d71599cfa8294a6398470
- SKIP
-
- 1745aa5d5df0af2452381de163e3964511172e045c13736a062bb2c932e3306250d24992b2bdbc534ced188b35d3b1f4958a5680c99356afd3097d11c84aee31
- a0d55c2fbd3d94859c156e7f68033091430d523e374a7058cbcbe029cb9dc41c5c6c56560425c698438f66ab3754423f656885962ac40d8cd5aeb2f8039a77c9
- f1be90935e6201bb8d0c911d75d3c5f52ee6530ea8cd7b42f405bd09485e89e0465dcfe01648d2e3efe20bd19a84c19ae19f907ed1de90e940d9891c945393f6
- )
- noextract=("archlinux-bootstrap-${_arch_bootstrap_ver}-x86_64.tar.gz")
- _build_images="yes"
-fi
+_kata_kernel_ver="${KATA_KERNEL_VER:-5.4.71}"
+_arch_bootstrap_ver="${ARCH_BOOTSTRAP_VER:-2020.11.01}"
+
+source=(
+ "${_pkgbase}-${_pkgver}.tar.gz::https://${_gh_org}/kata-containers/archive/${_pkgver}.tar.gz"
+ "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_kata_kernel_ver}.tar.xz"
+ "https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-${_kata_kernel_ver}.tar.sign"
+
+ # mknitcpio-busybox
+ "mkinitcpio-agent.conf"
+ "install_kata-agent.tpl"
+
+ # mknitpcio-systemd
+ "install_sd-kata-agent.tpl"
+ "kata-agent.service.in"
+ "kata-containers.target"
+
+ # image build
+ "http://mirrors.evowise.com/archlinux/iso/${_arch_bootstrap_ver}/archlinux-bootstrap-${_arch_bootstrap_ver}-x86_64.tar.gz"
+ "http://mirrors.evowise.com/archlinux/iso/${_arch_bootstrap_ver}/archlinux-bootstrap-${_arch_bootstrap_ver}-x86_64.tar.gz.sig"
+ "image_builder.sh"
+ "rootfs-builder-config.sh"
+ "rootfs-builder-lib.sh"
+)
+sha512sums=(
+ "3106c05aa2ab613525ef4eff545059a9af864bf0fc44f67a5966ad9a0fb27cfd6c67f5d8f004a186a0d57ae52d419bce2462a6a751723a135b4419951eb78ef7"
+ "${KATA_KERNEL_SUM_SHA512:-2b9c83425c3fd40abb76197e65933d1f79c60b71b3eccc6e0dcbb6748001ccbd002366cc2b61a796536166f08d831478a840bcb1e19ca0531b7f180a451e4d1c}"
+ "SKIP"
+
+ "182a249aecbab33b8704e9567e96d33b535ee59e6d2f52f0c30fbc3d12813f60192886539cc745933caaf59268925d78db9e0b6b427321e2bac932ebde77d62e"
+ "0250e52251986f36cfb9e378d848f755caaf5253daa8ff7d87172f2622754c1eb4180b338a497e3fbeb880e232eef19d5e512f5a8e610e7a6eb468f210849a08"
+
+ "60e2dee0afcfc52b6075309b4eeb55c75dc4a8f063274f2cd481a0056fae0e78e414f0422af26acddff93edb43a23cb52c26aefd92677160fd8eb6a685b6a6d6"
+ "8f927f482d54a762ae5c952883034355a76c5547993ed4245a434a74014aa96e6c5182e3ece0a431e075c1d2f86e99ed0d0d8d839586821c5a7cdf053ec6963d"
+ "b599a62d07f4451f52747eaf185142fbe8eeb9aced211369fc83d88c43483ef1008f87615fcfcf30d74a557569b89d5fcb4a61326ffc8cb0559ec51807d808ca"
+
+ "${ARCH_BOOTSTRAP_SUM_SHA512:-91a3f0a1cbc7addb1941bc583b364b411e28223580980063ddc950cf4a0d247b0c40dbac6462f39d4d2f20102a8ff643b02179fa7dba685ae588962ea778c5d3}"
+ "SKIP"
+ "6f476297d9001eef9a0665689f752cf5124907522cfc87240df16488379a5c7c9820a6e33a576dbf7f75c4fdfa7cab7a0e395b05c9339069dedbdaac42fb6c04"
+ "375990194988a019f2429ed85eb996222929a028a52ec609de106df8939704db6654af6d92aec5e192693d7758fc9561f236bbb29df319c2d506b5b2d2b16553"
+ "f163aa40aea809e8cb9acdc78de6ea504e6fa608a3f71d5c62418a3f23390e006e5a6c81a0aa96a2f9319ff67ca31ae85084caf26df7bc61739f0a21a967d5ec"
+)
+b2sums=(
+ "818e5cf96e85d0116c350bf09666073579c1126d6c7ca23412352e0aebb0794605a42052317d2313c28e9dc24192f9436c996b202e5de5bf6868f2a2b22aba6f"
+ "${KATA_KERNEL_SUM_B2:-450f91dd84df37cb16c6937e2a4cc55a8b2e5046b6396685cf2ae5a733a925ed5502944b5a60a1056827c788407fa3f916e04b48b9c8e3d68df6b0830039ff0b}"
+ "SKIP"
+
+ "43c81141a65fd14b60ae72c5b98168bec531990903cc7c8b224b416c71d1d05c1cf3f73891954604e0b0c6f48c52a3a41a8e9e78874a79e72b14282373108e8b"
+ "9abf2208af353019ba177d8a48ba613401742cd21258a79c5d9cb8518a51f4f22a41dc386b71f2d6521d03f6ff65d8710dc59d1ca9c7c1dc5f94061c7374286c"
+ "1ce51ec8cfac8149e3d421d58ec4cb5df2119f4c4d6371da3406297f87a35b6453a9a91bfce9b3b6ac81945b9c8c8237d5818b7321198635614148a8001e3da7"
+ "8b5371fe7b1858dc61dcf4153b58f9c7a5ba564299d657c2bc4eac2328801346e9ca3f6f441dcca710e89495e5b7f9d35b002a8e031eb3cbd4a4fa850566309a"
+ "60bb47bec6e35ccc460ac066d7205d084ab8bdc7d1749918ce0497983a6e7eb770ca9fd996f44b05dbdbfc35390bf2d02b7e8abc619fa6d9df298988d5f19053"
+
+ "${ARCH_BOOTSTRAP_SUM_B2:-ce8bfce07a121780e6a09f2b652b0be3fb3c728cd0cccedaad4add394784a6ded18c5163d2a999fc8043cdc9eb6fc347aa6a26a990b31f1f4a445f83460eccc3}"
+ "SKIP"
+ "1745aa5d5df0af2452381de163e3964511172e045c13736a062bb2c932e3306250d24992b2bdbc534ced188b35d3b1f4958a5680c99356afd3097d11c84aee31"
+ "a0d55c2fbd3d94859c156e7f68033091430d523e374a7058cbcbe029cb9dc41c5c6c56560425c698438f66ab3754423f656885962ac40d8cd5aeb2f8039a77c9"
+ "f1be90935e6201bb8d0c911d75d3c5f52ee6530ea8cd7b42f405bd09485e89e0465dcfe01648d2e3efe20bd19a84c19ae19f907ed1de90e940d9891c945393f6"
+)
+noextract=("archlinux-bootstrap-${_arch_bootstrap_ver}-x86_64.tar.gz")
+validpgpkeys=(
+ 647F28654894E3BD457199BE38DBBDC86092693E # kernel
+ 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC # arch
+)
case "${CARCH}" in
x86_64) _KARCH=x86_64;;
@@ -80,83 +96,112 @@ case "${CARCH}" in
ppc64le) _KARCH=powerpc;;
esac
-prepare(){
- if [ "${_build_kernel}" = "yes" ]; then
- # kata2-linux-container prep (ref: https://github.com/kata-containers/packaging/tree/master/kernel )
- cd "${srcdir}/linux-${_kata_kernel_ver}"
- #for p in $(find "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/patches" -type f -name "*.patch"); do
- # patch -p1 <"${p}"
- #done
-
- # kernel config prep from upstream ("${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/obs-packaging/linux-container/kata-linux-container.spec-template")
- make -s mrproper
- rm -f .config
-
- _KCONFIG="$(find "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/configs" -type f -name "${_KARCH}_kata_kvm_${_kata_kernel_ver%.*}.x")"
- if [ -z "${_KCONFIG}" ]; then
- KCONFIG_CONFIG=.config ARCH=${_KARCH} scripts/kconfig/merge_config.sh -r -n "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/configs/fragments/common/"*.conf "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/configs/fragments/${_KARCH}/"*.conf
- else
- install -Dm 0644 "${_KCONFIG}" .config
- fi
- make -s ARCH="${_KARCH}" oldconfig
+_kernel_prepare(){
+ # kata2-linux-container prep (ref: https://github.com/kata-containers/packaging/tree/master/kernel )
+ cd "${srcdir}/linux-${_kata_kernel_ver}"
+ #for p in $(find "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/patches" -type f -name "*.patch"); do
+ # patch -p1 <"${p}"
+ #done
+
+ # kernel config prep from upstream ("${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/obs-packaging/linux-container/kata-linux-container.spec-template")
+ make -s mrproper
+ rm -f .config
+
+ local -r _KCONFIG="$(find "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/configs" -type f -name "${_KARCH}_kata_kvm_${_kata_kernel_ver%.*}.x")"
+ if [ -z "${_KCONFIG}" ]; then
+ KCONFIG_CONFIG=.config ARCH=${_KARCH} scripts/kconfig/merge_config.sh -r -n "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/configs/fragments/common/"*.conf "${srcdir}/${_pkgbase}-${_pkgver}/tools/packaging/kernel/configs/fragments/${_KARCH}/"*.conf
+ else
+ install -Dm 0644 "${_KCONFIG}" .config
fi
+ make -s ARCH="${_KARCH}" oldconfig
+}
+
+prepare(){
+ _kernel_prepare
+
+ install -dm0755 "${srcdir}/bin"
+ ln -sf "$(type -p yq)" "${srcdir}/bin/yq"
+
+ # agent-based initrd
+ BINSRC="${srcdir}/${_pkgbase}-${_pkgver}/src/agent/target/${_KARCH}-unknown-linux-gnu/release/kata-agent" envsubst <"${srcdir}/install_kata-agent.tpl" >"${srcdir}/install_kata-agent"
+ install -Dm0644 "${srcdir}/install_kata-agent" "${srcdir}/initcpio-agent/install/kata-agent"
+
+ # systemd units
+ install -Dm0644 "${srcdir}/kata-agent.service.in" "${srcdir}/${_pkgbase}-${_pkgver}/src/agent/kata-agent.service.in"
+ install -Dm0644 "${srcdir}/kata-containers.target" "${srcdir}/${_pkgbase}-${_pkgver}/src/agent/kata-containers.target"
+
+ # systemd-based initrd
+ SRCDIR="${srcdir}/${_pkgbase}-${_pkgver}/src/agent" KARCH="${_KARCH}" envsubst <"${srcdir}/install_sd-kata-agent.tpl" >"${srcdir}/install_sd-kata-agent"
+ install -Dm0644 "${srcdir}/install_sd-kata-agent" "${srcdir}/initcpio-systemd/install/sd-kata-agent"
# remove subrepos without the `install` makefile target
sed -i \
-e '/COMPONENTS += trace-forwarder/d' \
-e '/TOOLS += agent-ctl/d' \
"${srcdir}/${_pkgbase}-${_pkgver}/Makefile"
- [ "${_build_images}" = "yes" ] && install -m0755 "${srcdir}/image_builder.sh" "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/image-builder/image_builder.sh" ||:
+ install -m0755 "${srcdir}/image_builder.sh" "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/image-builder/image_builder.sh"
}
-build(){
- cd "${srcdir}/${_pkgbase}-${_pkgver}"
- GOPATH="${srcdir}" make BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib" LIBC=gnu
+_kata_image_build() {
+ # image build (it's horrid, but works without root)
+ local -r _ROOTFS_DIR="${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder/rootfs"
- if [ "${_build_kernel}" = "yes" ]; then
- # kernel build
- cd "${srcdir}/linux-${_kata_kernel_ver}"
- echo "Building kata2-linux-container…"
- make -s ARCH="${_KARCH}"
- fi
+ # build rootfs
+ install -Dm 0644 "${srcdir}/rootfs-builder-config.sh" "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder/archlinux/config.sh"
+ install -Dm 0644 "${srcdir}/rootfs-builder-lib.sh" "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder/archlinux/rootfs_lib.sh"
- if [ "${_build_images}" = "yes" ]; then
- # rootfs and initrd build (it's horrid, but somewhat works)
- _ROOTFS_DIR="${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder/rootfs"
+ cd "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder"
+ GOPATH="${srcdir}" AGENT_SOURCE_BIN="${srcdir}/${_pkgbase}-${_pkgver}/src/agent/target/${_KARCH}-unknown-linux-gnu/release/kata-agent" ROOTFS_DIR="${_ROOTFS_DIR}" ARCH_BOOTSTRAP_VER="${_arch_bootstrap_ver}" fakeroot -- ./rootfs.sh archlinux
- # build rootfs
- install -Dm 0644 "${srcdir}/rootfs-builder-config.sh" "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder/archlinux/config.sh"
- install -Dm 0644 "${srcdir}/rootfs-builder-lib.sh" "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder/archlinux/rootfs_lib.sh"
+ install -Dm0644 "${srcdir}/${_pkgbase}-${_pkgver}/src/agent/kata-containers.target" "${_ROOTFS_DIR}/usr/lib/systemd/system/kata-containers.target"
+ sed -e 's#@BINDIR@#/usr/bin#' -e 's#@AGENT_NAME@#kata-agent#' "${srcdir}/${_pkgbase}-${_pkgver}/src/agent/kata-agent.service.in" >"${_ROOTFS_DIR}/usr/lib/systemd/system/kata-agent.service"
- cd "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/rootfs-builder"
- GOPATH="${srcdir}" AGENT_SOURCE_BIN="${srcdir}/${_pkgbase}-${_pkgver}/src/agent/target/${_KARCH}-unknown-linux-gnu/release/kata-agent" ROOTFS_DIR="${_ROOTFS_DIR}" ARCH_BOOTSTRAP_VER="${_arch_bootstrap_ver}" fakeroot -- ./rootfs.sh archlinux
+ # might not be entirely necessary
+ pushd "${_ROOTFS_DIR}/etc/systemd/system/multi-user.target.wants"
+ ln -sf ../../../../usr/lib/systemd/system/kata-containers.target
+ popd
- # rootfs image (builds filesystem with uid:gid of building system user! beware!)
- cd "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/image-builder"
- ./image_builder.sh -f ext4 "${_ROOTFS_DIR}"
+ # rootfs image (builds filesystem with uid:gid of building system user! beware!)
+ cd "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/image-builder"
+ ./image_builder.sh -f ext4 "${_ROOTFS_DIR}"
+}
- # initrd
- cd "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/initrd-builder"
- ./initrd_builder.sh "${_ROOTFS_DIR}"
- fi
+build(){
+ cd "${srcdir}/${_pkgbase}-${_pkgver}"
+ GOPATH="${srcdir}" make BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib" LIBC=gnu
+
+ # kernel build
+ cd "${srcdir}/linux-${_kata_kernel_ver}"
+ make -s ARCH="${_KARCH}"
+
+ mkinitcpio -c "${srcdir}/mkinitcpio-agent.conf" -g "${srcdir}/initrd-arch-agent.img" -D "${srcdir}/initcpio-agent"
+ #mkinitcpio -c "${srcdir}/mkinitcpio-systemd.conf" -g "${srcdir}/initrd-arch-systemd.img" -D "${srcdir}/initcpio-systemd"
+ _kata_image_build
}
package_kata2-agent(){
cd "${srcdir}/${_pkgbase}-${_pkgver}/src/agent"
GOPATH="${srcdir}" make install DESTDIR="${pkgdir}" BINDIR="/usr/bin" PKGLIBEXECDIR="/usr/lib/kata-containers" LIBEXECDIR="/usr/lib" LIBC=gnu
+
+ # install hooks
+ install -dm0755 "${pkgdir}/usr/lib/initcpio/install"
+ BINSRC="/usr/bin/kata-agent" envsubst <"${srcdir}/install_kata-agent.tpl" >"${pkgdir}/usr/lib/initcpio/install/kata-agent"
+ #SRCDIR="${srcdir}/${_pkgbase}-${_pkgver}/src/agent" KARCH="${_KARCH}" envsubst <"${srcdir}/install_sd-kata-agent.tpl" >"${srcdir}/install_sd-kata-agent"
}
package_kata2-containers-image(){
- install -Dm 0644 "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/image-builder/kata-containers.img" "${pkgdir}/usr/share/kata-containers/kata-containers-image_archlinux_${_pkgver%%~*}_agent.img"
- install -Dm 0644 "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/initrd-builder/kata-containers-initrd.img" "${pkgdir}/usr/share/kata-containers/kata-containers-initrd_archlinux_${_pkgver%%~*}_agent.initrd"
- cd "${pkgdir}/usr/share/kata-containers"
- ln -sf "kata-containers-image_archlinux_${_pkgver%%~*}_agent.img" "kata-containers.img"
- ln -sf "kata-containers-initrd_archlinux_${_pkgver%%~*}_agent.initrd" "kata-containers-initrd.img"
+ local -r _img_filename="kata-containers-${_pkgver%%~*}-arch-systemd-image.img" _initrd_filename="kata-containers-${_pkgver%%~*}-arch-agent-initrd.img"
+ install -Dm 0644 "${srcdir}/${_pkgbase}-${_pkgver}/tools/osbuilder/image-builder/kata-containers.img" "${pkgdir}/usr/share/kata-containers/${_img_filename}"
+ install -Dm 0644 "${srcdir}/initrd-arch-agent.img" "${pkgdir}/usr/share/kata-containers/${_initrd_filename}"
+ pushd "${pkgdir}/usr/share/kata-containers"
+ ln -sf "${_img_filename}" "kata-containers-arch.img"
+ ln -sf "${_initrd_filename}" "kata-containers-arch-initrd.img"
+ popd
}
package_kata2-linux-container(){
install -Dm 0644 "${srcdir}/linux-${_kata_kernel_ver}/vmlinux" "${pkgdir}/usr/share/kata-containers/vmlinux-${_kata_kernel_ver}.container"
- cd "${pkgdir}/usr/share/kata-containers"
+ pushd "${pkgdir}/usr/share/kata-containers"
ln -sf "vmlinux-${_kata_kernel_ver}.container" vmlinux.container
if [ "${_KARCH}" = "powerpc" ]; then
ln -sf "vmlinux-${_kata_kernel_ver}.container" "vmlinuz-${_kata_kernel_ver}.container"
@@ -166,6 +211,7 @@ package_kata2-linux-container(){
install -Dm 0644 "${srcdir}/linux-${_kata_kernel_ver}/arch/${_KARCH}/boot/bzImage" "${pkgdir}/usr/share/kata-containers/vmlinuz-${_kata_kernel_ver}.container"
ln -sf "vmlinuz-${_kata_kernel_ver}.container" vmlinuz.container
fi
+ popd
}
package_kata2-runtime(){
diff --git a/install_kata-agent.tpl b/install_kata-agent.tpl
new file mode 100644
index 000000000000..6873c78824a4
--- /dev/null
+++ b/install_kata-agent.tpl
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+build(){
+ add_binary "${BINSRC}" "/init"
+}
diff --git a/install_sd-kata-agent.tpl b/install_sd-kata-agent.tpl
new file mode 100644
index 000000000000..57a7a932f898
--- /dev/null
+++ b/install_sd-kata-agent.tpl
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+build(){
+ add_systemd_unit "${SRCDIR}/kata-containers.target"
+ add_systemd_unit "${SRCDIR}/kata-agent.service"
+ add_binary "${SRCDIR}/target/${KARCH}-unknown-linux-gnu/release/kata-agent"
+}
diff --git a/kata-agent.service.in b/kata-agent.service.in
new file mode 100644
index 000000000000..0340bdbbbd54
--- /dev/null
+++ b/kata-agent.service.in
@@ -0,0 +1,24 @@
+#
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+[Unit]
+Description=Kata Containers Agent
+Documentation=https://github.com/kata-containers/kata-containers
+Wants=kata-containers.target
+#ConditionPathExists=/etc/initrd-release
+#DefaultDependencies=no
+
+[Service]
+# Send agent output to tty to allow capture debug logs
+# from a VM vsock port
+StandardOutput=tty
+Type=simple
+ExecStart=@BINDIR@/@AGENT_NAME@
+LimitNOFILE=infinity
+# ExecStop is required for static agent tracing; in all other scenarios
+# the runtime handles shutting down the VM.
+ExecStop=/bin/sync ; /usr/bin/systemctl --force poweroff
+FailureAction=poweroff
diff --git a/kata-containers.target b/kata-containers.target
new file mode 100644
index 000000000000..03f370075ee5
--- /dev/null
+++ b/kata-containers.target
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2018-2019 Intel Corporation
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+[Unit]
+Description=Kata Containers Agent Target
+Requires=basic.target
+Requires=tmp.mount
+Wants=chronyd.service
+Requires=kata-agent.service
+Conflicts=rescue.service rescue.target
+After=basic.target rescue.service rescue.target
+AllowIsolate=yes
+#ConditionPathExists=/etc/initrd-release
diff --git a/mkinitcpio-agent.conf b/mkinitcpio-agent.conf
new file mode 100644
index 000000000000..1a36f26aab64
--- /dev/null
+++ b/mkinitcpio-agent.conf
@@ -0,0 +1,6 @@
+MODULES=()
+BINARIES=()
+FILES=()
+HOOKS=(kata-agent)
+#COMPRESSION="gzip"
+#COMPRESSION_OPTIONS=()