osbuilder: ubuntu: Expose REPO_URL variables

This exposes REPO_URL and adds REPO_URL_X86_64 which can be set to use
custom Ubuntu repo for building rootfs.
If only one architecture is built, REPO_URL can be set. Otherwise,
REPO_URL_X86_64 is used for x86_64 arch and REPO_URL for others.

Fixes: #11276
Signed-off-by: Jacek Tomasiak <jtomasiak@arista.com>
Signed-off-by: Jacek Tomasiak <jacek.tomasiak@gmail.com>
This commit is contained in:
Jacek Tomasiak 2025-05-16 13:35:36 +02:00
parent 219d6e8ea6
commit da6860a632
No known key found for this signature in database
GPG Key ID: 53DF3E71644B7D0B
4 changed files with 28 additions and 2 deletions

View File

@ -56,6 +56,8 @@ GRACEFUL_EXIT=${GRACEFUL_EXIT:-""}
USE_DOCKER=${USE_DOCKER:-""}
USE_PODMAN=${USE_PODMAN:-""}
EXTRA_PKGS=${EXTRA_PKGS:-""}
REPO_URL=${REPO_URL:-""}
REPO_URL_X86_64=${REPO_URL_X86_64:-""}
KBUILD_SIGN_PIN=${KBUILD_SIGN_PIN:-""}
NVIDIA_GPU_STACK=${NVIDIA_GPU_STACK:-""}
@ -565,6 +567,8 @@ build_rootfs_distro()
--env KERNEL_MODULES_DIR="${KERNEL_MODULES_DIR}" \
--env LIBC="${LIBC}" \
--env EXTRA_PKGS="${EXTRA_PKGS}" \
--env REPO_URL="${REPO_URL}" \
--env REPO_URL_X86_64="${REPO_URL_X86_64}" \
--env OSBUILDER_VERSION="${OSBUILDER_VERSION}" \
--env OS_VERSION="${OS_VERSION}" \
--env VARIANT="${VARIANT}" \

View File

@ -12,15 +12,15 @@ PACKAGES="chrony iptables dbus"
[ "$AGENT_INIT" = no ] && PACKAGES+=" init"
[ "$MEASURED_ROOTFS" = yes ] && PACKAGES+=" cryptsetup-bin e2fsprogs"
[ "$SECCOMP" = yes ] && PACKAGES+=" libseccomp2"
REPO_URL=http://ports.ubuntu.com
case "$ARCH" in
aarch64) DEB_ARCH=arm64;;
ppc64le) DEB_ARCH=ppc64el;;
s390x) DEB_ARCH="$ARCH";;
x86_64) DEB_ARCH=amd64; REPO_URL=http://archive.ubuntu.com/ubuntu;;
x86_64) DEB_ARCH=amd64; REPO_URL=${REPO_URL_X86_64:-${REPO_URL:-http://archive.ubuntu.com/ubuntu}};;
*) die "$ARCH not supported"
esac
REPO_URL=${REPO_URL:-http://ports.ubuntu.com}
if [ "$(uname -m)" != "$ARCH" ]; then
case "$ARCH" in

View File

@ -107,6 +107,8 @@ NVIDIA_GPU_STACK="${NVIDIA_GPU_STACK:-}"
KBUILD_SIGN_PIN=${KBUILD_SIGN_PIN:-}
GUEST_HOOKS_TARBALL_NAME="${GUEST_HOOKS_TARBALL_NAME:-}"
EXTRA_PKGS="${EXTRA_PKGS:-}"
REPO_URL="${REPO_URL:-}"
REPO_URL_X86_64="${REPO_URL_X86_64:-}"
AGENT_POLICY="${AGENT_POLICY:-yes}"
RUNTIME_CHOICE="${RUNTIME_CHOICE:-both}"
@ -143,6 +145,8 @@ docker run \
--env KBUILD_SIGN_PIN="${KBUILD_SIGN_PIN}" \
--env GUEST_HOOKS_TARBALL_NAME="${GUEST_HOOKS_TARBALL_NAME}" \
--env EXTRA_PKGS="${EXTRA_PKGS}" \
--env REPO_URL="${REPO_URL}" \
--env REPO_URL_X86_64="${REPO_URL_X86_64}" \
--env AGENT_POLICY="${AGENT_POLICY}" \
--env RUNTIME_CHOICE="${RUNTIME_CHOICE}" \
--env AA_KBC="${AA_KBC:-}" \

View File

@ -51,6 +51,8 @@ ARTEFACT_REGISTRY_USERNAME="${ARTEFACT_REGISTRY_USERNAME:-}"
ARTEFACT_REGISTRY_PASSWORD="${ARTEFACT_REGISTRY_PASSWORD:-}"
GUEST_HOOKS_TARBALL_NAME="${GUEST_HOOKS_TARBALL_NAME:-}"
EXTRA_PKGS="${EXTRA_PKGS:-}"
REPO_URL="${REPO_URL:-}"
REPO_URL_X86_64="${REPO_URL_X86_64:-}"
AGENT_POLICY="${AGENT_POLICY:-yes}"
TARGET_BRANCH="${TARGET_BRANCH:-main}"
PUSH_TO_REGISTRY="${PUSH_TO_REGISTRY:-}"
@ -405,6 +407,14 @@ install_image() {
export EXTRA_PKGS
fi
if [[ -n "${REPO_URL}" ]]; then
export REPO_URL
fi
if [[ -n "${REPO_URL_X86_64}" ]]; then
export REPO_URL_X86_64
fi
"${rootfs_builder}" --osname="${os_name}" --osversion="${os_version}" --imagetype=image --prefix="${prefix}" --destdir="${destdir}" --image_initrd_suffix="${variant}"
}
@ -495,6 +505,14 @@ install_initrd() {
export EXTRA_PKGS
fi
if [[ -n "${REPO_URL}" ]]; then
export REPO_URL
fi
if [[ -n "${REPO_URL_X86_64}" ]]; then
export REPO_URL_X86_64
fi
"${rootfs_builder}" --osname="${os_name}" --osversion="${os_version}" --imagetype=initrd --prefix="${prefix}" --destdir="${destdir}" --image_initrd_suffix="${variant}"
}