Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions travis/build-openvswitch-travis-arm64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
#!/bin/bash
# usage: ./build_openvswitch.sh <docker-reg> <docker-tag> <docker-build-args>
set -x

DOCKER_HUB_ID=$1
DOCKER_TAG=$2
BUILDARG=$3
[ -z "$DOCKER_HUB_ID" ] && DOCKER_HUB_ID=
[ -z "$DOCKER_TAG" ] && DOCKER_TAG=
[ -z "$BUILDARG" ] && BUILDARG=
export DOCKER_HUB_ID
export DOCKER_TAG
export BUILDARG

SECOPT=
export SECOPT

DOCKER_DIR=docker/travis

set -Eeuxo pipefail

#make -C . vendor dist-static/ovsresync

echo "starting ovs build"
echo "building base image"
rm -Rf build/openvswitch
mkdir -p build/openvswitch
cp $DOCKER_DIR/Dockerfile-openvswitch-base build/openvswitch
docker build $BUILDARG -t $DOCKER_HUB_ID/openvswitch-base:$DOCKER_TAG -f ./build/openvswitch/Dockerfile-openvswitch-base build/openvswitch &> /tmp/openvswitch-base.log &
while [ ! -f /tmp/openvswitch-base.log ]; do sleep 10; done
tail -f /tmp/openvswitch-base.log | awk 'NR%100-1==0' &
while [[ "$(pgrep -x 'docker' 2> /dev/null)" != '' ]]; do sleep 60; done

tail -25 /tmp/openvswitch-base.log

