IOC Builder for EPICS and Kubernetes
Project description
This tool supports building container images for Generic EPICS IOCs and generating IOC Instances from those Generic IOCs at container runtime. It is targetted at running IOCs in Kubernetes, but the images it creates can execute in any container runtime, such as docker or podman.
PyPI
pip install ibek
Source code
Documentation
Releases
The documentation is still under construction. For the moment the best pages to read are the following:
Modules, Definitions and Entities A description of the basic concepts of ibek.
naming conventions in support YAML Conventions for the YAML that ibek consumes.
epics-containers documentation Documentation and tutorials for the epics-containers suite of tools.
The command line interface for ibek is as follows. The most up to date version of this can be found by running ibek --help.
Usage: ibek [OPTIONS] COMMAND [ARGS]...
IOC Builder for EPICS and Kubernetes
Provides support for building generic EPICS IOC container images and for running IOC instances
in a Kubernetes cluster.
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────╮
│ --version Print the version of ibek and exit │
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it or customize │
│ the installation. │
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────╮
│ support Commands for building support modules during container build │
│ ioc Commands for building generic IOCs during container build │
│ startup Commands for building IOC instance startup files at container runtime │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
Usage: ibek support [OPTIONS] COMMAND [ARGS]...
Commands for building support modules during container build
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────╮
│ apt-install Install debian packages into the container. If they have an http:// or │
│ https:// prefix then they will be downloaded and installed from file. │
│ git-clone clone a support module from a remote repository │
│ register prepare the configure RELEASE files to build a support module inside an │
│ epics-containers build │
│ add-libs declare the libraries for this support module for inclusion in IOC │
│ Makefile │
│ add-dbds declare the dbd files for this support module for inclusion in IOC │
│ Makefile │
│ add-release-macro add or replace a macro the global RELEASE file │
│ add-config-macro add or replace a macro in CONFIG_SITE.linux-x86_64.Common file │
│ add-to-config-site add some text to a support module's CONFIG_SITE file │
│ compile compile a support module after preparation with `ibek support register` │
│ etc. │
│ generate-links generate symlinks to the bob, pvi and support YAML for a compiled IOC │
│ generate-schema Produce JSON global schema for all <support_module>.ibek.support.yaml │
│ files │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
Usage: ibek ioc [OPTIONS] COMMAND [ARGS]...
Commands for building generic IOCs during container build
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────╮
│ generate-makefile get the dbd and lib files from all support modules and generate │
│ iocApp/src/Makefile from iocApp/src/Makefile.jinja │
│ compile Compile a generic IOC after support modules are registered and compiled │
│ build EXPERIMENTAL: Attempt to interpret the Dockerfile and run it's commands │
│ inside the devcontainer. For internal, incremental builds of the │
│ Dockerfile. │
│ generate-schema Create a json schema from a number of support_module.ibek.support.yaml │
│ files │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
Usage: ibek startup [OPTIONS] COMMAND [ARGS]...
Commands for building IOC instance startup files at container runtime
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────╮
│ --help Show this message and exit. │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────╮
│ generate Build a startup script for an IOC instance │
╰───────────────────────────────────────────────────────────────────────────────────────────────╯
See https://epics-containers.github.io/ibek for current documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ibek-1.3.0.tar.gz
.
File metadata
- Download URL: ibek-1.3.0.tar.gz
- Upload date:
- Size: 93.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28d0e91cf61ef21dc1f0c7c8ede8c489fcbc4205729459dbf2f67875cf08b33c |
|
MD5 | f1456b0a116688cf72e80c9113a90cf2 |
|
BLAKE2b-256 | c15ff4a7888dfe17cd2725d0a62900f2dc88c9ab97e19de4d8f52137a2a4bc1f |
File details
Details for the file ibek-1.3.0-py3-none-any.whl
.
File metadata
- Download URL: ibek-1.3.0-py3-none-any.whl
- Upload date:
- Size: 43.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 415e22882cf12c21a643599246788f95210eb2b4089f54684c76a55b3231be63 |
|
MD5 | 67ee8d6d052729a07420a749c13220da |
|
BLAKE2b-256 | b31d06a267a70d09a36cdd4a13eaeae2c9282c63c1e019047db2175dbc75528f |