Skip to content

Commit

Permalink
ci: Build ARM images for core components (kubeflow#7220)
Browse files Browse the repository at this point in the history
* ci: Build ARM images for core components

Extend the GH Actions to also build the images on ARM architectures.

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* crud-web-apps: Update python and gevent versions

In order to successfully build on linux/arm64/v8 we'll need to:
* Update to Python 3.10
* Bump the gevent version

gevent/gevent#1721 (comment)

* Update the workflows for JWA

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for centraldb

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for kfam

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for notebook-controller

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for PodDefaults

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for Profile Controller

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for pvcviewer controller

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for TensorBoard Controller

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for TWA

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update workflows for VWA

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

* Update releasing script to include PVCViewers

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>

---------

Signed-off-by: Kimonas Sotirchos <kimwnasptd@gmail.com>
  • Loading branch information
kimwnasptd committed Oct 13, 2023
1 parent e28be5d commit a19badf
Show file tree
Hide file tree
Showing 32 changed files with 396 additions and 99 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/centraldb_docker_publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
env:
DOCKER_USER: kubeflownotebookswg
IMG: kubeflownotebookswg/centraldashboard
ARCH: linux/ppc64le,linux/amd64
ARCH: linux/ppc64le,linux/amd64,linux/arm64/v8

jobs:
push_to_registry:
Expand All @@ -33,7 +33,7 @@ jobs:
with:
username: ${{ env.DOCKER_USER }}
password: ${{ secrets.KUBEFLOWNOTEBOOKSWG_DOCKER_TOKEN }}

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

Expand Down
4 changes: 0 additions & 4 deletions .github/workflows/centraldb_integration_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,16 +22,12 @@ jobs:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build CentralDashboard Image
run: |
cd components/centraldashboard
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
- name: Install KinD
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/centraldb_multi_arch_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: CentralDashboard Multi-Arch Build Test
on:
pull_request:
paths:
- components/centraldashboard/**
branches:
- master
- v*-branch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true

env:
IMG: centraldashboard

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build multi-arch Image
run: |
cd components/centraldashboard
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
ARCH=linux/arm64/v8 make docker-build-multi-arch
8 changes: 3 additions & 5 deletions .github/workflows/jwa_docker_publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ on:
env:
DOCKER_USER: kubeflownotebookswg
IMG: kubeflownotebookswg/jupyter-web-app
# If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work.
# If this is NOT a PR (e.g. a tag or merge commit), also build for ppc64le.
ARCH: linux/amd64${{ github.event_name != 'pull_request' && ',linux/ppc64le' || '' }}
ARCH: linux/amd64,linux/ppc64le,linux/arm64/v8

jobs:
push_to_registry:
Expand Down Expand Up @@ -42,13 +40,13 @@ jobs:

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build and push multi-arch docker image
run: |
cd components/crud-web-apps/jupyter
make docker-build-push-multi-arch
- name: Build and push latest multi-arch docker image
- name: Build and push latest multi-arch docker image
if: github.ref == 'refs/heads/master'
run: |
export TAG=latest
Expand Down
10 changes: 3 additions & 7 deletions .github/workflows/jwa_integration_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,22 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build JWA Image
- name: Build JWA Image
run: |
cd components/crud-web-apps/jupyter
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
make docker-build-multi-arch
- name: Install KinD
run: ./components/testing/gh-actions/install_kind.sh

- name: Create KinD Cluster
run: kind create cluster --config components/testing/gh-actions/kind-1-25.yaml

- name: Load Image into KinD Cluster
- name: Load Image into KinD Cluster
run: |
kind load docker-image "${IMG}:${TAG}"
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/jwa_multi_arch_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: JWA Multi-Arch Build Test
on:
pull_request:
paths:
- components/crud-web-apps/jupyter/**
- components/crud-web-apps/common/**
branches:
- master
- v*-branch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true

env:
IMG: jupyter-web-app

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build multi-arch Image
run: |
cd components/crud-web-apps/jupyter
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
ARCH=linux/arm64/v8 make docker-build-multi-arch
4 changes: 1 addition & 3 deletions .github/workflows/kfam_docker_publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ on:
env:
DOCKER_USER: kubeflownotebookswg
IMG: kubeflownotebookswg/kfam
# If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work.
# If this is NOT a PR (e.g. a tag or merge commit), also build for ppc64le.
ARCH: linux/amd64${{ github.event_name != 'pull_request' && ',linux/ppc64le' || '' }}
ARCH: linux/amd64,linux/ppc64le,linux/arm64/v8

jobs:
push_to_registry:
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/kfam_multi_arch_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: KFAM Multi-Arch Build Test
on:
pull_request:
paths:
- components/access-management/**
branches:
- master
- v*-branch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true

env:
IMG: kfam

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build multi-arch Image
run: |
cd components/access-management
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
ARCH=linux/arm64/v8 make docker-build-multi-arch
6 changes: 1 addition & 5 deletions .github/workflows/nb_controller_docker_publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ on:
env:
DOCKER_USER: kubeflownotebookswg
IMG: kubeflownotebookswg/notebook-controller
# If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work.
# If this is NOT a PR (e.g. a tag or merge commit), also build for ppc64le.
ARCH: linux/amd64${{ github.event_name != 'pull_request' && ',linux/ppc64le' || '' }}
ARCH: linux/amd64,linux/ppc64le,linux/arm64/v8

jobs:
push_to_registry:
Expand All @@ -39,8 +37,6 @@ jobs:

- name: Setup QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: ppc64le

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2
Expand Down
10 changes: 3 additions & 7 deletions .github/workflows/nb_controller_integration_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,26 +21,22 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build Notebook Controller Image
- name: Build Notebook Controller Image
run: |
cd components/notebook-controller
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
make docker-build-multi-arch
- name: Install KinD
run: ./components/testing/gh-actions/install_kind.sh

- name: Create KinD Cluster
run: kind create cluster --config components/testing/gh-actions/kind-1-25.yaml

- name: Load Images into KinD Cluster
- name: Load Images into KinD Cluster
run: |
kind load docker-image "${IMG}:${TAG}"
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/nb_controller_multi_arch_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Notebook Controller Multi-Arch Build Test
on:
pull_request:
paths:
- components/notebook-controller/**
branches:
- master
- v*-branch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true

env:
IMG: notebook-controller

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build multi-arch Image
run: |
cd components/notebook-controller
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
ARCH=linux/arm64/v8 make docker-build-multi-arch
4 changes: 1 addition & 3 deletions .github/workflows/poddefaults_docker_publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ on:
env:
DOCKER_USER: kubeflownotebookswg
IMG: kubeflownotebookswg/poddefaults-webhook
# If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work.
# If this is NOT a PR (e.g. a tag or merge commit), also build for ppc64le.
ARCH: linux/amd64${{ github.event_name != 'pull_request' && ',linux/ppc64le' || '' }}
ARCH: linux/amd64,linux/ppc64le,linux/arm64/v8

jobs:
push_to_registry:
Expand Down
11 changes: 3 additions & 8 deletions .github/workflows/poddefaults_integration_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,27 +21,22 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2


- name: Build PodDefaults Image
- name: Build PodDefaults Image
run: |
cd components/admission-webhook
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
make docker-build-multi-arch
- name: Install KinD
run: ./components/testing/gh-actions/install_kind.sh

- name: Create KinD Cluster
run: kind create cluster --config components/testing/gh-actions/kind-1-25.yaml

- name: Load Images into KinD Cluster
- name: Load Images into KinD Cluster
run: |
kind load docker-image "${IMG}:${TAG}"
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/poddefaults_multi_arch_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: PodDefaults Multi-Arch Build Test
on:
pull_request:
paths:
- components/admission-webhook/**
branches:
- master
- v*-branch

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true

env:
IMG: poddefaults-webhook

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup QEMU
uses: docker/setup-qemu-action@v2

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build multi-arch Image
run: |
cd components/admission-webhook
ARCH=linux/ppc64le make docker-build-multi-arch
ARCH=linux/amd64 make docker-build-multi-arch
ARCH=linux/arm64/v8 make docker-build-multi-arch
4 changes: 1 addition & 3 deletions .github/workflows/prof_controller_docker_publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ on:
env:
DOCKER_USER: kubeflownotebookswg
IMG: kubeflownotebookswg/profile-controller
# If this is a PR, we ONLY build for AMD64. For PRs we only do a sanity check test to ensure Docker builds work.
# If this is NOT a PR (e.g. a tag or merge commit), also build for ppc64le.
ARCH: linux/amd64${{ github.event_name != 'pull_request' && ',linux/ppc64le' || '' }}
ARCH: linux/amd64,linux/ppc64le,linux/arm64/v8

jobs:
push_to_registry:
Expand Down
Loading

0 comments on commit a19badf

Please sign in to comment.