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.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.4.0
File Size Uploaded Provenance Actions
mlflow_triton_control-0.4.0.tar.gz 11.6 kB With provenance Details for mlflow_triton_control-0.4.0.tar.gz

Built distribution (wheel)

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

Total release size: 24.0 kB

Release files / mlflow_triton_control-0.4.0.tar.gz

Download URL mlflow_triton_control-0.4.0.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cf1c4343bb37f257662a0bab3d276a4a793ec5bb9c0608317a401a76cfe5bfa5
BLAKE2b-256 checksum
How to use checksums
96ea238fccb134ebbe0fc09dc4d043f1f0430bf8d73dc680aa67a70e9882d0ce
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.0-py3-none-any.whl

Download URL mlflow_triton_control-0.4.0-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5d479303b0ea6b600aa807c02e26558608af5a670b5722daa29e1d5cfd6a26b6
BLAKE2b-256 checksum
How to use checksums
eb1acf491adb99b4ef213c4e9d944cc7845a0c13c255c44d1ee9693e42472751
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.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.

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