Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arm64 images #1418

Merged
merged 10 commits into from
Sep 29, 2023
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 8 additions & 12 deletions .github/scripts/before_deploy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,10 @@ set -xe
mkdir -p src/packages

export VERSION=$(printf 'VER\t${project.version}' | mvn help:evaluate | grep '^VER' | cut -f2)

# Used for the docker image build
echo "SHADED_JAR=src/server/target/cassandra-reaper-${VERSION}.jar" >> $GITHUB_ENV

if [ "${GITHUB_REF}" = "refs/heads/master" ]
then
mkdir -p cassandra-reaper-master/server/target
Expand All @@ -36,13 +40,9 @@ then
tar czf cassandra-reaper-${VERSION}.tar.gz cassandra-reaper-master/
sudo mv cassandra-reaper-${VERSION}.tar.gz src/packages/
export GIT_HASH=$(git log --pretty=format:'%h' -n 1)
docker login -u $DOCKER_USER -p $DOCKER_PASS
export REPO=thelastpickle/cassandra-reaper
mvn -B -pl src/server/ docker:build -Ddocker.directory=src/server/src/main/docker
docker tag cassandra-reaper:latest $REPO:master
docker push $REPO:master
docker tag cassandra-reaper:latest $REPO:$GIT_HASH
docker push $REPO:$GIT_HASH
echo "DOCKER_TAG1=$REPO:master" >> $GITHUB_ENV
echo "DOCKER_TAG2=$REPO:$GIT_HASH" >> $GITHUB_ENV
fi
if [[ ${GITHUB_REF} == "refs/tags"* ]]
then
Expand All @@ -59,11 +59,7 @@ then
cd ../..
tar czf cassandra-reaper-${VERSION}-release.tar.gz cassandra-reaper-${VERSION}/
sudo mv cassandra-reaper-${VERSION}-release.tar.gz src/packages/
docker login -u $DOCKER_USER -p $DOCKER_PASS
export REPO=thelastpickle/cassandra-reaper
mvn -B -pl src/server/ docker:build -Ddocker.directory=src/server/src/main/docker
docker tag cassandra-reaper:latest $REPO:latest
docker push $REPO:latest
docker tag cassandra-reaper:latest $REPO:$VERSION
docker push $REPO:$VERSION
echo "DOCKER_TAG1=$REPO:master" >> $GITHUB_ENV
echo "DOCKER_TAG2=$REPO:$VERSION" >> $GITHUB_ENV
fi
3 changes: 2 additions & 1 deletion .github/scripts/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,8 @@ case "${TEST_TYPE}" in
mvn -B package -DskipTests
docker-compose -f ./src/packaging/docker-build/docker-compose.yml build
docker-compose -f ./src/packaging/docker-build/docker-compose.yml run build
mvn -B -f src/server/pom.xml docker:build -Ddocker.directory=src/server/src/main/docker -DskipTests
VERSION=$(printf 'VER\t${project.version}' | mvn help:evaluate | grep '^VER' | cut -f2)
docker build --build-arg SHADED_JAR=src/server/target/cassandra-reaper-${VERSION}.jar -f src/server/src/main/docker/Dockerfile -t cassandra-reaper:latest .
docker images

# Clear out Cassandra data before starting a new cluster
Expand Down
53 changes: 38 additions & 15 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -364,15 +364,15 @@ jobs:
run: |
pip install pyyaml
pip install ccm

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:
would be nice to not have these single space character additions as changes.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

definitely, sorry about that

- name: Setup CCM Cluster
run: ./.github/scripts/configure-ccm.sh
env:
TEST_TYPE: ${{ matrix.test-type }}
CASSANDRA_VERSION: ${{ matrix.cassandra-version }}
STORAGE_TYPE: ${{ matrix.storage-type }}
JDK_VERSION: ${{ matrix.jdk-version }}

- name: Run Tests
run: ./.github/scripts/run-tests.sh || ./.github/scripts/run-tests.sh
env:
Expand All @@ -383,10 +383,10 @@ jobs:
GRIM_MAX: ${{ matrix.grim-max }}
GRIM_MIN: ${{ matrix.grim-min }}
JDK_VERSION: ${{ matrix.jdk-version }}

- uses: codecov/codecov-action@v1


its-flapping:
needs: [docker-tests, its-ccm-local, its-ccm-cass]
name: Flapping reapers
Expand All @@ -411,23 +411,23 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup
uses: ./.github/actions/setup

- name: Install CCM
run: |
pip install pyyaml
pip install ccm

- name: Setup CCM Cluster
run: ./.github/scripts/configure-ccm.sh
env:
TEST_TYPE: ${{ matrix.test-type }}
CASSANDRA_VERSION: ${{ matrix.cassandra-version }}
STORAGE_TYPE: ${{ matrix.storage-type }}
JDK_VERSION: ${{ matrix.jdk-version }}

