Merge pull request #9489 from BbolroC/install-opa-in-docker

rootfs: Make OPA build working in docker for s390x and pp…
This commit is contained in:
Hyounggyu Choi 2024-04-18 00:26:11 +02:00 committed by GitHub
commit cc22dc33f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 23 additions and 8 deletions

View File

@ -553,10 +553,9 @@ build_opa_from_source()
local opa_repo_url=$1
opa_version="$(get_package_version_from_kata_yaml externals.open-policy-agent.version)"
if [ ${CROSS_BUILD} == "yes" ]; then
export GOOS="${TARGET_OS}"
export GOARCH="${TARGET_ARCH}}"
fi
export PATH="$PATH:/usr/local/go/bin"
export GOOS="${TARGET_OS}"
[ ${CROSS_BUILD} == "yes" ] && export GOARCH="${TARGET_ARCH}" || export GOARCH="$(uname -m)"
current_dir="$(pwd)"
pushd $(mktemp -d) &>/dev/null
@ -565,7 +564,7 @@ build_opa_from_source()
cd opa
export WASM_ENABLED=0
export DOCKER_RUNNING=0
make ci-go-ci-build-linux-static || return 1
make ci-build-linux-static || return 1
info "Copy OPA binary to ${current_dir}/opa"
binary_name="_release/${opa_version##v}/opa_${GOOS}_${GOARCH}_static"

View File

@ -6,6 +6,7 @@ ARG IMAGE_REGISTRY=docker.io
FROM ${IMAGE_REGISTRY}/ubuntu:@OS_VERSION@
@SET_PROXY@
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# makedev tries to mknod from postinst
RUN [ -x /usr/bin/systemd-detect-virt ] || ( echo "echo docker" >/usr/bin/systemd-detect-virt && chmod +x /usr/bin/systemd-detect-virt )
# hadolint ignore=DL3009,SC2046
@ -29,7 +30,9 @@ RUN apt-get update && \
multistrap \
musl-tools \
protobuf-compiler \
xz-utils
xz-utils && \
( go_version="@GO_VERSION@" && [ "${go_version}" = "" ] || ( \
echo "Installing go @GO_VERSION@" && curl -sSL "https://golang.org/dl/go@GO_VERSION@.linux-@ARCH@.tar.gz" | tar -xz -C /usr/local ))
# aarch64 requires this name -- link for all
RUN if [ ! -f "/usr/bin/$(uname -m)-linux-musl-gcc" ]; then ln -s /usr/bin/musl-gcc "/usr/bin/$(uname -m)-linux-musl-gcc"; fi

View File

@ -237,6 +237,7 @@ RUN . /root/.cargo/env; cargo install cargo-when
sed \
-e "s#@OS_VERSION@#${OS_VERSION:-}#g" \
-e "s#@ARCH@#$ARCH#g" \
-e "s#@GO_VERSION@#$GO_VERSION#g" \
-e "s#@INSTALL_RUST@#${install_rust//$'\n'/\\n}#g" \
-e "s#@SET_PROXY@#${set_proxy:-}#g" \
Dockerfile.in > Dockerfile

View File

@ -47,7 +47,8 @@ build_initrd() {
AGENT_POLICY="${AGENT_POLICY:-}" \
PULL_TYPE="${PULL_TYPE:-default}" \
COCO_GUEST_COMPONENTS_TARBALL="${COCO_GUEST_COMPONENTS_TARBALL:-}" \
PAUSE_IMAGE_TARBALL="${PAUSE_IMAGE_TARBALL:-}"
PAUSE_IMAGE_TARBALL="${PAUSE_IMAGE_TARBALL:-}" \
GO_VERSION="${GO_VERSION:-}"
mv "kata-containers-initrd.img" "${install_dir}/${artifact_name}"
(
cd "${install_dir}"
@ -69,7 +70,8 @@ build_image() {
AGENT_POLICY="${AGENT_POLICY:-}" \
PULL_TYPE="${PULL_TYPE:-default}" \
COCO_GUEST_COMPONENTS_TARBALL="${COCO_GUEST_COMPONENTS_TARBALL:-}" \
PAUSE_IMAGE_TARBALL="${PAUSE_IMAGE_TARBALL:-}"
PAUSE_IMAGE_TARBALL="${PAUSE_IMAGE_TARBALL:-}" \
GO_VERSION="${GO_VERSION:-}"
mv -f "kata-containers.img" "${install_dir}/${artifact_name}"
if [ -e "root_hash.txt" ]; then
cp root_hash.txt "${install_dir}/"

View File

@ -315,6 +315,11 @@ install_image() {
if [ "${variant}" == "confidential" ]; then
export COCO_GUEST_COMPONENTS_TARBALL="$(get_coco_guest_components_tarball_path)"
export PAUSE_IMAGE_TARBALL="$(get_pause_image_tarball_path)"
# GO_VERSION should be exported to install the package in ubuntu-rootfs-osbuilder
# This is necessary for installing opa from the source for s390x and ppc64le
if [ "${AGENT_POLICY}" == "yes" ] && [ "${ARCH}" == "s390x" -o "${ARCH}" == "ppc64le" ]; then
export GO_VERSION=$(get_from_kata_deps "languages.golang.meta.newest-version")
fi
fi
else
os_name="$(get_from_kata_deps "assets.image.architecture.${ARCH}.name")"
@ -384,6 +389,11 @@ install_initrd() {
if [ "${variant}" == "confidential" ]; then
export COCO_GUEST_COMPONENTS_TARBALL="$(get_coco_guest_components_tarball_path)"
export PAUSE_IMAGE_TARBALL="$(get_pause_image_tarball_path)"
# GO_VERSION should be exported to install the package in ubuntu-rootfs-osbuilder
# This is necessary for installing opa from the source for s390x and ppc64le
if [ "${AGENT_POLICY}" == "yes" ] && [ "${ARCH}" == "s390x" -o "${ARCH}" == "ppc64le" ]; then
export GO_VERSION=$(get_from_kata_deps "languages.golang.meta.newest-version")
fi
fi
else
os_name="$(get_from_kata_deps "assets.initrd.architecture.${ARCH}.name")"