Kubernetes-backed WorkspaceProvider implementation and Kubernetes authorization plugin for MLflow workspaces.
Project description
MLflow Kubernetes Plugins
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 3.10 workspace support. If you are new to MLflow workspaces, start with the official guide: https://mlflow.org/docs/latest/self-hosting/workspaces/getting-started/. It covers the core MLflow server requirements, how workspace context is set by clients, and the upstream workspace lifecycle model.
Components
| 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
Install from PyPI:
pip install mlflow-kubernetes-plugins
For local development:
pip install -e ".[dev]"
Quick Start
- 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-auth
Use --app-name kubernetes-auth only when you want request authorization enforced by Kubernetes RBAC.
Documentation
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
Development
Run the main local checks from the repository root:
pip install -e ".[dev]"
make generate-k8s
ruff check .
pytest
python -m build
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mlflow_kubernetes_plugins-1.1.1.tar.gz.
File metadata
- Download URL: mlflow_kubernetes_plugins-1.1.1.tar.gz
- Upload date:
- Size: 80.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f42b7d9f20f09a327a95013f7602edd13316c8d805a324d758646df79fb5bf3f
|
|
| MD5 |
ee812ec060810b058ea4d53c3d862d93
|
|
| BLAKE2b-256 |
0ab5f044e314e89b4ee8591a0072ccf12a37e1e239f8e95f62cea75a4d287b3d
|
Provenance
The following attestation bundles were made for mlflow_kubernetes_plugins-1.1.1.tar.gz:
Publisher:
publish.yml on opendatahub-io/mlflow-kubernetes-plugins
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mlflow_kubernetes_plugins-1.1.1.tar.gz -
Subject digest:
f42b7d9f20f09a327a95013f7602edd13316c8d805a324d758646df79fb5bf3f - Sigstore transparency entry: 1254960394
- Sigstore integration time:
-
Permalink:
opendatahub-io/mlflow-kubernetes-plugins@3d2360dc539e68ee6f614cb2cb12dd69c84a8df4 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/opendatahub-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3d2360dc539e68ee6f614cb2cb12dd69c84a8df4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file mlflow_kubernetes_plugins-1.1.1-py3-none-any.whl.
File metadata
- Download URL: mlflow_kubernetes_plugins-1.1.1-py3-none-any.whl
- Upload date:
- Size: 59.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e0bebfe88af3a18f3c17bf8e1b70c71c27fc23fd8bebeebd4901e14c7b5ebd5
|
|
| MD5 |
69cf5538dd048b4456e70a8551aa4ead
|
|
| BLAKE2b-256 |
e6df013bfade52347761fbfdbd43421c416a8f08d185744a19c734ee55a6f289
|
Provenance
The following attestation bundles were made for mlflow_kubernetes_plugins-1.1.1-py3-none-any.whl:
Publisher:
publish.yml on opendatahub-io/mlflow-kubernetes-plugins
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mlflow_kubernetes_plugins-1.1.1-py3-none-any.whl -
Subject digest:
9e0bebfe88af3a18f3c17bf8e1b70c71c27fc23fd8bebeebd4901e14c7b5ebd5 - Sigstore transparency entry: 1254960462
- Sigstore integration time:
-
Permalink:
opendatahub-io/mlflow-kubernetes-plugins@3d2360dc539e68ee6f614cb2cb12dd69c84a8df4 -
Branch / Tag:
refs/tags/v1.1.1 - Owner: https://github.com/opendatahub-io
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@3d2360dc539e68ee6f614cb2cb12dd69c84a8df4 -
Trigger Event:
push
-
Statement type: