skillfed

epik8s-tools

A set of tools for generating Kubernetes Helm charts for EPICS-based systems.

epik8s-tools v0.16.4 126.6K downloads/30d#11,773 on PyPI0
Permissive license Active released

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-tools

uv

uv add epik8s-tools

poetry

poetry add epik8s-tools

Installing 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

License :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3

Tags

kubernetes helm chart generationepics deployment automationyaml template rendering clibeamline configuration managementioc kubernetes deploymentphoebus opi panel generationepics control system deployment
kubernetes-deploymentepics-control-systemshelm-automation

More Build Tools packages