| |
@@ -1,114 +0,0 @@
|
| |
- From 4004bd8fbe4cef00be62d35697e9ef28edda4df7 Mon Sep 17 00:00:00 2001
|
| |
- From: Cole Robinson <crobinso@redhat.com>
|
| |
- Date: Thu, 5 Mar 2020 12:21:16 -0500
|
| |
- Subject: [PATCH] image-builder: Add NSDAX_BIN for passing in compiled nsdax
|
| |
- tool
|
| |
-
|
| |
- In Fedora we are running the osbuilder scripts on the client machine,
|
| |
- to generate an initrd for the running host kernel. In this setup,
|
| |
- there's currently a runtime dependency on gcc for compiling the nsdax
|
| |
- tool, which is suboptimal.
|
| |
-
|
| |
- Add NSDAX_BIN environment variable; if specified, image-builder.sh
|
| |
- will use that path as the nsdax tool. This let's ship a compiled
|
| |
- nsdax tool to users and drop the runtime gcc dependency
|
| |
-
|
| |
- Fixes: #417
|
| |
-
|
| |
- Signed-off-by: Cole Robinson <crobinso@redhat.com>
|
| |
- ---
|
| |
- image-builder/image_builder.sh | 25 +++++++++++++++++++------
|
| |
- 1 file changed, 19 insertions(+), 6 deletions(-)
|
| |
-
|
| |
- diff --git a/image-builder/image_builder.sh b/image-builder/image_builder.sh
|
| |
- index 06cc711..e18822d 100755
|
| |
- --- a/image-builder/image_builder.sh
|
| |
- +++ b/image-builder/image_builder.sh
|
| |
- @@ -88,6 +88,7 @@ Options:
|
| |
- Extra environment variables:
|
| |
- AGENT_BIN: Use it to change the expected agent binary name
|
| |
- AGENT_INIT: Use kata agent as init process
|
| |
- + NSDAX_BIN: Use to specify path to pre-compiled 'nsdax' tool.
|
| |
- FS_TYPE: Filesystem type to use. Only xfs and ext4 are supported.
|
| |
- USE_DOCKER: If set will build image in a Docker Container (requries docker)
|
| |
- DEFAULT: not set
|
| |
- @@ -130,6 +131,8 @@ build_with_container() {
|
| |
- local root_free_space="$5"
|
| |
- local agent_bin="$6"
|
| |
- local agent_init="$7"
|
| |
- + local container_engine="$8"
|
| |
- + local nsdax_bin="$9"
|
| |
- local container_image_name="image-builder-osbuilder"
|
| |
- local shared_files=""
|
| |
-
|
| |
- @@ -158,6 +161,7 @@ build_with_container() {
|
| |
- --env FS_TYPE="${fs_type}" \
|
| |
- --env BLOCK_SIZE="${block_size}" \
|
| |
- --env ROOT_FREE_SPACE="${root_free_space}" \
|
| |
- + --env NSDAX_BIN="${nsdax_bin}" \
|
| |
- --env DEBUG="${DEBUG}" \
|
| |
- -v /dev:/dev \
|
| |
- -v "${script_dir}":"/osbuilder" \
|
| |
- @@ -411,6 +415,7 @@ set_dax_header() {
|
| |
- local image="$1"
|
| |
- local img_size="$2"
|
| |
- local fs_type="$3"
|
| |
- + local nsdax_bin="$4"
|
| |
-
|
| |
- # rootfs start + DAX header size
|
| |
- local rootfs_offset=$((rootfs_start + dax_header_sz))
|
| |
- @@ -425,9 +430,12 @@ set_dax_header() {
|
| |
- info "Set DAX metadata"
|
| |
- # Set metadata header
|
| |
- # Issue: https://github.com/kata-containers/osbuilder/issues/240
|
| |
- - gcc -O2 "${script_dir}/nsdax.gpl.c" -o "${script_dir}/nsdax"
|
| |
- - "${script_dir}/nsdax" "${header_image}" "${dax_header_bytes}" "${dax_alignment_bytes}"
|
| |
- - rm -f "${script_dir}/nsdax"
|
| |
- + if [ -z "${nsdax_bin}" ] ; then
|
| |
- + nsdax_bin="${script_dir}/nsdax"
|
| |
- + gcc -O2 "${script_dir}/nsdax.gpl.c" -o "${nsdax_bin}"
|
| |
- + trap "rm ${nsdax_bin}" EXIT
|
| |
- + fi
|
| |
- + "${nsdax_bin}" "${header_image}" "${dax_header_bytes}" "${dax_alignment_bytes}"
|
| |
- sync
|
| |
-
|
| |
- touch "${dax_image}"
|
| |
- @@ -452,6 +460,7 @@ main() {
|
| |
- local image="${IMAGE:-kata-containers.img}"
|
| |
- local block_size="${BLOCK_SIZE:-4096}"
|
| |
- local root_free_space="${ROOT_FREE_SPACE:-}"
|
| |
- + local nsdax_bin="${NSDAX_BIN:-}"
|
| |
-
|
| |
- while getopts "ho:r:f:" opt
|
| |
- do
|
| |
- @@ -471,6 +480,7 @@ main() {
|
| |
- exit 0
|
| |
- fi
|
| |
-
|
| |
- + local container_engine
|
| |
- if [ -n "${USE_DOCKER}" ]; then
|
| |
- container_engine="docker"
|
| |
- elif [ -n "${USE_PODMAN}" ]; then
|
| |
- @@ -478,8 +488,11 @@ main() {
|
| |
- fi
|
| |
-
|
| |
- if [ -n "$container_engine" ]; then
|
| |
- - build_with_container "${rootfs}" "${image}" "${fs_type}" "${block_size}" \
|
| |
- - "${root_free_space}" "${agent_bin}" "${agent_init}" "${container_engine}"
|
| |
- + build_with_container "${rootfs}" \
|
| |
- + "${image}" "${fs_type}" "${block_size}" \
|
| |
- + "${root_free_space}" "${agent_bin}" \
|
| |
- + "${agent_init}" "${container_engine}" \
|
| |
- + "${nsdax_bin}"
|
| |
- exit $?
|
| |
- fi
|
| |
-
|
| |
- @@ -496,7 +509,7 @@ main() {
|
| |
- "${fs_type}" "${block_size}"
|
| |
-
|
| |
- # insert at the beginning of the image the MBR + DAX header
|
| |
- - set_dax_header "${image}" "${img_size}" "${fs_type}"
|
| |
- + set_dax_header "${image}" "${img_size}" "${fs_type}" "${nsdax_bin}"
|
| |
- }
|
| |
-
|
| |
- main "$@"
|
| |
Please, check each commit for further details.
NOTE: This PR's been made atop of https://src.fedoraproject.org/rpms/kata-osbuilder/pull-request/6