Closed orfeas-k closed 9 months ago
Turns out this was the same error that was described in https://github.com/canonical/kserve-rocks/issues/11#issuecomment-1845145149 and https://github.com/canonical/rockcraft/issues/382#issue-1952074241. The error message error: unknown flag 'port'
was coming from the container's pebble
service since it received arguments it didn't recognise. That was happening because they were passed by the created SeldonDeployment pod (see part of its yaml below)
...
containers:
- args:
- --port=9500
- --rest_api_port=9000
- --model_name=classifier
- --model_base_path=/mnt/models
env:
...
This was fixed by using the entrypoint-service
field alognside with [ args ]
in the command field (see the change here). This way, arguments are passed to tensorflow-serving
instead of pebble
.
As we can see in the ROCKs integrate PR, the tests that use this server fail.
Debugging
What I 've observed until now
docker run
Both upstream image and ROCK have (approx) the same behaviour when doing
docker run
However, when charm uses the ROCK for the server and we apply the tf-serving or hpt CRs, those SeldonDeployments do not behave as expected. As a result, their tests time out since they cannot extract a prediction.
This port args is passed by the ROCK itself, which is how it is done in upstream too though
Looking at the seldon-core logs, I don't see anything that doesn't look expected but I 'm attaching those here for reference seldon-core container logs.txt. It logs the following reconciler errror, but after that, it seems to reconcile without errors.
Reproduce
configmap__predictor__tensorflow__tensorflow
) or directly in the charm's configmap (TENSORFLOW_SERVER.protocols.tensorflow fields)tox -e seldon-servers-integration -- --model testing -k tensorflow
ortox -e seldon-servers-integration -- --model testing -k tf-serving
Environment
Juju 3.1 Microk8s 1.26
Note
It looks like tests had passed in ROCKs repo and the ROCK was published because we hadn't configured the tests properly