This public endpoint /:modelId/:modelVersionId/exportImageForNvidia
is used to export a Domino Model in a format that can be deployed by NVIDIA Fleet Command.
For a model to be deployed by NVIDIA Fleet Command to edge devices, you must have:
- Container image
-
This image is pushed to the NVIDIA FLeetcommand.
- Helm chart
-
This runs the container image.
This endpoint creates and pushes these two artifacts to private NVIDIA NGC repositories.
Exporting image endpoint
curl =
--location --request POST 'https://<deployment>/v4/models/<model-id>/<model-version-id>/exportImageForNvidia' \
--header 'Content-Type: application/json' \
--header 'X-Domino-Api-Key: <domino-api-key>' \
--data-raw '{
"containerRepository": "<path-to-container-repo>",
"tag": "<image-tag>",
"helmRepository": "<path-to-helm-repo>",
"helmVersion": "<version>",
"ngcApiKey": "<ngc-api-key>"
}'
Parameters
- model-id
-
Id identifying the model.
- model-version-id
-
Id identifying the model version.
- containerRepository
-
Repository name for a private container repository in NVIDIA NGC. For example,
<organization-name>/<team-name>/<container-repository-name>
. The user can provide a container repository that already exists in NVIDIA NGC. Container repository names can have:-
Alphanumeric characters
-
Lowercase characters
-
Dashes and slashes (for organization and team names)
-
No spaces.
-
- tag
-
Tag for the container. tag must be alphanumeric and can also contain underscores, periods and dashes.
- helmRepository
-
Repository name for a private helm repository in NVIDIA NGC. For example,
<organization-name>/<team-name>/<container-repository-name>
. The user can provide a helm repository that already exists in NVIDIA NGC. Helm repository names can have:-
Alphanumeric characters
-
Lowercase characters
-
Dashes and slashes (for organization and team names)
-
No spaces
-
- helmVersion
-
Version of the helm chart. Helm versions must be in Semver format.
- ngcApiKey
-
NVIDIA NGC API key. See generate an NVIDIA NGC API Key.
API endpoint notes
-
The port for the endpoint on the edge device is hard coded to 30008. This means if you deploy two Domino Models on the same edge device, the second application deployed will fail. You can prevent this by overriding the port in the values.yaml in the NVIDIA Fleet Command UI.
-
The model cannot use anything Domino specific like predictive sets, or domino data sets.
-
The model must be built in Domino first and there must be a version of the model.
-
If you export a model with an image tag or helm chart version number that already exists the export will fail.
-
You cannot deploy different versions of the same Nvidia Application to the same edge device. If you want to deploy multiple Domino models on a single edge device you must override the port when you create a Deployment in Nvidia Fleet Command.
For example:
service:
nodePort: 30010
Get status endpoint
Using the export-id
you get from the previously mentioned endpoint, you can monitor the status of the export. Enter this curl command, with the following endpoint to get the status:
curl --include \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--header 'X-Domino-Api-Key: <domino-api-key>' \
'https://<deployment>/v4/models/<export-id>/getExportImageStatus'