diff --git a/.github/workflows/model_registry_test.yaml b/.github/workflows/model_registry_test.yaml new file mode 100644 index 0000000000..a58302357e --- /dev/null +++ b/.github/workflows/model_registry_test.yaml @@ -0,0 +1,42 @@ +# If anyone changes or improve the following tests for Model Registry, please +# consider reflecting the same changes on https://github.com/kubeflow/model-registry +name: Deploy and test Kubeflow Model Registry +on: + pull_request: + paths: + - apps/model-registry/upstream/** + - tests/gh-actions/kind-cluster.yaml + - tests/gh-actions/install_istio.sh + +jobs: + build-kfmr: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install KinD + run: ./tests/gh-actions/install_kind.sh + + - name: Create KinD Cluster + run: kind create cluster --config tests/gh-actions/kind-cluster.yaml + + - name: Install kustomize + run: ./tests/gh-actions/install_kustomize.sh + + - name: Install Istio + run: ./tests/gh-actions/install_istio.sh + + - name: Create kubeflow namespace + run: kustomize build common/kubeflow-namespace/base | kubectl apply -f - + + - name: Build & Apply KF Model Registry manifests + run: | + kustomize build apps/model-registry/upstream/overlays/db | kubectl apply -f - + kustomize build apps/model-registry/upstream/options/istio | kubectl apply -f - + + - name: Test KF Model Registry deployment + run: | + echo "Waiting for all Model Registry Pods to become ready..." + kubectl wait --for=condition=available -n kubeflow deployment/model-registry-db --timeout=600s + kubectl wait --for=condition=available -n kubeflow deployment/model-registry-deployment --timeout=600s diff --git a/hack/sync-model-registry-manifests.sh b/hack/sync-model-registry-manifests.sh index 6c76595d3c..255f75f353 100755 --- a/hack/sync-model-registry-manifests.sh +++ b/hack/sync-model-registry-manifests.sh @@ -9,11 +9,13 @@ # # Afterwards the developers can submit the PR to the kubeflow/manifests # repo, based on that local branch +# It must be executed directly from its directory # strict mode http://redsymbol.net/articles/unofficial-bash-strict-mode/ -set -euo pipefail +set -euxo pipefail IFS=$'\n\t' +COMMIT="v0.2.0-alpha" # You can use tags as well DEV_MODE=${DEV_MODE:=false} SRC_DIR=${SRC_DIR:=/tmp/kubeflow-model-registry} BRANCH=${BRANCH:=sync-kubeflow-model-registry-manifests-${COMMIT?}} @@ -21,43 +23,47 @@ BRANCH=${BRANCH:=sync-kubeflow-model-registry-manifests-${COMMIT?}} SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) MANIFESTS_DIR=$(dirname $SCRIPT_DIR) -if [ "$DEV_MODE" != "false" ]; then - echo "WARNING: Dev mode enabled..." -fi - echo "Creating branch: ${BRANCH}" -# DEV: Comment out this if you are testing locally if [ -n "$(git status --porcelain)" ]; then - # Uncommitted changes - echo "WARNING: You have uncommitted changes, exiting..." - exit 1 + echo "WARNING: You have uncommitted changes" fi if [ `git branch --list $BRANCH` ] then - echo "WARNING: Branch $BRANCH already exists. Exiting..." - exit 1 + echo "WARNING: Branch $BRANCH already exists." fi -# DEV: If you are testing locally set DEV_MODE=true to skip this step -if [ "$DEV_MODE" = "false" ]; then +# Create the branch in the manifests repository +if ! git show-ref --verify --quiet refs/heads/$BRANCH; then git checkout -b $BRANCH +else + echo "Branch $BRANCH already exists." fi - echo "Checking out in $SRC_DIR to $COMMIT..." + +# Checkout the Model Registry repository +mkdir -p $SRC_DIR cd $SRC_DIR +if [ ! -d "model-registry/.git" ]; then + git clone https://github.com/kubeflow/katib.git +fi +cd $SRC_DIR/model-registry +if ! git rev-parse --verify --quiet $COMMIT; then + git checkout -b $COMMIT +else + git checkout $COMMIT +fi + if [ -n "$(git status --porcelain)" ]; then - # Uncommitted changes - echo "WARNING: You have uncommitted changes, exiting..." - exit 1 + echo "WARNING: You have uncommitted changes" fi -git checkout $COMMIT echo "Copying model-registry manifests..." DST_DIR=$MANIFESTS_DIR/apps/model-registry/upstream -rm -rf $DST_DIR -mkdir -p $DST_DIR +if [ -d "$DST_DIR" ]; then + rm -r "$DST_DIR" +fi cp $SRC_DIR/manifests/kustomize/* $DST_DIR -r echo "Successfully copied all manifests." @@ -68,11 +74,8 @@ DST_TXT="\[$COMMIT\](https://github.com/kubeflow/model-registry/tree/$COMMIT/man sed -i "s|$SRC_TXT|$DST_TXT|g" ${MANIFESTS_DIR}/README.md -# DEV: If you are testing locally set DEV_MODE=true to skip this step -if [ "$DEV_MODE" = "false" ]; then - echo "Committing the changes..." - cd $MANIFESTS_DIR - git add apps - git add README.md - git commit -s -m "Update kubeflow/model-registry manifests from ${COMMIT}" -fi \ No newline at end of file +echo "Committing the changes..." +cd $MANIFESTS_DIR +git add apps +git add README.md +git commit -s -m "Update kubeflow/model-registry manifests from ${COMMIT}"