Skip to main content

IOC Builder for EPICS and Kubernetes

Project description

Code CI Docs CI Test Coverage Latest PyPI version Apache License

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

https://github.com/epics-containers/ibek

Documentation

https://epics-containers.github.io/ibek

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

This version

0.3

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ibek-0.3.tar.gz (12.1 kB view hashes)

Uploaded Source

Built Distribution

ibek-0.3-py3-none-any.whl (16.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page