mlflow-triton-control
Optional MLflow deployment integration for Triton Control. Installing this package
automatically installs the matching mlflow-triton core release.
pip install mlflow-triton-control
mlflow deployments help -t triton-control
For logging only, install the core package.
The Control integration requires a reachable Triton Control API, a user-bound
TRITON_CONTROL_TOKEN, an owned S3 profile, a published Triton model repository,
and a suitable Triton runtime image. Keep credentials out of model artifacts.
mlflow deployments create --target triton-control://localhost:8000 \
--name demo --model-uri s3://models/repository/demo \
--flavor triton -C s3_profile_id=7 -C image=your-triton-image
The existing client supports create, list, get and delete. It accepts concrete
s3:// model-directory URIs; it does not upload models:/ or runs:/ artifacts,
serve locally, update deployments or provide prediction. The current API adapter
uses HTTP; use it in the same trusted network as the Control service.
Compatibility
Existing imports such as from mlflow_triton_control import sklearn, triton still
work when this integration is installed. These are aliases to the core modules;
new applications should use from mlflow_triton import sklearn, triton.
The deployment class and triton-control:// target retain their existing names.
No model artifacts are rewritten by this split.
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.
The short hostname works when the client runs in the Service's namespace.
For another namespace, use triton-control://<service>.<namespace>.svc.cluster.local:8000,
for example triton-control://triton-control.blabla.svc.cluster.local:8000.
Use the actual Service name created by your Helm release.
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.
S3 deployment of logged models
The Triton flavor now stores data under model/<original-model-name>/ inside
the MLflow Model. Pass the concrete S3 URI of that subdirectory to the deployment
plugin, using an S3 profile that can read the artifact bucket. Resolve proxy
artifact locations against the managed server's S3 root; the deployment client
continues to accept only S3 URIs. Existing models using data: model remain
loadable.
See the shared release process.
Metadata
Release files for mlflow-triton-control 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mlflow_triton_control-0.4.1.tar.gz | 11.6 kB | With provenance | Details for mlflow_triton_control-0.4.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mlflow_triton_control-0.4.1-py3-none-any.whl | Python 3 | none | any | Details for mlflow_triton_control-0.4.1-py3-none-any.whl |
Total release size: 24.0 kB
Release files / mlflow_triton_control-0.4.1.tar.gz
| Download URL | mlflow_triton_control-0.4.1.tar.gz |
|---|---|
| Size | 11.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1f4c8e08578d83e0b89f900f20f268f9c29aed3ec082683aa059e963ceacffe0
|
|
BLAKE2b-256 checksum How to use checksums |
c65640ab87bc64140b57eabc582735d91a449e2995600f0fc6c7988580e92ad9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logRelease files / mlflow_triton_control-0.4.1-py3-none-any.whl
| Download URL | mlflow_triton_control-0.4.1-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5908561b15c8e70e31d778b179c51f1d3fb05a5b33be917331b74e87603cd2fe
|
|
BLAKE2b-256 checksum How to use checksums |
1d40a8623956a9ac5e30ae23c5251db28b9dbb84a6bf13d58d0c1e312849eeeb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logSecurity for mlflow-triton-control 0.4.1
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for mlflow_triton_control-0.4.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.
Transparency logA 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.