JACoW logo

Journals of Accelerator Conferences Website (JACoW)

JACoW is a publisher in Geneva, Switzerland that publishes the proceedings of accelerator conferences held around the world by an international collaboration of editors.

BiBTeX citation export for THBL04: Kubernetes for EPICS IOCs

  author       = {G. Knap and T.M. Cobb and Y. Moazzam and U.K. Pedersen and C.J. Reynolds},
  title        = {{Kubernetes for EPICS IOCs}},
  booktitle    = {Proc. ICALEPCS'21},
  pages        = {835--838},
  eid          = {THBL04},
  language     = {english},
  keywords     = {EPICS, network, controls, target, detector},
  venue        = {Shanghai, China},
  series       = {International Conference on Accelerator and Large Experimental Physics Control Systems},
  number       = {18},
  publisher    = {JACoW Publishing, Geneva, Switzerland},
  month        = {03},
  year         = {2022},
  issn         = {2226-0358},
  isbn         = {978-3-95450-221-9},
  doi          = {10.18429/JACoW-ICALEPCS2021-THBL04},
  url          = {https://jacow.org/icalepcs2021/papers/thbl04.pdf},
  abstract     = {{EPICS IOCs at Diamond Light Source are built, deployed, and managed by a set of in-house tools that were implemented 15 years ago. This paper will detail a proof of concept to demonstrate replacing these tools and processes with modern industry standards. IOCs are packaged in containers with their unique dependencies included. IOC images are generic, and a single image is required for all containers that control a given class of device. Configuration is provided to the container in the form of a start-up script only. The configuration allows the generic IOC image to bootstrap a container for a unique IOC instance. This approach keeps the number of images required to a minimum. Container orchestration for all beamlines in the facility is provided through a central Kubernetes cluster. The cluster has remote nodes that reside within each beamline network to host the IOCs for the local beamline. All source, images and individual IOC configurations are held in repositories. Build and deployment to the production registries is handled by continuous integration. Finally, a development container provides a portable development environment for maintaining and testing IOC code.}},