diff --git a/src/agent/Cargo.toml b/src/agent/Cargo.toml index 3af1a2d1fd..8ac114c421 100644 --- a/src/agent/Cargo.toml +++ b/src/agent/Cargo.toml @@ -203,6 +203,7 @@ lto = true seccomp = ["rustjail/seccomp"] standard-oci-runtime = ["rustjail/standard-oci-runtime"] agent-policy = ["kata-agent-policy"] +init-data = [] [[bin]] name = "kata-agent" diff --git a/src/agent/Makefile b/src/agent/Makefile index 0fed742b9b..35dc5b6aff 100644 --- a/src/agent/Makefile +++ b/src/agent/Makefile @@ -41,6 +41,14 @@ ifeq ($(AGENT_POLICY),yes) override EXTRA_RUSTFEATURES += agent-policy endif +##VAR INIT_DATA=yes|no define if agent enables the init data feature +INIT_DATA ?= yes + +# Enable the init data fature of rust build +ifeq ($(INIT_DATA),yes) + override EXTRA_RUSTFEATURES += init-data +endif + include ../../utils.mk ##VAR STANDARD_OCI_RUNTIME=yes|no define if agent enables standard oci runtime feature diff --git a/src/agent/src/initdata.rs b/src/agent/src/initdata.rs index cd4efa6be2..ddc563fc16 100644 --- a/src/agent/src/initdata.rs +++ b/src/agent/src/initdata.rs @@ -9,6 +9,7 @@ // SPDX-License-Identifier: Apache-2.0 // +#[cfg(feature = "init-data")] use std::{os::unix::fs::FileTypeExt, path::Path}; use anyhow::{bail, Context, Result}; @@ -37,8 +38,16 @@ pub const AA_CONFIG_PATH: &str = concatcp!(INITDATA_PATH, "/aa.toml"); pub const CDH_CONFIG_PATH: &str = concatcp!(INITDATA_PATH, "/cdh.toml"); /// Magic number of initdata device +#[cfg(feature = "init-data")] pub const INITDATA_MAGIC_NUMBER: &[u8] = b"initdata"; +#[cfg(not(feature = "init-data"))] +async fn detect_initdata_device(logger: &Logger) -> Result> { + debug!(logger, "Initdata is disabled"); + Ok(None) +} + +#[cfg(feature = "init-data")] async fn detect_initdata_device(logger: &Logger) -> Result> { let dev_dir = Path::new("/dev"); let mut read_dir = tokio::fs::read_dir(dev_dir).await?; diff --git a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries-in-docker.sh b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries-in-docker.sh index d9a2024739..e0d6721e8a 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries-in-docker.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries-in-docker.sh @@ -113,6 +113,7 @@ AGENT_POLICY="${AGENT_POLICY:-yes}" RUNTIME_CHOICE="${RUNTIME_CHOICE:-both}" IMAGE_SIZE_ALIGNMENT_MB=${IMAGE_SIZE_ALIGNMENT_MB:-} KERNEL_DEBUG_ENABLED="${KERNEL_DEBUG_ENABLED:-}" +INIT_DATA="${INIT_DATA:-yes}" docker run \ -v $HOME/.docker:/root/.docker \ diff --git a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh index 8ec9a7884b..2ebf82f7fc 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -61,6 +61,7 @@ RELEASE="${RELEASE:-"no"}" KBUILD_SIGN_PIN="${KBUILD_SIGN_PIN:-}" RUNTIME_CHOICE="${RUNTIME_CHOICE:-both}" KERNEL_DEBUG_ENABLED=${KERNEL_DEBUG_ENABLED:-"no"} +INIT_DATA="${INIT_DATA:-yes}" workdir="${WORKDIR:-$PWD}" diff --git a/tools/packaging/static-build/agent/build-static-agent.sh b/tools/packaging/static-build/agent/build-static-agent.sh index b2aa45ecb4..4652f5bb3d 100755 --- a/tools/packaging/static-build/agent/build-static-agent.sh +++ b/tools/packaging/static-build/agent/build-static-agent.sh @@ -18,8 +18,8 @@ build_agent_from_source() { /usr/bin/install_libseccomp.sh /opt /opt cd src/agent - DESTDIR=${DESTDIR} AGENT_POLICY=${AGENT_POLICY} make - DESTDIR=${DESTDIR} AGENT_POLICY=${AGENT_POLICY} make install + DESTDIR=${DESTDIR} AGENT_POLICY=${AGENT_POLICY} INIT_DATA=${INIT_DATA} make + DESTDIR=${DESTDIR} AGENT_POLICY=${AGENT_POLICY} INIT_DATA=${INIT_DATA} make install } build_agent_from_source "$@" diff --git a/tools/packaging/static-build/agent/build.sh b/tools/packaging/static-build/agent/build.sh index c9ea6b83f4..3984088cdb 100755 --- a/tools/packaging/static-build/agent/build.sh +++ b/tools/packaging/static-build/agent/build.sh @@ -26,6 +26,7 @@ docker pull ${container_image} || \ docker run --rm -i -v "${repo_root_dir}:${repo_root_dir}" \ --env DESTDIR=${DESTDIR} \ --env AGENT_POLICY=${AGENT_POLICY:-no} \ + --env INIT_DATA=${INIT_DATA:-yes} \ --env LIBSECCOMP_VERSION=${LIBSECCOMP_VERSION} \ --env LIBSECCOMP_URL=${LIBSECCOMP_URL} \ --env GPERF_VERSION=${GPERF_VERSION} \