Skip to content

Commit

Permalink
cloud-api-adaptor: Support podman in Build.sh
Browse files Browse the repository at this point in the history
Update build.sh to support `podman`

`podman` does not support the --push flag
This change only apply to building caa images in a development
enviroment where a single arch is used.

`podman` is not supported for building multi-arch.
Use Docker instead.

Signed-off-by: David Hadas <david.hadas@gmail.com>
  • Loading branch information
davidhadas committed May 2, 2024
1 parent d73a884 commit a2c4d4b
Showing 1 changed file with 35 additions and 6 deletions.
41 changes: 35 additions & 6 deletions src/cloud-api-adaptor/hack/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,35 @@ function get_tag_string() {
local tag_string=""

for tag in ${tags/,/ };do
tag_string+=" -t ${registry}/${name}:${tag}"
tag_string+=" ${registry}/${name}:${tag}"
done

echo "$tag_string"
}

# Add -t to each item of the tag list
function add_tflags() {
local tag_string="$1"
local tag_string_with_tflags=""

for tag in ${tag_string}; do
tag_string_with_tflags+=" -t ${tag}"
done

echo "$tag_string_with_tflags"
}

function push_all_tags() {
local tag_string="$1"
for tag in ${tag_string}; do
echo "Pushing ${tag}"
docker push ${tag};
done
}

function build_caa_payload_image() {
pushd "${script_dir}/../../"

local tag_string
local build_type=dev

Expand All @@ -51,7 +71,9 @@ function build_caa_payload_image() {
tag_string="$(get_tag_string "$release_tags")"
build_type=release
fi
tag_string_with_tflags="$(add_tflags "$tag_string")"

echo "Single-platform build of caa payload image and loading the result to docker images"
docker buildx build --platform "${supported_arches}" \
--build-arg RELEASE_BUILD="${release_build}" \
--build-arg BUILD_TYPE="${build_type}" \
Expand All @@ -60,9 +82,13 @@ function build_caa_payload_image() {
--build-arg YQ_VERSION="${YQ_VERSION}" \
--build-arg YQ_CHECKSUM="${YQ_CHECKSUM}" \
-f cloud-api-adaptor/Dockerfile \
${tag_string} \
--push \
${tag_string_with_tflags} \
--load \
.

echo "Push single-platform image to registry"
push_all_tags ${tag_string}

popd
}

Expand All @@ -72,7 +98,7 @@ function get_arch_specific_tag_string() {
local tag_string=""

for tag in ${tags/,/ };do
tag_string+=" -t ${registry}/${name}:${tag}-${arch}"
tag_string+=" ${registry}/${name}:${tag}-${arch}"
done

echo "$tag_string"
Expand All @@ -96,7 +122,9 @@ function build_caa_payload_arch_specific() {
tag_string="$(get_arch_specific_tag_string "$release_tags" "${arch}")"
build_type=release
fi
tag_string_with_tflags="$(add_tflags "$tag_string")"

echo "Multi-platform build of caa payload image and pushing the result to registry"
docker buildx build --platform "${supported_arches}" \
--build-arg RELEASE_BUILD="${release_build}" \
--build-arg BUILD_TYPE="${build_type}" \
Expand All @@ -105,9 +133,10 @@ function build_caa_payload_arch_specific() {
--build-arg YQ_VERSION="${YQ_VERSION}" \
--build-arg YQ_CHECKSUM="${YQ_CHECKSUM}" \
-f cloud-api-adaptor/Dockerfile \
${tag_string} \
${tag_string_with_tflags} \
--push \
.

popd
}

Expand Down

0 comments on commit a2c4d4b

Please sign in to comment.