Skip to main content

IOC Builder for EPICS and Kubernetes

Project description

Code CI Docs CI Test Coverage Latest PyPI version black Apache License

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

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

Documentation

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

Releases

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

The documentation is still under construction. For the moment the best pages to read are the following:

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

ibek-1.3.3.tar.gz (93.5 kB view details)

Uploaded Source

Built Distribution

ibek-1.3.3-py3-none-any.whl (43.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ibek-1.3.3.tar.gz
  • Upload date:
  • Size: 93.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for ibek-1.3.3.tar.gz
Algorithm Hash digest
SHA256 d13aade2492c807a789644065ee26019e475b5375de710a3fed841739e1f0aac
MD5 c28c7c3021ce2166ce5fe0fcd0b9d10c
BLAKE2b-256 a2321bac9f850fdf2a333b3373bc41cc593b85c91c4b485e9a43a653e69f3ffd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ibek-1.3.3-py3-none-any.whl
  • Upload date:
  • Size: 43.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for ibek-1.3.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6a7bd8a5f1be832873e04a29b986b25eecaabe4b361ed971b0e90329c01ac10a
MD5 c0ab016de9f4f3c7ec28b71dc8c67a64
BLAKE2b-256 6f3b87b35a4b028fd5bad41e017862d935dbfab12dca26fdb10fc19ba1639b06

See more details on using hashes here.

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