epik8s-tools
A set of tools for generating Kubernetes Helm charts for EPICS-based systems.
What it is and what it does
epik8s-tools is a Python CLI toolset for automating the deployment of EPICS (Experimental Physics and Industrial Control System) applications to Kubernetes. It reads YAML beamline configurations and generates Helm charts, OPI (Operator Interface) panels for Phoebus, and project directory structures, eliminating manual boilerplate for complex control-system deployments. The package wraps template rendering (Jinja2, pyyaml) and integrates with phoebusgen and jnjrender to produce ready-to-deploy Kubernetes manifests and operator dashboards.
The toolset includes multiple CLI entry points: epik8s-tools for project generation, epik8s-opigen for OPI panel creation, epik8s-run for IOC execution, and epik8s-compose for Docker Compose single-node setups. It supports extensive configuration options for networking (CA/PVA gateway IPs, ingress classes), storage (NFS paths), and external services (ElasticSearch, MongoDB, Kafka). Operators can generate detailed per-IOC dashboards with live PV monitoring or simpler beamline-level launchers with embedded device controls.
Use it for:
- Generate standardized Kubernetes deployment manifests for a new EPICS beamline without manual Helm chart editing.
- Create OPI control panels automatically from beamline YAML, replacing manual Phoebus screen design.
- Set up a single-node Kubernetes cluster with Docker Compose for development or testing of EPICS IOC configurations.
- Configure gateway load balancers, NFS mounts, and ingress routing for multi-IOC beamline deployments.
- Generate per-IOC monitoring dashboards with live PV readback and setpoint widgets from runtime PV lists.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Automates project structure, Helm chart, and OPI panel generation for EPICS applications deployed to Kubernetes, with CLI-driven template rendering from YAML configurations.
Yes, if you are deploying EPICS applications to Kubernetes and want to reduce boilerplate for Helm charts and OPI panels. The package is actively maintained, has low install friction, and carries no known vulnerabilities. It is purpose-built for a specific domain (EPICS/Kubernetes); outside that context it has no utility. The permissive MIT license poses no restriction.
Install
epik8s-tools on PyPI
pip
pip install epik8s-toolsuv
uv add epik8s-toolspoetry
poetry add epik8s-toolsInstalling epik8s-tools
Before you install
Low friction: pure Python wheel with four runtime dependencies (pyyaml, Jinja2, phoebusgen, jnjrender). Active maintenance with recent commits; last release 122 days ago. Requires Python 3.10 or later.
License in practice
MIT license (permissive). You can use, modify, and distribute this package freely with minimal restrictions, provided you retain the license notice.
Quickstart
pip install epik8s-tools
epik8s-tools my_project --beamline MyBeamline --iocbaseip 10.96.0.0/12 --beamlinerepogit https://github.com/beamline/repo.git
Requires Python 3.10 or later. Intended for EPICS/Kubernetes environments; limited utility outside that domain.
Verify before relying
- Whether phoebusgen and jnjrender are widely available or niche dependencies that may complicate installation.
- Whether the package works with Kubernetes distributions other than microk8s, or if microk8s is a practical requirement.
- Real-world deployment success rate and community adoption beyond the INFN/EPICS research community.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — pyyaml, Jinja2, phoebusgen, jnjrender |
| Maintenance | actively maintained — 122 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 126,576/month — #11,773 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: epik8s_tools-0.16.4-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
flux-localflux-local provides CLI tools and a Python…
permissive · top 15,000 on PyPI
phoebusgenGenerates Phoebus Display Builder XML format…
copyleft · top 15,000 on PyPI
pyhelm3pyhelm3 is a Python library for…
permissive · top 15,000 on PyPI
ophyd-asyncophyd-async provides asynchronous hardware…
permissive · top 15,000 on PyPI
epicscorelibsProvides compiled EPICS Core libraries and…
unclear · top 15,000 on PyPI
ophydOphyd provides a Python abstraction layer for…
permissive · top 15,000 on PyPI
cdk8scdk8s is a framework for defining Kubernetes…
permissive · top 15,000 on PyPI
aws-cdk.asset-kubectl-v20Provides a Lambda Layer containing kubectl…
permissive · top 5,000 on PyPI
pulumi-kubernetesPulumi Kubernetes Resource Provider lets you…
permissive · top 5,000 on PyPI
aws-cdk.lambda-layer-kubectl-v35Provides a Lambda Layer packaging kubectl…
permissive · top 15,000 on PyPI