Skip to content

Commit

Permalink
add Shell script openshift-ci make some REST call to MR
Browse files Browse the repository at this point in the history
In the scope of testing of Model Registry in openshift-ci:
- make a Shell script which invokes some REST calls to MR,
- so to make sure the REST endpoint is responsive,
- then create a K8s ISVC on the cluster,
- and display the MR InferenceService entities.

Later, in a subsequent issue/PR, once:
opendatahub-io/odh-model-controller#135
is merged, the last bulletpoint can be automated and placed under test in the final part of this script so to make sure the K8s ISVC on the cluster reflected as a precise MR InferenceService entity.
  • Loading branch information
tarilabs committed Feb 8, 2024
1 parent 44ce399 commit fc332c1
Showing 1 changed file with 97 additions and 0 deletions.
97 changes: 97 additions & 0 deletions test/scripts/rest.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
#!/bin/bash

make_post_extract_id() {
local url="$1"
local data="$2"
local id=$(curl -s -X POST "$url" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d "$data" | jq -r '.id')

if [ -z "$id" ]; then
echo "Error: Failed to extract ID from response"
exit 1
fi

echo "$id"
}

# TODO: finalize using openshift-ci values.
OCP_CLUSTER_NAME="rosa.mmortari-rosa-h.w0x4.p3.openshiftapps.com"
MR_NAMESPACE="shared-modelregistry-ns"
MR_HOSTNAME="http://modelregistry-sample-http-$MR_NAMESPACE.apps.$OCP_CLUSTER_NAME"

timestamp=$(date +"%Y%m%d%H%M%S")
rm_name="demo-$timestamp"

rm_id=$(make_post_extract_id "$MR_HOSTNAME/api/model_registry/v1alpha1/registered_models" '{
"description": "lorem ipsum registered model",
"name": "'"$rm_name"'"
}')

if [ $? -ne 0 ]; then
exit 1
fi
echo "Registered Model ID: $rm_id"

mv_id=$(make_post_extract_id "$MR_HOSTNAME/api/model_registry/v1alpha1/model_versions" '{
"description": "lorem ipsum model version",
"name": "v1",
"author": "John Doe",
"registeredModelID": "'"$rm_id"'"
}')

if [ $? -ne 0 ]; then
exit 1
fi
echo "Model Version ID: $mv_id"

RAW_ML_MODEL_URI='https://huggingface.co/tarilabs/mnist/resolve/v1.nb20231206162408/mnist.onnx'
ma_id=$(make_post_extract_id "$MR_HOSTNAME/api/model_registry/v1alpha1/model_versions/$mv_id/artifacts" '{
"description": "lorem ipsum model artifact",
"uri": "'"$RAW_ML_MODEL_URI"'",
"name": "mnist",
"modelFormatName": "onnx",
"modelFormatVersion": "1",
"storageKey": "aws-connection-unused",
"storagePath": "unused just demo",
"artifactType": "model-artifact"
}')

if [ $? -ne 0 ]; then
exit 1
fi
echo "Model Artifact ID: $ma_id"

ISVC_TARGET_NS=odh-project-b
MODEL_SERVER_NAME=modelserverb

oc apply -n $ISVC_TARGET_NS -f - <<EOF
apiVersion: "serving.kserve.io/v1beta1"
kind: "InferenceService"
metadata:
name: "$rm_name"
annotations:
"openshift.io/display-name": "$rm_name"
"serving.kserve.io/deploymentMode": "ModelMesh"
labels:
"mr-registered-model-id": "$rm_id"
"mr-model-version-id": "$mv_id"
"mr-namespace": "$MR_NAMESPACE"
"opendatahub.io/dashboard": "true"
spec:
predictor:
model:
modelFormat:
name: "onnx"
version: "1"
runtime: "$MODEL_SERVER_NAME"
storageUri: "$RAW_ML_MODEL_URI"
EOF

# TODO this will continue once we have MC PR merged from: https://github.com/opendatahub-io/odh-model-controller/pull/135
iss_mr=$(curl -s -X 'GET' "$MR_HOSTNAME/api/model_registry/v1alpha1/inference_services" \
-H 'accept: application/json')

echo "InferenceService entities on MR:"
echo "$iss_mr"

0 comments on commit fc332c1

Please sign in to comment.