Skip to main content

Turn any Kubernetes cluster into a private serverless platform (Cloud Run / Functions / Tasks).

Project description

 _____ _       _
| ____| |_ __ (_) ___
|  _| | | '_ \| |/ _ \
| |___| | |_) | | (_) |
|_____|_| .__/|_|\___/
        |_|

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), and ElpioTenant (namespace, RBAC, quotas, network isolation). Alongside them: OIDC auth, an admission webhook, a multi-cluster management API, a Helm chart, and CI. CRs emit status.conditions, so the sibling agent Spero can supervise and heal them. The kind-based e2e harness is wired and gated behind ELPIO_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

Code: MIT. Docs & branding: CC-BY-4.0.

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

elpio-0.1.0.tar.gz (161.9 kB view details)

Uploaded Source

Built Distribution

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

elpio-0.1.0-py3-none-any.whl (52.5 kB view details)

Uploaded Python 3

File details

Details for the file elpio-0.1.0.tar.gz.

File metadata

  • Download URL: elpio-0.1.0.tar.gz
  • Upload date:
  • Size: 161.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for elpio-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6e896f63358f35377b35e2aed7125907c16f56dd2a71238d98c75486447a0649
MD5 f547a262903148ffaec21fb1eded5ed0
BLAKE2b-256 9b046b37336251ba48a41eb65e5111d9e14150304131a6a8b388e170f4345b97

See more details on using hashes here.

Provenance

The following attestation bundles were made for elpio-0.1.0.tar.gz:

Publisher: release.yml on altikva/elpio

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

File details

Details for the file elpio-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: elpio-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 52.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for elpio-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0deda63464795c0dbf974cfe6093006b6aea56f825c56093c5a35e0c532d5816
MD5 5d392b0a5a2195e25ae3660ae5aae76e
BLAKE2b-256 ff958e6e8185dda100ccd055ad00554d59b729828f21016c8d868d6109a140ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for elpio-0.1.0-py3-none-any.whl:

Publisher: release.yml on altikva/elpio

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