Skip to main content

kubectl plugin for deploying marimo notebooks to Kubernetes

Project description

kubectl-marimo

Deploy marimo notebooks to Kubernetes.

Installation

# With uv (recommended)
uv tool install kubectl-marimo

# With uvx (no install)
uvx kubectl-marimo edit notebook.py

# With pip
pip install kubectl-marimo

Quick Start

# Edit a notebook interactively
kubectl marimo edit notebook.py

# Run as read-only app
kubectl marimo run notebook.py

# With cloud storage
kubectl marimo edit --source=cw://my-bucket/data notebook.py

# Sync changes back
kubectl marimo sync notebook.py

# Delete deployment
kubectl marimo delete notebook.py

# List active deployments
kubectl marimo status

Commands

edit

Create or edit notebooks in the cluster (interactive mode).

kubectl marimo edit [OPTIONS] [FILE]

Options:

  • -n, --namespace - Kubernetes namespace (default: "default")
  • --source - Data source URI (cw://, sshfs://, rsync://)
  • --dry-run - Print YAML without applying
  • -f, --force - Overwrite without prompting

Examples:

# Edit existing notebook
kubectl marimo edit notebook.py

# Edit with S3 data mounted
kubectl marimo edit --source=cw://bucket/data notebook.py

# Edit in staging namespace
kubectl marimo edit -n staging notebook.py

run

Run a notebook as a read-only application.

kubectl marimo run [OPTIONS] FILE

Options: Same as edit

Examples:

# Run notebook as app
kubectl marimo run dashboard.py

# Run with data source
kubectl marimo run --source=cw://bucket/reports dashboard.py

sync

Pull changes from pod back to local file.

kubectl marimo sync [OPTIONS] FILE

Options:

  • -n, --namespace - Kubernetes namespace
  • -f, --force - Overwrite local file without prompting

delete

Delete notebook deployment from cluster.

kubectl marimo delete [OPTIONS] FILE

Options:

  • -n, --namespace - Kubernetes namespace
  • --delete-pvc - Also delete PersistentVolumeClaim (PVC is preserved by default)
  • --no-sync - Delete without syncing changes back

status

List active notebook deployments.

kubectl marimo status [DIRECTORY]

Configuration

Configure deployments via frontmatter in your notebook.

Markdown (.md)

---
title: my-analysis
image: ghcr.io/marimo-team/marimo:latest
storage: 5Gi
env:
  DEBUG: "true"
  API_KEY:
    secret: my-secret
    key: api-key
mounts:
  - cw://my-bucket/data
---

Python (.py)

# /// script
# dependencies = ["marimo", "pandas"]
# ///
# [tool.marimo.k8s]
# image = "ghcr.io/marimo-team/marimo:latest"
# storage = "5Gi"
#
# [tool.marimo.k8s.env]
# DEBUG = "true"

Frontmatter Fields

Field Description Default
title Resource name filename
image Container image ghcr.io/marimo-team/marimo:latest
port Server port 2718
storage PVC size none (ephemeral)
auth Set to "none" to disable token auth
env Environment variables none
mounts Data source URIs none

Environment Variables

Inline values:

env:
  DEBUG: "true"
  LOG_LEVEL: "info"

From Kubernetes secrets:

env:
  API_KEY:
    secret: my-secret
    key: api-key
  DB_PASSWORD:
    secret: db-credentials
    key: password

Mount URIs

Scheme Description Example
cw:// CoreWeave Object Storage cw://bucket/path
sshfs:// SSH filesystem mount sshfs://user@host:/path
rsync:// Local directory sync rsync://./data:/notebooks

Local rsync:// URIs sync a directory to the pod via kubectl cp. Remote URIs (rsync://user@host:/path) create a sidecar for continuous sync.

Requirements

  • Kubernetes cluster with marimo-operator installed
  • kubectl configured to access the cluster

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

kubectl_marimo-0.2.5.tar.gz (65.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kubectl_marimo-0.2.5-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file kubectl_marimo-0.2.5.tar.gz.

File metadata

  • Download URL: kubectl_marimo-0.2.5.tar.gz
  • Upload date:
  • Size: 65.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kubectl_marimo-0.2.5.tar.gz
Algorithm Hash digest
SHA256 d2e8b308dc0774a3e1fb4169c9a43470815bd08cfe7277a62ba996409bb26efa
MD5 05eb662f8976b81be64a2321ba62ef86
BLAKE2b-256 b26f8824c6124b9444eca8c10aaa2548e476c3b0febc6a94e4a88458507f966b

See more details on using hashes here.

Provenance

The following attestation bundles were made for kubectl_marimo-0.2.5.tar.gz:

Publisher: publish-plugin.yml on marimo-team/marimo-operator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file kubectl_marimo-0.2.5-py3-none-any.whl.

File metadata

  • Download URL: kubectl_marimo-0.2.5-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for kubectl_marimo-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 6354d07013189955e33ea1250c3ecc34b940453a9e67a2a28c970ea3c0016c2d
MD5 50979f56c602c574d1bb1f4d9beac99b
BLAKE2b-256 141dd0cf89d21ebab9d71a533cce6aca96eb86a90fc217b2308b72ebcf02006f

See more details on using hashes here.

Provenance

The following attestation bundles were made for kubectl_marimo-0.2.5-py3-none-any.whl:

Publisher: publish-plugin.yml on marimo-team/marimo-operator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page