Skip to main content

mlflow-triton-control

MLflow deployment target for models that already exist in a Triton S3 model repository. Install this Python package in the environment running the MLflow CLI or Python API. Triton Control creates the Kubernetes deployment and resolves the selected user-owned S3 profile.

python -m build
python -m pip install dist/mlflow_triton_control-*.whl
mlflow deployments help -t triton-control

How MLflow finds the plugin

mlflow deployments create is a command provided by MLflow. This package registers the deployment target through its Python package metadata:

[project.entry-points."mlflow.deployments"]
triton-control = "mlflow_triton_control.deployment_client"

For --target triton-control://triton-control:8000, MLflow looks up the triton-control entry point among installed packages, loads this module, and calls TritonControlDeploymentClient.create_deployment(). That class inherits from MLflow's BaseDeploymentClient and sends the deployment request to the Triton Control API. MLflow reads entry-point metadata; it does not search through every package's source files. The package must be installed in the same Python environment as the mlflow CLI.

Log a Triton model in MLflow

Like NVIDIA's Triton MLflow plugin, this package provides a triton model flavor for a complete Triton model directory. The directory must contain at least one numbered version; config.pbtxt may be included at its root. The MLflow Model contains an MLmodel file with a triton flavor entry and a copy of the entire directory under model/.

from mlflow_triton_control import triton

model_info = triton.log_model(
    triton_model_path="/tmp/model-repository/iris_classifier",
    name="triton-model",
    registered_model_name="iris-serving",
)
print(model_info.registered_model_version)

triton.load_model("models:/iris-serving/1") downloads the registered model and returns the local Triton model directory. Omit registered_model_name to save a model without creating a Registry version. This API is in the plugin package, not in MLflow's mlflow.triton namespace.

The current deployment client still accepts an already-published s3:// Triton repository URI. Deploying directly from models:/... and copying that version to the selected S3 profile are separate planned changes. The current Iris workflow therefore continues to use the S3 URI.

Argo Workflows

Submit the workflow through Triton Control's authenticated Argo proxy. Mark the deployment template with these Workflow annotations:

metadata:
  name: train-iris
  annotations:
    triton-control.ai/mlflow-deploy-template: deploy
    triton-control.ai/mlflow-deployment-name: iris-classifier
    triton-control.ai/mlflow-s3-profile-name: workflow-training

The backend resolves the profile name and its linked Argo artifact repository for the submitting user. It sets spec.artifactRepositoryRef and injects TRITON_CONTROL_TOKEN, TRITON_CONTROL_S3_PROFILE_ID, and TRITON_CONTROL_S3_BUCKET into the named script or container template. Use the injected ID with -C s3_profile_id="$TRITON_CONTROL_S3_PROFILE_ID". The token is valid for 60 minutes and limited to the specified deployment and S3 profile. The Workflow receives a five-minute completion TTL unless it already defines one, and the Secret receives a Workflow owner reference for garbage collection.

The opted-in Workflow must have a fixed metadata.name and run in the Triton Control namespace. Direct submissions to Argo bypass this token injection.

Metadata

Release files for mlflow-triton-control 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mlflow-triton-control 0.2.0
File Size Uploaded Provenance
mlflow_triton_control-0.2.0.tar.gz 11.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mlflow-triton-control 0.2.0
File Interpreter ABI Platform
mlflow_triton_control-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 22.6 kB

Release files / mlflow_triton_control-0.2.0.tar.gz

Download URL mlflow_triton_control-0.2.0.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
b6a65172c1d2360bb96d4884387297aa928d69ba7bd6f86a03bb3182521e7928
BLAKE2b-256 checksum
How to use checksums
8f428d9458a50103a3b026a65234c3488d8e7a03b945558025e5f6783ee2f232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mlflow_triton_control-0.2.0-py3-none-any.whl

Download URL mlflow_triton_control-0.2.0-py3-none-any.whl
Size 11.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b9eadb831f6883e22fa95bbb5efbd6d6936b4030e0d6ee727f43d336fcb4c2c
BLAKE2b-256 checksum
How to use checksums
3e1a3dd3e687320aa36fc0e0bfb81fc09d949a3e9024d99642b2659300138179
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for mlflow-triton-control 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page