This repository provides the integration layer between MLflow and Kubeflow, making MLflow the first-class experiment tracking experience for the Kubeflow platform (KEP-897).
This repository packages two MLflow extensions for Kubernetes-backed deployments:
- a workspace provider that maps MLflow workspaces to Kubernetes namespaces
- an optional authorization plugin that enforces Kubernetes RBAC for MLflow requests
These plugins build on top of MLflow's workspace support. If you are new to MLflow workspaces, start with the official guide: https://mlflow.org/docs/latest/self-hosting/workspaces/getting-started/.
| Entry point | MLflow hook | Purpose |
|---|---|---|
kubernetes |
mlflow.workspace_provider |
Exposes Kubernetes namespaces as MLflow workspaces. |
kubernetes-auth |
mlflow.app |
Wraps the MLflow server with Kubernetes-based authorization checks. |
Install from PyPI:
pip install mlflow-kubernetes-pluginsFor local development:
pip install -e ".[dev]"- Enable MLflow workspaces on an MLflow server backed by a SQL store.
- Install this package into the same environment as the MLflow server.
- Configure the workspace provider and, if needed, the auth plugin.
export MLFLOW_K8S_WORKSPACE_LABEL_SELECTOR="mlflow-enabled=true"
export MLFLOW_K8S_DEFAULT_WORKSPACE="team-a"
mlflow server \
--backend-store-uri postgresql://user:pass@localhost/mlflow \
--default-artifact-root s3://mlflow-artifacts \
--enable-workspaces \
--workspace-store-uri "kubernetes://" \
--app-name kubernetes-authUse --app-name kubernetes-auth only when you want request authorization enforced by Kubernetes RBAC.
docs/index.md: docs indexdocs/workspace-provider.md: workspace provider behavior, configuration, and startupdocs/authorization-plugin.md: auth modes, headers, and request handlingdocs/kubernetes-rbac.md: RBAC requirements and example manifestsconfig/crd/bases/mlflow.kubeflow.org_mlflowconfigs.yaml: generatedMLflowConfigCRD manifest
See CONTRIBUTING.md for development setup, coding style, and testing instructions.