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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file ibek-0.3.tar.gz.

File metadata

  • Download URL: ibek-0.3.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ibek-0.3.tar.gz
Algorithm Hash digest
SHA256 c2687c593a506f3755358eeb0bf4d0efc8f3aa27891e5404801b6638e7dd547d
MD5 21de0d3b3290d63a942a4b55aaf8c6c2
BLAKE2b-256 1964b1e376b99b946564ef02533590deb8e11575b5e4d445720aaf0a1a9602cd

See more details on using hashes here.

File details

Details for the file ibek-0.3-py3-none-any.whl.

File metadata

  • Download URL: ibek-0.3-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.10

File hashes

Hashes for ibek-0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fc07638efddaefcc7f823c04877b276dfaef698fb05c73dffae980747fdd1ba4
MD5 c6b3dc3dd3c385f8c45b30c000c59cfb
BLAKE2b-256 5637c307c5848119967e4a7a16d6aee52e1b3bacd78e779da7199d0d44fedf5e

See more details on using hashes here.

Supported by

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