MLflow
Overview
MLflow is the de‑facto open‑source platform for logging experiments, tracking metrics, storing artifacts and registering models. The MLFlow Core app on Apolo gives you a production‑ready tracking server with:
A lightweight web UI
Flexible metadata backend — SQLite or Postgres
Built‑in artifact storage on Apolo Files
Optional HTTPS ingress secured by platform auth
For more information about MLFlow, please visit the main MLFlow app page.
Installing
MLFlow can be installed on Apolo either via the CLI or the Web Console. Below are the detailed instructions for installing MLFlow using Apolo CLI.
Installing via Apolo CLI
The CLI flow mirrors the UI fields but lets you automate everything.
# 1. place this in mlflow.yaml
template_name: "mlflow-core"
template_version: "v25.5.0"
input:
preset:
name: "cpu-small"
ingress_http:
auth: true # basic‑auth on
metadata_storage:
postgres_uri:
uri: "postgresql://mlflow:Pa55w0rd@postgres-svc:5432/mlflow"
artifact_store:
path: "storage:mlflow-artifacts"
# 2. deploy it
apolo app install -f mlflow.yaml \
--cluster <CLUSTER> --org <ORG> --project <PROJECT>
Explanation
preset.name=cpu-small
– 2 vCPU / 4 GiB (adjust as needed).postgres_uri.uri
– Points to an existing Postgres service; omit this block to fall back to SQLite.ingress_http.auth=true
– Adds basic‑auth to the public URL.
Inputs / Outputs (schema v1)
Inputs
JSON Path
Default
Description
preset.name
–
Resource preset.
ingress_http.auth
true
Basic‑auth on external URL.
metadata_storage.pvc_name
mlflow-sqlite-storage
For SQLite backend.
metadata_storage.postgres_uri.uri
null
Full Postgres DSN.
artifact_store.path
storage:mlflow-artifacts
Artifact bucket path.
Outputs (seen in Details ▸ Output)
Key
Purpose
external_web_app_url.*
Public UI & REST endpoint.
external_server_url.*
Tracking server URL for clients.
Usage
Use the CLI to set the MLFLOW_TRACKING_TOKEN
with the token from your session (only if you enabled platform auth)
export MLFLOW_TRACKING_TOKEN=$(apolo config show-token)
The only requirement is to expose MLFLOW_TRACKING_URI
and a basic‑auth header.
import mlflow
from mlflow.tracking import MlflowClient
TRACKING_URI = "https://apolo-taddeus-mlflow-core-d660e438.apps.apolo.us"
mlflow.set_tracking_uri(TRACKING_URI)
mlflow.set_registry_uri(TRACKING_URI) # optional
client = MlflowClient()
print("Current experiments:")
for exp in client.list_experiments():
print(exp.name)
References
MLflow Official Documentation – Comprehensive guides covering Tracking, Projects, Models, and Registry
MLflow GitHub Repository – Source code, issue tracker, and community discussions
Last updated
Was this helpful?