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 setting env var JOB_LOCAL=true or passing the parameter on object creation Runner(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.25.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

kubicle-0.1.25-py3-none-any.whl (15.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kubicle-0.1.25.tar.gz
  • Upload date:
  • Size: 11.9 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.25.tar.gz
Algorithm Hash digest
SHA256 7419c12df338bf8cdaf37115562a9a6fdfae1efe3fa8e73924b3f8956dfe5b0d
MD5 c3b1e5c844250177bc2e20df22ac61b3
BLAKE2b-256 077421d3f43d798ae9d176ce492d72ffceb4f315725a0e317ae967a937d8a9a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kubicle-0.1.25-py3-none-any.whl
  • Upload date:
  • Size: 15.1 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.25-py3-none-any.whl
Algorithm Hash digest
SHA256 0a08cfc5766ac9bd9fc5a7f2bec35735db646e5e78b92e7b88ef1ffd28001af5
MD5 bb33a03e1bf136c44a1745973dd2e7bf
BLAKE2b-256 4c3c0c2cf893d5838319eca80cf4f63d5339b95af5c80f5e379ac3d6b5ba6074

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