From 203ec7a99a5977d141a53735246f39aecb2bfeaf Mon Sep 17 00:00:00 2001 From: Ilya Shavkonov Date: Thu, 18 Sep 2025 22:40:43 +0300 Subject: [PATCH] ci: add tensorboard controller test workflows migrate the files below to kubeflow/notebooks-v1 branch - tb_controller_multi_arch_test.yaml - tb_controller_integration_test.yaml Signed-off-by: Ilya Shavkonov --- .../tb_controller_integration_test.yaml | 64 +++++++++++++++++++ .../tb_controller_multi_arch_test.yaml | 37 +++++++++++ 2 files changed, 101 insertions(+) create mode 100644 .github/workflows/tb_controller_integration_test.yaml create mode 100644 .github/workflows/tb_controller_multi_arch_test.yaml diff --git a/.github/workflows/tb_controller_integration_test.yaml b/.github/workflows/tb_controller_integration_test.yaml new file mode 100644 index 000000000..77fe608b8 --- /dev/null +++ b/.github/workflows/tb_controller_integration_test.yaml @@ -0,0 +1,64 @@ +name: Tensorboard Controller Integration Test +on: + pull_request: + paths: + - components/tensorboard-controller/** + - releasing/version/VERSION + branches: + - main + - v*-branch + - notebooks-v1 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }} + cancel-in-progress: true + +env: + IMG: ghcr.io/kubeflow/notebooks/tensorboard-controller + TAG: integration-test + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Build Tensorboard Controller Image + run: | + cd components/tensorboard-controller + make docker-build + + - 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 + run: | + kind load docker-image "${IMG}:${TAG}" + + - name: Install kustomize + run: ./components/testing/gh-actions/install_kustomize.sh + + - name: Install Istio + run: ./components/testing/gh-actions/install_istio.sh + + - name: Build & Apply manifests + run: | + cd components/tensorboard-controller/config + kubectl create ns kubeflow + + export CURRENT_IMAGE="${IMG}" + export PR_IMAGE="${IMG}:${TAG}" + + # escape "." in the image names, as it is a special characters in sed + export CURRENT_IMAGE=$(echo "$CURRENT_IMAGE" | sed 's|\.|\\.|g') + export PR_IMAGE=$(echo "$PR_IMAGE" | sed 's|\.|\\.|g') + + kustomize build overlays/kubeflow \ + | sed "s|${CURRENT_IMAGE}:[a-zA-Z0-9_.-]*|${PR_IMAGE}|g" \ + | kubectl apply -f - + + kubectl wait pods -n kubeflow -l app=tensorboard-controller --for=condition=Ready --timeout=300s \ No newline at end of file diff --git a/.github/workflows/tb_controller_multi_arch_test.yaml b/.github/workflows/tb_controller_multi_arch_test.yaml new file mode 100644 index 000000000..125547016 --- /dev/null +++ b/.github/workflows/tb_controller_multi_arch_test.yaml @@ -0,0 +1,37 @@ +name: TensorBoard Controller Multi-Arch Build Test +on: + pull_request: + paths: + - components/tensorboard-controller/** + - releasing/version/VERSION + branches: + - main + - v*-branch + - notebooks-v1 + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }} + cancel-in-progress: true + +env: + IMG: ghcr.io/kubeflow/notebooks/tensorboard-controller + +jobs: + build: + runs-on: ubuntu-22.04 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup QEMU + uses: docker/setup-qemu-action@v3 + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build multi-arch Image + run: | + cd components/tensorboard-controller + ARCH=linux/amd64 make docker-build-multi-arch + ARCH=linux/ppc64le make docker-build-multi-arch + ARCH=linux/arm64/v8 make docker-build-multi-arch \ No newline at end of file