echo "copying intermediate binaries and libs"
rm -Rf build/openvswitch/dist
mkdir -p build/openvswitch/dist/usr/local
id=$(docker create $DOCKER_HUB_ID/openvswitch-base:$DOCKER_TAG)
docker cp -L $id:/usr/local/lib build/openvswitch/dist/usr/local
docker cp -L $id:/usr/local/bin build/openvswitch/dist/usr/local
docker cp -L $id:/usr/local/sbin build/openvswitch/dist/usr/local
docker cp -L $id:/usr/local/share build/openvswitch/dist/usr/local
docker rm -v $id
cp $DOCKER_DIR/launch-ovs.sh build/openvswitch/dist/usr/local/bin
cp $DOCKER_DIR/liveness-ovs.sh build/openvswitch/dist/usr/local/bin
mkdir build/openvswitch/dist/licenses
cp $DOCKER_DIR/../licenses/* build/openvswitch/dist/licenses
cp dist-static/ovsresync build/openvswitch/dist/usr/local/bin

echo "building final image"
cp $DOCKER_DIR/Dockerfile-openvswitch build/openvswitch
docker build $BUILDARG -t $DOCKER_HUB_ID/openvswitch:$DOCKER_TAG -f ./build/openvswitch/Dockerfile-openvswitch build/openvswitch/dist
67 changes: 67 additions & 0 deletions travis/build-push-aci-containers-image-arm64.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!/bin/bash
set -x
SCRIPTS_DIR=$(dirname ${BASH_SOURCE[0]})
source "$SCRIPTS_DIR/globals.sh"

git show --summary

IMAGE_BUILD_REGISTRY="${QUAY_REGISTRY}"
IMAGE_BUILD_TAG=${IMAGE_TAG}
OTHER_IMAGE_TAGS="${TRAVIS_TAG_WITH_UPSTREAM_ID},${TRAVIS_TAG_WITH_UPSTREAM_ID_DATE_TRAVIS_BUILD_NUMBER}"
RELEASE_TAG_WITH_UPSTREAM_ID=${RELEASE_TAG}.${UPSTREAM_ID}


wget -P "$WORKSPACE" https://musl.cc/aarch64-linux-musl-cross.tgz
tar -xvf "$WORKSPACE/aarch64-linux-musl-cross.tgz" -C "$WORKSPACE"
cp "$WORKSPACE/aarch64-linux-musl-cross/bin/aarch64-linux-musl-gcc" "$WORKSPACE"

docker/copy_iptables.sh ${IMAGE_BUILD_REGISTRY}/opflex-build-base:${UPSTREAM_IMAGE_Z_TAG} dist-static

export CC="$WORKSPACE/aarch64-linux-musl-gcc"
export GOARCH=arm64

make -C . all-static-arm6

$SCRIPTS_DIR/build-openvswitch-travis-arm64.sh ${IMAGE_BUILD_REGISTRY} ${IMAGE_TAG}
docker images
docker buildx build --no-cache --platform linux/arm64 -t ${IMAGE_BUILD_REGISTRY}/cnideploy:${IMAGE_TAG} --file=docker/travis/Dockerfile-cnideploy-arm64 .
docker images
docker buildx build --no-cache --platform linux/arm64 -t ${IMAGE_BUILD_REGISTRY}/aci-containers-controller:${IMAGE_TAG} --file=docker/travis/Dockerfile-controller-arm64 .
docker images
docker buildx build --no-cache --platform linux/arm64 --target without-ovscni -t ${IMAGE_BUILD_REGISTRY}/aci-containers-host:${IMAGE_TAG} --file=docker/travis/Dockerfile-host-arm64 .
docker images
docker buildx build --no-cache --platform linux/arm64 --target with-ovscni -t ${IMAGE_BUILD_REGISTRY}/aci-containers-host-ovscni:${IMAGE_TAG} --file=docker/travis/Dockerfile-host .
docker images
ddocker buildx build --no-cache --platform linux/arm64 -t ${IMAGE_BUILD_REGISTRY}/aci-containers-operator:${IMAGE_TAG} --file=docker/travis/Dockerfile-operator-arm64 .
docker images
docker buildx build --no-cache --platform linux/arm64 -t ${IMAGE_BUILD_REGISTRY}/aci-containers-webhook:${IMAGE_TAG} --file=docker/travis/Dockerfile-webhook .
docker images
docker buildx build --no-cache --platform linux/arm64 -t ${IMAGE_BUILD_REGISTRY}/aci-containers-certmanager:${IMAGE_TAG} --file=docker/travis/Dockerfile-certmanager .
docker images

# Fetching Base Image - Common base image for every ACI container so fetching once
ACI_BASE_IMAGE=$(grep -E '^FROM' docker/travis/Dockerfile-controller | awk '{print $2}')
docker pull "${ACI_BASE_IMAGE}"
docker images

# Fetching Base Image for openvswitch
OVS_BASE_IMAGE=$(grep -E '^FROM' docker/travis/Dockerfile-openvswitch | awk '{print $2}')
docker pull "${OVS_BASE_IMAGE}"
docker images


'
# Note: acc-provision-operator and opflex images come from their respective repos
ALL_IMAGES=("aci-containers-host" "aci-containers-controller" "cnideploy" "aci-containers-operator" "openvswitch" "aci-containers-webhook" "aci-containers-certmanager" "aci-containers-host-ovscni")
for IMAGE in "${ALL_IMAGES[@]}"; do
if [[ "${IMAGE}" != "openvswitch" ]]; then
$SCRIPTS_DIR/push-images.sh "${IMAGE_BUILD_REGISTRY}" "${IMAGE}" "${IMAGE_BUILD_TAG}" "${OTHER_IMAGE_TAGS}" "${ACI_BASE_IMAGE}"
IMAGE_SHA=$(docker image inspect --format='{{.Id}}' "${IMAGE_BUILD_REGISTRY}/${IMAGE}:${IMAGE_BUILD_TAG}")
$SCRIPTS_DIR/push-to-cicd-status.sh "${QUAY_NOIRO_REGISTRY}" "${IMAGE}" "${IMAGE_BUILD_TAG}" "${OTHER_IMAGE_TAGS}" "${IMAGE_SHA}" "${ACI_BASE_IMAGE}"
else
$SCRIPTS_DIR/push-images.sh "${IMAGE_BUILD_REGISTRY}" "${IMAGE}" "${IMAGE_BUILD_TAG}" "${OTHER_IMAGE_TAGS}" "${OVS_BASE_IMAGE}"
IMAGE_SHA=$(docker image inspect --format='{{.Id}}' "${IMAGE_BUILD_REGISTRY}/${IMAGE}:${IMAGE_BUILD_TAG}")
$SCRIPTS_DIR/push-to-cicd-status.sh "${QUAY_NOIRO_REGISTRY}" "${IMAGE}" "${IMAGE_BUILD_TAG}" "${OTHER_IMAGE_TAGS}" "${IMAGE_SHA}" "${OVS_BASE_IMAGE}"
fi
done
'