From ecae5faddc059e8cdf6d7870c70dfa8e2dc18550 Mon Sep 17 00:00:00 2001 From: bdattoma Date: Tue, 27 Feb 2024 13:22:45 +0100 Subject: [PATCH] finalize minio kw and test --- ods_ci/tests/Resources/CLI/Minio.resource | 47 ++++++++++++------- ods_ci/tests/Resources/Files/minio/minio.yaml | 12 ++--- ...del_serving_llm_tgis_object_storages.robot | 20 ++++---- 3 files changed, 45 insertions(+), 34 deletions(-) diff --git a/ods_ci/tests/Resources/CLI/Minio.resource b/ods_ci/tests/Resources/CLI/Minio.resource index f632b1756..143614f06 100644 --- a/ods_ci/tests/Resources/CLI/Minio.resource +++ b/ods_ci/tests/Resources/CLI/Minio.resource @@ -13,30 +13,41 @@ ${MINIO_SA_FILEPATH}= ${MINIO_RESOURCES_DIRPATH}/minio_serviceaccount.yaml *** Keywords *** Deploy MinIO [Arguments] ${minio_image}=quay.io/modh/ods-ci-minio-models:1.0 - ... ${namespace}=minio - # ${key} ${pw}= Generate Minio Random Credentials - ${key}= Set Variable user - ${pw}= Set Variable myfakepassword - Set Test Variable ${key} - Set Test Variable ${pw} - Set Test Variable ${url} ${minio_image} - Create File From Template ${MINIO_POD_FILEPATH} ${MINIO_RESOURCES_DIRPATH}/minio_filled.yaml - # Create File From Template ${MINIO_SECRET_FILEPATH} ${MINIO_RESOURCES_DIRPATH}/minio_secret_filled.yaml - ${rc}= Run And Return Rc oc new-project ${namespace} - ${rc} ${out}= Run And Return Rc And Output oc apply -f ${MINIO_RESOURCES_DIRPATH}/minio_filled.yaml -n ${namespace} - # Oc Apply kind=Pod src=${MINIO_RESOURCES_DIRPATH}/minio_filled.yaml namespace=${namespace} - # Oc Apply kind=Secret src=${MINIO_RESOURCES_DIRPATH}/minio_secret_filled.yaml namespace=${namespace} - # Oc Apply kind=ServiceAccount src=${MINIO_SA_FILEPATH} namespace=${namespace} - ${route}= Run And Return Rc And Output oc get route minio-route -n ${namespace} --template={{.spec.host}} + ... ${namespace}=minio ${podname}=ods-ci-minio + ... ${service_name}=ods-ci-minio-srv ${route_name}=ods-ci-minio-route + ${exists}= Run Keyword And Return Status + ... Check If Pod Exists namespace=${namespace} label_selector=app=minio status_only=${FALSE} + IF ${exists} + Log message=Minio pod with name ${podname} in ${namespace} NS already present. Re-using existing one. + ELSE + ${key} ${pw}= Generate Minio Random Credentials + Set Test Variable ${key} + Set Test Variable ${pw} + Set Test Variable ${podname} + Set Test Variable ${minio_image} + Set Test Variable ${service_name} + Set Test Variable ${route_name} + Create File From Template ${MINIO_POD_FILEPATH} ${MINIO_RESOURCES_DIRPATH}/minio_filled.yaml + ${rc}= Run And Return Rc oc new-project ${namespace} + ${rc} ${out}= Run And Return Rc And Output oc apply -f ${MINIO_RESOURCES_DIRPATH}/minio_filled.yaml -n ${namespace} + Wait For Pods To Be Ready label_selector=app=minio + ... namespace=${namespace} + END + ${rc} ${route}= Run And Return Rc And Output oc get route ${route_name} -n ${namespace} --template={{.spec.host}} + Should Be Equal As Integers ${rc} ${0} RETURN ${route} Generate Minio Random Credentials ${key}= Generate Random String chars=[NUMBERS][LETTERS] - ${pw}= Generate Random String chars=[NUMBERS][LETTERS] + ${pw}= Generate Random String chars=[NUMBERS][LETTERS] length=12 RETURN ${key} ${pw} Get Minio Credentials [Arguments] ${namespace} ${podname}=ods-ci-minio - ${key}= Set Variable user - ${pw}= Set Variable myfakepassword + ${rc} ${key}= Run And Return Rc And Output + ... oc get pod ${podname} -n ${namespace} -o jsonpath='{range .spec.containers[*].env[?(@.name=="MINIO_ACCESS_KEY")]}{@.value}{end}' # robocop: disable + Should Be Equal As Integers ${rc} ${0} + ${rc} ${pw}= Run And Return Rc And Output + ... oc get pod ${podname} -n ${namespace} -o jsonpath='{range .spec.containers[*].env[?(@.name=="MINIO_SECRET_KEY")]}{@.value}{end}' # robocop: disable + Should Be Equal As Integers ${rc} ${0} RETURN ${key} ${pw} \ No newline at end of file diff --git a/ods_ci/tests/Resources/Files/minio/minio.yaml b/ods_ci/tests/Resources/Files/minio/minio.yaml index b4896380f..b819f1823 100644 --- a/ods_ci/tests/Resources/Files/minio/minio.yaml +++ b/ods_ci/tests/Resources/Files/minio/minio.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: Service metadata: - name: minio-service + name: ${service_name} spec: ports: - name: minio-client-port @@ -14,14 +14,14 @@ spec: kind: Route apiVersion: route.openshift.io/v1 metadata: - name: minio-route + name: ${route_name} spec: to: kind: Service - name: minio-service + name: ${service_name} weight: 100 port: - targetPort: ui + targetPort: minio-client-port wildcardPolicy: None tls: termination: edge @@ -32,7 +32,7 @@ kind: Pod metadata: labels: app: minio - name: ods-ci-minio + name: ${podname} spec: containers: - args: @@ -43,6 +43,6 @@ spec: value: ${key} - name: MINIO_SECRET_KEY value: ${pw} - image: ${url} + image: ${minio_image} imagePullPolicy: Always name: minio \ No newline at end of file diff --git a/ods_ci/tests/Tests/400__ods_dashboard/420__model_serving/LLMs/422__model_serving_llm_tgis_object_storages.robot b/ods_ci/tests/Tests/400__ods_dashboard/420__model_serving/LLMs/422__model_serving_llm_tgis_object_storages.robot index 49d41edc2..426ee4c6d 100644 --- a/ods_ci/tests/Tests/400__ods_dashboard/420__model_serving/LLMs/422__model_serving_llm_tgis_object_storages.robot +++ b/ods_ci/tests/Tests/400__ods_dashboard/420__model_serving/LLMs/422__model_serving_llm_tgis_object_storages.robot @@ -23,13 +23,11 @@ Verify User Can Serve And Query A Model From Minio ... using Kserve and Caikit+TGIS runtime [Tags] Tier1 RHOAIENG-3490 ${minio_namespace}= Set Variable minio-models - Deploy MinIO namespace=${minio_namespace} - Wait For Pods To Be Ready label_selector=app=minio - ... namespace=${minio_namespace} + ${minio_endpoint}= Deploy MinIO namespace=${minio_namespace} ${key} ${pw}= Get Minio Credentials namespace=${minio_namespace} Set Project And Runtime runtime=${TGIS_RUNTIME_NAME} namespace=${TEST_NS}-minio ... access_key_id=${key} access_key=${pw} - ... endpoint=minio-service.${minio_namespace}.svc.cluster.local:9000 + ... endpoint=${minio_endpoint} ... verify_ssl=${FALSE} # temporary ${test_namespace}= Set Variable ${TEST_NS}-minio ${model_name}= Set Variable flan-t5-small-hf @@ -46,17 +44,19 @@ Verify User Can Serve And Query A Model From Minio Query Model Multiple Times model_name=${model_name} runtime=${TGIS_RUNTIME_NAME} ... inference_type=all-tokens n_times=1 ... namespace=${test_namespace} - # Query Model Multiple Times model_name=${model_name} runtime=${TGIS_RUNTIME_NAME} - # ... inference_type=streaming n_times=1 - # ... namespace=${test_namespace} validate_response=${FALSE} - # [Teardown] Clean Up Test Project test_ns=${test_namespace} - # ... isvc_names=${models_names} wait_prj_deletion=${FALSE} + Query Model Multiple Times model_name=${model_name} runtime=${TGIS_RUNTIME_NAME} + ... inference_type=streaming n_times=1 + ... namespace=${test_namespace} validate_response=${FALSE} + [Teardown] Run Keywords + ... Clean Up Test Project test_ns=${test_namespace} isvc_names=${models_names} wait_prj_deletion=${FALSE} + ... AND + ... Run And Return Rc oc delete project ${minio_namespace} *** Keywords *** Suite Setup [Documentation] Skip If Component Is Not Enabled kserve - # RHOSi Setup + RHOSi Setup Load Expected Responses Run git clone https://github.com/IBM/text-generation-inference/ \ No newline at end of file