IOC Builder for EPICS and Kubernetes
Project description
IOC Builder for EPICS and Kubernetes:
In an EPICS support module describe what entities an IOC using it can create, what arguments they take, and what database and st.cmd snippets it should generate in a builder.yaml file
Build support modules together in a container image and use ibek in the image to create a JSON schema of what an IOC using that image can contain
Write an ioc.yaml file against that schema listing instances of the entities with arguments
Use ibek to generate a startup script, database and Helm chart that runs up the IOC contained in the image with them
PyPI |
pip install ibek |
Source code |
|
Documentation |
|
Changelog |
https://github.com/epics-containers/ibek/blob/master/CHANGELOG.rst |
TODO
This project is incomplete. The following items are still to do:
Complete documentation in general
Break out Helm Chart generation and boot script generation into two separate commands:
build-helm will make a helm chart which just has the ioc instance yaml in its config folder. This is to be run outside of the container to make the helm chart
make-boot will generate an ioc.boot from an instance yaml and this will run inside the container at ioc startup and hence have access to all the needed <support>.ibek.yaml definition files.
this will require changes to start.sh to support converting yaml to ioc.boot but should also continue to support a native ioc.boot for non ibek users.
The CI will be responsible for making a schema file from all of the <support>.ibek.yaml definition files and publishing it as a repository artifact on github. This means that editors will be able to make use of the schema for preparing IOC instance entity files.
finally support for multiple support definition files is required at present the cli only takes a single support definition file. All these commands need to support multiple definition files for the whole container.
make-script
make-helm
ioc-schema
this will require an additional class to represent a container as a set of support modules.
Add a diagram and more details. Use draw.io for image, and save as SVG with source embed in it, save as something.draw.io.svg
See https://epics-containers.github.io/ibek for more detailed 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.