- name: Run Tests
run: |
./.github/scripts/run-tests.sh || ./.github/scripts/run-tests.sh || ./.github/scripts/run-tests.sh
Expand All @@ -439,7 +439,7 @@ jobs:
GRIM_MAX: ${{ matrix.grim-max }}
GRIM_MIN: ${{ matrix.grim-min }}
JDK_VERSION: ${{ matrix.jdk-version }}

- uses: codecov/codecov-action@v1

release:
Expand All @@ -457,7 +457,7 @@ jobs:
- name: Compute version number
run: |
VERSION=$(printf 'VER\t${project.version}' | mvn help:evaluate | grep '^VER' | cut -f2)
if [ "${GITHUB_REF}" = "refs/heads/master" ]
if [ "${GITHUB_REF}" = "refs/heads/arm64-images" ]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question:
Shouldn't this be reverted to master once this PR is merged?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good catch, let me change it before merging

then
# We're building a beta version
VERSION=$(printf 'VER\t${project.version}' | mvn help:evaluate | grep '^VER' | cut -f2)
Expand All @@ -472,12 +472,35 @@ jobs:
run: |
MAVEN_OPTS="-Xmx384m" mvn -B install -DskipTests

- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: 'arm64,arm'
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USER }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build packages
env:
DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
DOCKER_PASS: ${{ secrets.DOCKERHUB_PASSWORD }}
run: ./.github/scripts/before_deploy.sh

- name: tags
run: |
echo "Tags: ${{ env.DOCKER_TAG1 }} and ${{ env.DOCKER_TAG2 }}"
- name: Build image and push
id: docker_build
uses: docker/build-push-action@v4
with:
file: src/server/src/main/docker/Dockerfile
context: .
build-args: |
SHADED_JAR=${{ env.SHADED_JAR }}
push: true
tags: ${{ env.DOCKER_TAG1 }},${{ env.DOCKER_TAG2 }}
platforms: linux/amd64,linux/arm64
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache
- name: Locate deb and rpm packages for upload
run: |
REPO=reaper-deb
Expand Down
12 changes: 0 additions & 12 deletions src/server/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -494,18 +494,6 @@
<buildArgs>
<SHADED_JAR>cassandra-reaper-${project.version}.jar</SHADED_JAR>
</buildArgs>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>cassandra-reaper-${project.version}.jar</include>
</resource>
<resource>
<targetPath>/</targetPath>
<directory>${project.basedir}/../packaging/bin/</directory>
<include>spreaper</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
Expand Down
18 changes: 9 additions & 9 deletions src/server/src/main/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

FROM adoptopenjdk/openjdk11:alpine
FROM amazoncorretto:11.0.20-alpine

ARG SHADED_JAR

Expand Down Expand Up @@ -89,15 +89,15 @@ RUN apk add --update \
&& rm -rf /var/cache/apk/*


ADD cassandra-reaper.yml /etc/cassandra-reaper/cassandra-reaper.yml
ADD shiro.ini /etc/cassandra-reaper/shiro.ini
ADD entrypoint.sh /usr/local/bin/entrypoint.sh
ADD configure-persistence.sh /usr/local/bin/configure-persistence.sh
ADD configure-metrics.sh /usr/local/bin/configure-metrics.sh
ADD configure-webui-authentication.sh /usr/local/bin/configure-webui-authentication.sh
ADD configure-jmx-credentials.sh /usr/local/bin/configure-jmx-credentials.sh
ADD src/server/src/main/docker/cassandra-reaper.yml /etc/cassandra-reaper/cassandra-reaper.yml
ADD src/server/src/main/docker/shiro.ini /etc/cassandra-reaper/shiro.ini
ADD src/server/src/main/docker/entrypoint.sh /usr/local/bin/entrypoint.sh
ADD src/server/src/main/docker/configure-persistence.sh /usr/local/bin/configure-persistence.sh
ADD src/server/src/main/docker/configure-metrics.sh /usr/local/bin/configure-metrics.sh
ADD src/server/src/main/docker/configure-webui-authentication.sh /usr/local/bin/configure-webui-authentication.sh
ADD src/server/src/main/docker/configure-jmx-credentials.sh /usr/local/bin/configure-jmx-credentials.sh
ADD ${SHADED_JAR} /usr/local/lib/cassandra-reaper.jar
ADD spreaper /usr/local/bin/spreaper
ADD src/packaging/bin/spreaper /usr/local/bin/spreaper


# get around `/usr/local/bin/configure-persistence.sh: line 65: can't create /etc/cassandra-reaper/cassandra-reaper.yml: Interrupted system call` unknown error
Expand Down