Skip to main content

Background jobs on Kubernetes

Project description

Kubicle

Python background jobs on Kubernetes

-> No runtime dependencies, simply run Python functions on Kubernetes and get the results back.

Installation

pip install kubicle

Usage

Define a python function with inputs and an output that use pydantic BaseModel

from pydantic import BaseModel

class Foo(BaseModel):
    a: int
    b: str

class Bar(BaseModel):
    c: float
    d: bool


def call_me_remote(foo: Foo) -> Bar:
    ...

Run as a Kubernetes job

from kubicle import Runner

os.environ["JOB_IMG"] = "foo/bar:latest"

runner = Runner()

job = runner.run(call_me_remote, Foo(a=1, b="hello"))

Wait for the job to finish

from kubicle import JobStatus

while True:
    job.refresh()
    if job.status == JobStatus.FINISHED:
        break

Get the result

bar = Bar.model_validate_json(job.result)

Local

When in development it can be handy to run the job locally.

Do this by simply setting JOB_LOCAL=true and the job will execute using multiprocessing.

Backends

Job storage can be backed by:

  • Sqlite
  • Postgresql

Sqlite will be used by default. To use postgres simply configure the env vars:

DB_TYPE=postgres
DB_NAME=jobs
DB_HOST=localhost
DB_USER=postgres
DB_PASS=abc123

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

kubicle-0.1.2.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

kubicle-0.1.2-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file kubicle-0.1.2.tar.gz.

File metadata

  • Download URL: kubicle-0.1.2.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/23.4.0

File hashes

Hashes for kubicle-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f18d4567cf565e0a4581941defee85200bf43b9adc3fd510c9e6df483b400fae
MD5 164a880bb80a00c3e25ef99b64593a2d
BLAKE2b-256 2ed9c728f159c33eab1cf2275c62db4c8619dc12a894c48e30b54c107c317fa4

See more details on using hashes here.

File details

Details for the file kubicle-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: kubicle-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.4 Darwin/23.4.0

File hashes

Hashes for kubicle-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1171e2942d4d4bdf545eaa9b5e7dffac46baaf78549545282e5f3b966b084af9
MD5 f540934ce95e40333c26467ef31979a8
BLAKE2b-256 d87839be54e967d78f59852791b87c6d05bb9cbe211cd70ef1dc4e6d886e8286

See more details on using hashes here.

Supported by

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