resolves #591 test(tb): - migrate two workflows to kubeflow/notebooks - migrate scripts and yaml files needed by the workflows

Signed-off-by: IlyaShav <ilya.shavkonov@nokia.com>
This commit is contained in:
Signed-off-by: Ilya Shavkonov 2025-09-16 21:52:47 +03:00 committed by IlyaShav
parent 5f191bc6a8
commit afde6851a0
8 changed files with 206 additions and 0 deletions

View File

@ -0,0 +1,63 @@
name: Tensorboard Controller Integration Test
on:
pull_request:
paths:
- components/tensorboard-controller/**
- releasing/version/VERSION
branches:
- master
- v*-branch
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true
env:
IMG: ghcr.io/kubeflow/kubeflow/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

View File

@ -0,0 +1,36 @@
name: TensorBoard Controller Multi-Arch Build Test
on:
pull_request:
paths:
- components/tensorboard-controller/**
- releasing/version/VERSION
branches:
- master
- v*-branch
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event.number }}
cancel-in-progress: true
env:
IMG: ghcr.io/kubeflow/kubeflow/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

View File

@ -0,0 +1,15 @@
#!/bin/bash
set -euo pipefail
CERT_MANAGER_VERSION="1.12.10"
CERT_MANAGER_URL="https://github.com/cert-manager/cert-manager/releases/download/v${CERT_MANAGER_VERSION}/cert-manager.yaml"
echo "Fetching cert-manager ${CERT_MANAGER_VERSION} manifests..."
curl -sL -o cert-manager.yaml "$CERT_MANAGER_URL"
echo "Applying cert-manager manifests..."
kubectl apply -f cert-manager.yaml
echo "Waiting for cert-manager to be ready..."
kubectl wait --for=condition=ready pod -l 'app in (cert-manager,webhook)' --timeout=180s -n cert-manager

View File

@ -0,0 +1,15 @@
#!/bin/bash
set -euo pipefail
ISTIO_VERSION="1.17.8"
ISTIO_URL="https://istio.io/downloadIstio"
echo "Installing Istio ${ISTIO_VERSION} ..."
mkdir istio_tmp
pushd istio_tmp >/dev/null
curl -sL "$ISTIO_URL" | ISTIO_VERSION=${ISTIO_VERSION} sh -
cd istio-${ISTIO_VERSION}
export PATH=$PWD/bin:$PATH
istioctl install -y
popd

View File

@ -0,0 +1,17 @@
#!/bin/bash
set -euo pipefail
KIND_VERSION="0.22.0"
KIND_URL="https://kind.sigs.k8s.io/dl/v${KIND_VERSION}/kind-linux-amd64"
echo "Setting up kind environment..."
sudo swapoff -a
sudo rm -f /swapfile
sudo mkdir -p /tmp/etcd
sudo mount -t tmpfs tmpfs /tmp/etcd
echo "Installing kind ${KIND_VERSION} ..."
curl -sL -o kind "$KIND_URL"
chmod +x ./kind
sudo mv kind /usr/local/bin

View File

@ -0,0 +1,12 @@
#!/bin/bash
set -euo pipefail
KUSTOMIZE_VERSION="5.4.1"
KUSTOMIZE_URL="https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_amd64.tar.gz"
echo "Installing kustomize ${KUSTOMIZE_VERSION} ..."
curl -sL -o kustomize.tar.gz "$KUSTOMIZE_URL"
tar -xzf kustomize.tar.gz
chmod +x kustomize
sudo mv kustomize /usr/local/bin

View File

@ -0,0 +1,24 @@
apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
# Configure registry for KinD.
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."$REGISTRY_NAME:$REGISTRY_PORT"]
endpoint = ["http://$REGISTRY_NAME:$REGISTRY_PORT"]
# This is needed in order to support projected volumes with service account tokens.
# See: https://kubernetes.slack.com/archives/CEKK1KTN2/p1600268272383600
kubeadmConfigPatches:
- |
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
metadata:
name: config
apiServer:
extraArgs:
"service-account-issuer": "kubernetes.default.svc"
"service-account-signing-key-file": "/etc/kubernetes/pki/sa.key"
nodes:
- role: control-plane
image: kindest/node:1.22.9@sha256:ad5b8404c4052781365a4e70bb7d17c5331e4177bd4a7cd214339316cd6193b6
- role: worker
image: kindest/node:1.22.9@sha256:ad5b8404c4052781365a4e70bb7d17c5331e4177bd4a7cd214339316cd6193b6

View File

@ -0,0 +1,24 @@
apiVersion: kind.x-k8s.io/v1alpha4
kind: Cluster
# Configure registry for KinD.
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."$REGISTRY_NAME:$REGISTRY_PORT"]
endpoint = ["http://$REGISTRY_NAME:$REGISTRY_PORT"]
# This is needed in order to support projected volumes with service account tokens.
# See: https://kubernetes.slack.com/archives/CEKK1KTN2/p1600268272383600
kubeadmConfigPatches:
- |
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
metadata:
name: config
apiServer:
extraArgs:
"service-account-issuer": "kubernetes.default.svc"
"service-account-signing-key-file": "/etc/kubernetes/pki/sa.key"
nodes:
- role: control-plane
image: kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1
- role: worker
image: kindest/node:v1.25.3@sha256:f52781bc0d7a19fb6c405c2af83abfeb311f130707a0e219175677e366cc45d1