_____ _ _
| ____| |_ __ (_) ___
| _| | | '_ \| |/ _ \
| |___| | |_) | | (_) |
|_____|_| .__/|_|\___/
|_|
Turn any Kubernetes cluster into a private serverless platform.
Elpio is an installable, self-hosted Cloud Run / Cloud Functions / Cloud Tasks for your own Kubernetes — scale-to-zero, request-driven autoscaling, simplified cluster + node autoscaling, and a clean multi-tenant model. GKE-first, portable by design (EKS / AKS / k3s).
Elpio is an Altikva open-source product (MIT for code, CC-BY-4.0 for docs). The name is a coined mark rooted in Greek elpis ("hope") — part of the Altikva family lineage ha-tikva (Hebrew) → Spero (Latin) → Elpio.
Status: alpha (v0.1.0). All four reconcilers ship:
ElpioService(Knative/KEDA serving),ElpioFunction(Tekton + Buildpacks),ElpioTask(KEDA + broker), andElpioTenant(namespace, RBAC, quotas, network isolation). Alongside them: OIDC auth, an admission webhook, a multi-cluster management API, a Helm chart, and CI. CRs emitstatus.conditions, so the sibling agent Spero can supervise and heal them. The kind-based e2e harness is wired and gated behindELPIO_E2E=1.
Why
Elpio does not reimplement a serverless runtime. It's the opinionated, enterprise control plane that assembles proven CNCF primitives — Knative, KEDA, Tekton, cert-manager, Karpenter — behind a declarative CRD/operator model. Its value is the enterprise wrapper the public clouds don't give you: on-prem security integration, hard multi-tenancy, golden-path config, fleet management, and a one-command installer.
How it works
You declare an ElpioService; the operator reconciles it onto a serving engine. No SSH, no
imperative kubectl apply scripts — just Kubernetes-native reconciliation.
apiVersion: elpio.io/v1alpha1
kind: ElpioService
metadata:
name: hello
spec:
image: ghcr.io/knative/helloworld-go:latest
scaling: { minScale: 0, maxScale: 10, target: 100, metric: concurrency }
| CRD | Equivalent | Engine |
|---|---|---|
ElpioService |
Cloud Run | Knative Serving (default) or KEDA |
ElpioFunction |
Cloud Functions | Tekton + Buildpacks → ElpioService |
ElpioTask |
Cloud Tasks | KEDA + broker + dispatcher |
The serving engine is a strategy (ELPIO_ENGINE=knative|keda) behind one stable CRD —
Knative for the highest Cloud Run parity, KEDA for a lighter footprint.
Quickstart
pip install elpio # the elpio CLI
# point kubectl at any cluster (kind, minikube, GKE, EKS, ...) that has a
# serving engine installed — Knative Serving (default) or KEDA.
elpio install # applies the CRDs + operator
elpio deploy -f hello.yaml # the ElpioService shown above
elpio services
Working from a clone instead? task e2e-up provisions kind + Knative/KEDA, and
task operator-run runs the operator locally (kopf run -m elpio.operator.handlers).
Development
task dev # editable install + dev deps
task unit # unit tests (no cluster)
task lint # ruff
task e2e # end-to-end (needs a kind cluster + Knative/KEDA)
Layout
src/elpio/
models/ ElpioService spec (Pydantic mirror of the CRD)
engines/ serving-engine strategy: base + knative + keda
providers/ portability seams: StateStore, IdentityProvider
operator/ kopf reconciler
cli.py the `elpio` command
deploy/ CRDs + operator manifests (+ Helm)
docs/ architecture & guides
License
Metadata
Release files for elpio 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| elpio-0.1.0.tar.gz | 161.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| elpio-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 214.4 kB
Release files / elpio-0.1.0.tar.gz
| Download URL | elpio-0.1.0.tar.gz |
|---|---|
| Size | 161.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6e896f63358f35377b35e2aed7125907c16f56dd2a71238d98c75486447a0649
|
|
BLAKE2b-256 checksum How to use checksums |
9b046b37336251ba48a41eb65e5111d9e14150304131a6a8b388e170f4345b97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 6, 2026.
Transparency logRelease files / elpio-0.1.0-py3-none-any.whl
| Download URL | elpio-0.1.0-py3-none-any.whl |
|---|---|
| Size | 52.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0deda63464795c0dbf974cfe6093006b6aea56f825c56093c5a35e0c532d5816
|
|
BLAKE2b-256 checksum How to use checksums |
ff958e6e8185dda100ccd055ad00554d59b729828f21016c8d868d6109a140ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 6, 2026.
Transparency log