diff --git a/doc/source/reference/upgrading.md b/doc/source/reference/upgrading.md index 8485bf87a6..c9e2585c26 100644 --- a/doc/source/reference/upgrading.md +++ b/doc/source/reference/upgrading.md @@ -27,6 +27,43 @@ For those wishing to use the deprecated Java engine service orchestrator see [th ### Upgrading process +### Wrapper compatibility table + +To verify if 1.1 Seldon Core is compatible with older s2i wrapper versions we conducted a simple test with a one-node model. +Model has been deployed both with REST and GRPC API with both new orchestrator and the deprecated Java engine. +Test verifies if model can successfully serve inference requests. + +**NOTE:** Full support of custom metrics and tags with new orchestrator is only available from Python wrapper version 0.19. +If you need to use older version of Python wrapper you can continue to use Java engine as described above until the next release. + + +| Language Wrapper | Version | API Type | New Orchestrator | Deprecated Java engine | Notes | +|------------------|---------------|----------|-------------------|------------------------|-----------------------------------------| +| Python | 0.19 | both | yes | yes | full support of custom metrics and tags | +| Python | 0.11 ... 0.18 | both | yes | yes | | +| Python | 0.10 | REST | no | yes | | +| Python | 0.10 | GRPC | yes | yes | | +| Python | < 0.10 | GRPC | ? | ? | | +| Java | 0.2 & 0.1 | REST | yes | yes | minor difference in request format | +| Java | 0.2 & 0.1 | GRPC | yes | yes | | + + +Example of request format difference with Java wrapper deployed with REST API: +1. Using new orchestrator: +```bash +curl -s -X POST \ + -d 'json={"data": {"names": ["a", "b"], "ndarray": [[1.0, 2.0]]}}' \ + localhost:8003/seldon/seldon/compat-rest-java-02-executor/api/v1.0/predictions +``` + +2. Using deprecated Java engine: +```bash +curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"data": {"names": ["a", "b"], "ndarray": [[1.0, 2.0]]}}' \ + localhost:8003/seldon/seldon/compat-rest-java-02-engine/api/v1.0/predictions +``` + + ## Upgrading to 0.5.2 from previous versions This version included significant improvements and features, including the addition of pre-packaged model servers, fixing several critical bugs. diff --git a/incubating/wrappers/s2i/compatibility-tests/Makefile b/incubating/wrappers/s2i/compatibility-tests/Makefile new file mode 100644 index 0000000000..d2502e78bf --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/Makefile @@ -0,0 +1,267 @@ +KIND_NAME ?= seldon +AMBASSADOR_PORT ?= 8003 + + +SELDON_CORE_DIR ?= ../../../.. + + + +images-rest: + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.19-SNAPSHOT compat-rest-model:0.19-SNAPSHOT + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.18 compat-rest-model:0.18 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.17-SNAPSHOT compat-rest-model:0.17 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.16 compat-rest-model:0.16 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.15 compat-rest-model:0.15 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.14 compat-rest-model:0.14 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.13 compat-rest-model:0.13 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.12 compat-rest-model:0.12 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.11 compat-rest-model:0.11 + s2i build -E environment_rest . seldonio/seldon-core-s2i-python3:0.10 compat-rest-model:0.10 + +images-grpc: + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.19-SNAPSHOT compat-grpc-model:0.19-SNAPSHOT + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.18 compat-grpc-model:0.18 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.17-SNAPSHOT compat-grpc-model:0.17 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.16 compat-grpc-model:0.16 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.15 compat-grpc-model:0.15 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.14 compat-grpc-model:0.14 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.13 compat-grpc-model:0.13 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.12 compat-grpc-model:0.12 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.11 compat-grpc-model:0.11 + s2i build -E environment_grpc . seldonio/seldon-core-s2i-python3:0.10 compat-grpc-model:0.10 + + +kind-load-images-rest: images-rest + kind load docker-image compat-rest-model:0.19-SNAPSHOT --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.18 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.17 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.16 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.15 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.14 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.13 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.12 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.11 --name ${KIND_NAME} + kind load docker-image compat-rest-model:0.10 --name ${KIND_NAME} + + +kind-load-images-grpc: images-grpc + kind load docker-image compat-grpc-model:0.19-SNAPSHOT --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.18 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.17 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.16 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.15 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.14 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.13 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.12 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.11 --name ${KIND_NAME} + kind load docker-image compat-grpc-model:0.10 --name ${KIND_NAME} + + + +images-java: + s2i build -E environment_rest ${SELDON_CORE_DIR}/incubating/wrappers/s2i/java/test/model-template-app seldonio/seldon-core-s2i-java-build:0.1 compat-rest-java:0.1 --runtime-image seldonio/seldon-core-s2i-java-runtime:0.1 + s2i build -E environment_rest ${SELDON_CORE_DIR}/incubating/wrappers/s2i/java/test/model-template-app seldonio/seldon-core-s2i-java-build:0.2 compat-rest-java:0.2 --runtime-image seldonio/seldon-core-s2i-java-runtime:0.2 + + s2i build -E environment_grpc ${SELDON_CORE_DIR}/incubating/wrappers/s2i/java/test/model-template-app seldonio/seldon-core-s2i-java-build:0.1 compat-grpc-java:0.1 --runtime-image seldonio/seldon-core-s2i-java-runtime:0.1 + s2i build -E environment_grpc ${SELDON_CORE_DIR}/incubating/wrappers/s2i/java/test/model-template-app seldonio/seldon-core-s2i-java-build:0.2 compat-grpc-java:0.2 --runtime-image seldonio/seldon-core-s2i-java-runtime:0.2 + +kind-load-images-java: images-java + kind load docker-image compat-rest-java:0.1 --name ${KIND_NAME} + kind load docker-image compat-rest-java:0.2 --name ${KIND_NAME} + kind load docker-image compat-grpc-java:0.1 --name ${KIND_NAME} + kind load docker-image compat-grpc-java:0.2 --name ${KIND_NAME} + + +deploy-rest: + kubectl apply -f deploy-rest.yaml + +deploy-grpc: + kubectl apply -f deploy-grpc.yaml + +deploy-java-rest: + kubectl apply -f deploy-java-rest.yaml + +deploy-java-grpc: + kubectl apply -f deploy-java-grpc.yaml + + + +remove-rest: + kubectl delete -f deploy-rest.yaml + +remove-grpc: + kubectl delete -f deploy-grpc.yaml + +remove-java-rest: + kubectl delete -f deploy-java-rest.yaml + +remove-java-grpc: + kubectl delete -f deploy-java-grpc.yaml + + + +request-rest: + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-019-snapshot-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-019-snapshot-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-018-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-018-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-017-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-017-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-016-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-016-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-015-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-015-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-014-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-014-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-013-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-013-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-012-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-012-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-011-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-011-engine/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-010-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"meta": {"tags": {"foo":"bar", "a": -1}}, "data": {"names": ["input"], "ndarray": ["data"]}}' \ + http://localhost:${AMBASSADOR_PORT}/seldon/seldon/compat-rest-model-010-engine/api/v1.0/predictions \ + | jq . + + +request-grpc: + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-019-snapshot-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-019-snapshot-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-018-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-018-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-017-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-017-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-016-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-016-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-015-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-015-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-014-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-014-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-013-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-013-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-012-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-012-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-011-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-011-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-010-executor -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl -d '{"data": {"names": ["get"], "ndarray": ["data"]}}' -rpc-header seldon:compat-grpc-model-010-engine -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 seldon.protos.Seldon/Predict | jq . + +request-java-rest: + curl -s -X POST \ + -d 'json={"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + localhost:8003/seldon/seldon/compat-rest-java-02-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + localhost:8003/seldon/seldon/compat-rest-java-02-engine/api/v1.0/predictions \ + | jq . + + curl -s -X POST \ + -d 'json={"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + localhost:8003/seldon/seldon/compat-rest-java-01-executor/api/v1.0/predictions \ + | jq . + curl -s -X POST -H 'Content-Type: application/json' \ + -d '{"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + localhost:8003/seldon/seldon/compat-rest-java-01-engine/api/v1.0/predictions \ + | jq . + +request-java-grpc: + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl \ + -d '{"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + -rpc-header seldon:compat-grpc-java-02-executor \ + -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 \ + seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl \ + -d '{"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + -rpc-header seldon:compat-grpc-java-02-engine \ + -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 \ + seldon.protos.Seldon/Predict | jq . + + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl \ + -d '{"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + -rpc-header seldon:compat-grpc-java-01-executor \ + -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 \ + seldon.protos.Seldon/Predict | jq . + cd ${SELDON_CORE_DIR}/executor/proto && grpcurl \ + -d '{"data":{"names":["a","b"],"ndarray":[[1.0,2.0]]}}' \ + -rpc-header seldon:compat-grpc-java-01-engine \ + -rpc-header namespace:seldon -plaintext -proto ./prediction.proto 0.0.0.0:8003 \ + seldon.protos.Seldon/Predict | jq . + + + +grep-test: + cat deploy-rest.yaml | grep "image:" + cat deploy-rest.yaml | grep "name: compat" + cat deploy-rest.yaml | grep "seldon.io/executor" + echo "\n\n" + cat deploy-grpc.yaml | grep "image:" + cat deploy-grpc.yaml | grep "name: compat" + cat deploy-grpc.yaml | grep "seldon.io/executor" + echo "\n\n" + cat deploy-java-rest.yaml | grep "image:" + cat deploy-java-rest.yaml | grep "name: compat" + cat deploy-java-rest.yaml | grep "seldon.io/executor" + echo "\n\n" + cat deploy-java-grpc.yaml | grep "image:" + cat deploy-java-grpc.yaml | grep "name: compat" + cat deploy-java-grpc.yaml | grep "seldon.io/executor" diff --git a/incubating/wrappers/s2i/compatibility-tests/Model.py b/incubating/wrappers/s2i/compatibility-tests/Model.py new file mode 100644 index 0000000000..bcd1568300 --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/Model.py @@ -0,0 +1,23 @@ +import logging +import os + + +class Model: + + def predict(self, features, names=[], meta=[]): + logging.info(f"My id is {id(self)}") + logging.info(f"OS pid is {os.getpid()}") + logging.info(f"model features: {features}") + logging.info(f"model names: {names}") + logging.info(f"model meta: {meta}") + return features.tolist() + + def tags(self): + return {"a": 1, "b": 2} + + def metrics(self): + return [ + {"type": "COUNTER", "key": "mycounter", "value": 1, "tags": {"mytag": "mytagvalue"}}, + {"type": "GAUGE", "key": "mygauge", "value": 100}, + {"type": "TIMER", "key": "mytimer", "value": 20.2}, + ] diff --git a/incubating/wrappers/s2i/compatibility-tests/deploy-grpc.yaml b/incubating/wrappers/s2i/compatibility-tests/deploy-grpc.yaml new file mode 100644 index 0000000000..a594ee61c4 --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/deploy-grpc.yaml @@ -0,0 +1,598 @@ +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-019-snapshot-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.19-SNAPSHOT + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-019-snapshot-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.19-SNAPSHOT + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-018-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.18 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-018-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.18 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-017-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.17 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-017-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.17 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-016-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.16 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-016-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.16 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-015-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.15 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-015-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.15 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-014-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.14 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-014-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.14 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-013-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.13 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-013-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.13 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-012-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.12 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-012-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.12 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-011-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.11 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-011-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.11 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-010-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.10 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-model-010-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-model:0.10 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 diff --git a/incubating/wrappers/s2i/compatibility-tests/deploy-java-grpc.yaml b/incubating/wrappers/s2i/compatibility-tests/deploy-java-grpc.yaml new file mode 100644 index 0000000000..f59db85908 --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/deploy-java-grpc.yaml @@ -0,0 +1,117 @@ + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-java-01-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-java:0.1 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-java-01-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-java:0.1 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-java-02-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-java:0.2 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-grpc-java-02-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-grpc-java:0.2 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: GRPC + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 diff --git a/incubating/wrappers/s2i/compatibility-tests/deploy-java-rest.yaml b/incubating/wrappers/s2i/compatibility-tests/deploy-java-rest.yaml new file mode 100644 index 0000000000..9b62860189 --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/deploy-java-rest.yaml @@ -0,0 +1,116 @@ +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-java-01-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-java:0.1 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-java-01-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-java:0.1 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-java-02-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-java:0.2 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-java-02-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-java:0.2 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 diff --git a/incubating/wrappers/s2i/compatibility-tests/deploy-rest.yaml b/incubating/wrappers/s2i/compatibility-tests/deploy-rest.yaml new file mode 100644 index 0000000000..648b3806f4 --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/deploy-rest.yaml @@ -0,0 +1,598 @@ +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-019-snapshot-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.19-SNAPSHOT + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-019-snapshot-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.19-SNAPSHOT + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-018-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.18 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-018-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.18 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-017-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.17 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-017-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.17 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-016-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.16 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-016-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.16 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-015-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.15 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-015-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.15 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-014-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.14 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-014-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.14 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-013-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.13 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-013-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.13 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-012-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.12 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-012-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.12 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-011-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.11 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-011-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.11 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 + + + +--- + + +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-010-executor +spec: + annotations: + seldon.io/executor: "true" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.10 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 +--- +apiVersion: machinelearning.seldon.io/v1 +kind: SeldonDeployment +metadata: + labels: + app: seldon + name: compat-rest-model-010-engine +spec: + annotations: + seldon.io/executor: "false" + name: test-spec + predictors: + - componentSpecs: + - spec: + containers: + - image: compat-rest-model:0.10 + imagePullPolicy: IfNotPresent + name: test-model + graph: + children: [] + endpoint: + type: REST + name: test-model + type: MODEL + labels: + version: v1 + name: test-graph + replicas: 1 diff --git a/incubating/wrappers/s2i/compatibility-tests/environment_grpc b/incubating/wrappers/s2i/compatibility-tests/environment_grpc new file mode 100644 index 0000000000..c5497c7bd5 --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/environment_grpc @@ -0,0 +1,4 @@ +MODEL_NAME=Model +API_TYPE=GRPC +SERVICE_TYPE=MODEL +PERSISTENCE=0 diff --git a/incubating/wrappers/s2i/compatibility-tests/environment_rest b/incubating/wrappers/s2i/compatibility-tests/environment_rest new file mode 100644 index 0000000000..4e5ffe6f2c --- /dev/null +++ b/incubating/wrappers/s2i/compatibility-tests/environment_rest @@ -0,0 +1,4 @@ +MODEL_NAME=Model +API_TYPE=REST +SERVICE_TYPE=MODEL +PERSISTENCE=0