Skip to main content

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)

Source distribution for mlflow-triton-control 0.4.1
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)

Table of built distributions (wheels) for mlflow-triton-control 0.4.1
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

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