Handle empty root in config

If the config.toml has an empty root specified, this could be
passed to the NVIDIA Container CLI through the --root flag
which causes argument parsing to fail. This change only
adds the --root flag if the config option is specified
and is non-empty.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar 2023-07-19 13:12:20 +02:00
parent 80a78e60d1
commit e51621aa7f
2 changed files with 15 additions and 2 deletions

View File

@ -92,7 +92,7 @@ func doPrestart() {
rootfs := getRootfsPath(container) rootfs := getRootfsPath(container)
args := []string{getCLIPath(cli)} args := []string{getCLIPath(cli)}
if cli.Root != nil { if cli.Root != nil && *cli.Root != "" {
args = append(args, fmt.Sprintf("--root=%s", *cli.Root)) args = append(args, fmt.Sprintf("--root=%s", *cli.Root))
} }
if cli.LoadKmods { if cli.LoadKmods {

View File

@ -102,9 +102,20 @@ function sync() {
ubuntu*) pkg_type=deb ubuntu*) pkg_type=deb
;; ;;
*) echo "ERROR: unexpected distribution ${src_dist}" *) echo "ERROR: unexpected distribution ${src_dist}"
exit 1
;; ;;
esac esac
if [[ $# -ge 4 && $4 == "package_type" ]] ; then
if [[ "${src_dist}" != "ubuntu18.04" && "${src_dist}" != "centos7" ]]; then
echo "Package type repos require ubuntu18.04 or centos7 as the source"
echo "skipping"
return
fi
dst_dist=$pkg_type
fi
local arch=${target##*-} local arch=${target##*-}
local dst_arch=${arch} local dst_arch=${arch}
case ${src_dist} in case ${src_dist} in
@ -174,11 +185,13 @@ git -C ${PACKAGE_REPO_ROOT} clean -fdx ${REPO}
for target in ${targets[@]}; do for target in ${targets[@]}; do
sync ${target} ${PACKAGE_CACHE}/packages ${PACKAGE_REPO_ROOT}/${REPO} sync ${target} ${PACKAGE_CACHE}/packages ${PACKAGE_REPO_ROOT}/${REPO}
# We also create a `package_type` repo; internally we skip this for non-ubuntu18.04 or centos7 distributions
sync ${target} ${PACKAGE_CACHE}/packages ${PACKAGE_REPO_ROOT}/${REPO} "package_type"
done done
git -C ${PACKAGE_REPO_ROOT} add ${REPO} git -C ${PACKAGE_REPO_ROOT} add ${REPO}
if [[ ${REPO} == "stable" ]]; then if [[ "${REPO}" == "stable" ]]; then
# Stable release # Stable release
git -C ${PACKAGE_REPO_ROOT} commit -s -F- <<EOF git -C ${PACKAGE_REPO_ROOT} commit -s -F- <<EOF
Add packages for NVIDIA Container Toolkit ${VERSION} release Add packages for NVIDIA Container Toolkit ${VERSION} release