Skip to content

Commit

Permalink
deploy: 55ae4f2
Browse files Browse the repository at this point in the history
  • Loading branch information
gilesknap committed Dec 18, 2023
1 parent 3ef8749 commit ef7989e
Show file tree
Hide file tree
Showing 80 changed files with 242 additions and 236 deletions.
2 changes: 1 addition & 1 deletion tidy-devcontainer-rst/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: b5de77cbbacde534d45e750da8204eef
config: 42d1a75fbd70c9ef97a91dbaa99cd44c
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file modified tidy-devcontainer-rst/.doctrees/environment.pickle
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified tidy-devcontainer-rst/.doctrees/user/reference/faq.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified tidy-devcontainer-rst/.doctrees/user/tutorials/generic_ioc.doctree
Binary file not shown.
Binary file modified tidy-devcontainer-rst/.doctrees/user/tutorials/ibek.doctree
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ implementing these features:
- View the current log
- View historical logs (via graylog or other centralized logging system)
- Connect to an IOC and interact with its shell
- debug an ioc by starting a bash shell inside it's container
- debug an IOC by starting a bash shell inside it's container


Kubernetes Alternative
Expand Down Expand Up @@ -243,7 +243,7 @@ There are these types of CI:
or other OCI registry

:beamline definition source:
- prepares a helm chart from each ioc instance definition
- prepares a helm chart from each IOC instance definition
- tests that the helm chart is deployable (but does not deploy it)
- locally launches each IOC instance and loads its configuration to
verify that the configuration is valid (no system tests because this
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ Optional Variables
- **EC_LOG_URL**: if you have a centralized logging service with a web UI then
you can set this variable to the URL of the web UI. This will then be
displayed when the command ``ec ioc log-history <ioc-name>`` is run. The
ioc name is added to the URL using ``{ioc-name}`` as a placeholder e.g.
IOC name is added to the URL using ``{ioc-name}`` as a placeholder e.g.

- ``EC_LOG_URL='https://graylog2.diamond.ac.uk/search?rangetype=relative&fields``
``=message%2Csource&width=1489&highlightMessage=&relative=172800&q=pod_name%3A``
Expand Down
2 changes: 1 addition & 1 deletion tidy-devcontainer-rst/_sources/user/reference/faq.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ engineering screens. TODO: more details will be added to a new section.
Why have ioc-XXX repositories?
------------------------------
Why not put the Dockerfile and image generating in the support module itself
instead of creating a separate Generic ioc module for each image we
instead of creating a separate Generic IOC module for each image we
generate?

Answers:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ You will also need to setup ssh keys to authenticate to github from git. See
Create a New Repository
-----------------------

Here we will copy the beamline template repository and change it's name to bl01t.
Here we will copy the beamline template repository and change its name to bl01t.
We will then step through the changes that are required to make it your own.

NOTE: for these tutorials we will use your personal GitHub Account to
Expand Down Expand Up @@ -104,7 +104,7 @@ Steps

#. edit ``environment.sh``

#. change the name of the example ioc from ``iocs/blxxi-ea-ioc-01`` to
#. change the name of the example IOC from ``iocs/blxxi-ea-ioc-01`` to
``iocs/bl01t-ea-ioc-01``

#. change the beamline name in the two bash scripts in the ``services``
Expand All @@ -118,7 +118,7 @@ Environment.sh
~~~~~~~~~~~~~~

Environment.sh is a bash script that is sourced by a beamline user or developer
in order to setup their environment to work with the beamline.
in order to set up their environment to work with the beamline.

The command line tool ``ec`` uses the environment configured by this script
to determine where to deploy IOCS and where to find container images etc.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ Viewing IOC output
~~~~~~~~~~~~~~~~~~

Our detector output is available over PVAccess since we added the PVA plugin.
We can view it using the ``c2dv`` tool. Theses commands will install ``c2dv``
We can view it using the ``c2dv`` tool. These commands will install ``c2dv``
and launch it to view the IOC output:

.. code-block:: bash
Expand Down Expand Up @@ -392,7 +392,7 @@ docker if that is what you are using):
Your IOC Instance will now be using the raw startup script and database. But
should behave exactly the same as before. You are free to experiment with
changes in the startup script and substitution file and re-deploy the IOC.
changes in the startup script and substitution file and re-deploy the IOC.

.. note::

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Debugging Generic IOC Builds
This tutorial is out of date and will be updated soon.

This tutorial is a continuation of `generic_ioc`. Here we will look into
debugging failed builds and fix the issue we saw in the previous tutorial.
debugging failed builds and fix the issue we saw in the previous tutorial.

This also comes under the category of type 2. change from the list
at `ioc_change_types`.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ where indicated):
source bl01t
Once you have done this and logged out and back in again to pick up your new
profile you should be able enable the ``bl01t`` environment as follows:
profile you should be able to enable the ``bl01t`` environment as follows:

.. code-block:: bash
Expand Down Expand Up @@ -97,7 +97,7 @@ IOC Instance.

The following command will deploy the example IOC instance to your local
machine (unless you have skipped ahead and set up your Kubernetes config
in which case the same command will deploy to your Kubernetes cluster).
in which case the same command will deploy to your Kubernetes cluster).

.. code-block:: bash
Expand Down Expand Up @@ -158,7 +158,7 @@ Managing the Example IOC Instance
Starting and Stopping IOCs
~~~~~~~~~~~~~~~~~~~~~~~~~~

To stop / start the example IOC try the following commands. Note that
To stop / start the example IOC try the following commands. Note that
``ec ps -a`` shows you all IOCs including stopped ones.

.. code-block:: bash
Expand All @@ -183,7 +183,7 @@ To stop / start the example IOC try the following commands. Note that
Monitoring and interacting with an IOC shell
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

To attach to the ioc shell you can use the following command. HOWEVER, this
To attach to the IOC shell you can use the following command. HOWEVER, this
will attach you to nothing in the case of this example IOC as it has no
shell. In the next tutorial we will use this command to interact with
iocShell.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ See ``/epics/ioc-adsimdetector/ioc/iocApp/src/Makefile``

You will note that the ``ioc`` folder is greyed out in the VSCode explorer. This
is because it is in ``.gitignore`` and it is purely generated code. If you
particularly needed to customize the contents of the ioc source tree then
particularly needed to customize the contents of the IOC source tree then
you can remove it from ``.gitignore`` and commit your changes to the repo. These
changes would then always get loaded for every instance of the Generic IOC.

Expand All @@ -219,11 +219,14 @@ Adding the Beamline to the Workspace
------------------------------------

To meaningfully test the Generic IOC we will need an instance to test it
against. We will use the ``bl01t`` beamline that you already made.
against. We will use the ``bl01t`` beamline that you already made. The container
has been configured to mount some useful local files from the user's home directory,
including the parent folder of the workspace as ``/repos`` so we can work on
multiple peer projects.

In VSCode click the ``File`` menu and select ``Add Folder to Workspace``.
Navigate to ``/repos`` and you will see all the peers of your ``ioc-adsimdetector``
folder (see `container-layout` below) . Choose the ``bl01t`` folder and add it to the
folder (see `container-layout` below). Choose the ``bl01t`` folder and add it to the
workspace - you may see an error but if so clicking "reload window" will
clear it.

Expand All @@ -236,8 +239,8 @@ Also take this opportunity to add the folder ``/epics`` to the workspace.
and git will complain about ownership. You can cancel out of these errors
as you should not edit project folders inside of ``/epics`` - they were
built by the container and should be considered immutable. We will learn
how to work on support modules in later tuorials. This error should only
be seen on first launch. podman users will have no such problem becuase they
how to work on support modules in later tutorials. This error should only
be seen on first launch. podman users will have no such problem because they
will be root inside the container and root build the container.

You can now easily browse around the ``/epics`` folder and see all the
Expand Down Expand Up @@ -271,11 +274,11 @@ host. i.e. the root folder under which your projects are all cloned):
- WS/ioc-adsimdetector/ioc
- soft link to IOC source tree

* - /epics/ibek
* - /epics/ibek-defs
- N/A
- All ibek *Support yaml* files

* - /epics/pvi
* - /epics/pvi-defs
- N/A
- all PVI definitions from support modules

Expand All @@ -296,7 +299,7 @@ Try the following:
cd /epics/ioc
rm -r config
ln -s /repos/bl02t/iocs/bl02t-ea-ioc-02/config .
ln -s /repos/bl01t/iocs/bl01t-ea-ioc-02/config .
# check the ln worked
ls -l config
./start.sh
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ test our changes locally before deploying it.
This is a type 2. change from the list at `ioc_change_types`.

The example IOC used ADSimDetector, we will make a similar IOC that uses
ADUrl to get images from a web cam.
ADUrl to get images from a webcam.

Create a New Generic IOC project
--------------------------------
Expand Down Expand Up @@ -49,7 +49,7 @@ using an ``ec`` command.
From the VSCode menus: File->Add Folder to Workspace
then select the folder ioc-adurl

#. Push the repo back to a the new repo on github
#. Push the repo back to a new repo on github

.. code-block:: bash
Expand Down
14 changes: 7 additions & 7 deletions tidy-devcontainer-rst/_sources/user/tutorials/ibek.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,20 +42,20 @@ ibek-support
can be found and how to build it.
- exists to avoid duplication of support module definitions in Generic IOCs
- and to avoid working on multiple support modules while kicking off epics-containers
- the ibek-support repo is added as a git-submodule to every Generic ioc
(ioc-xxx) repo and in this ensures that a rebuild of a Generic ioc will be
- the ibek-support repo is added as a git-submodule to every Generic IOC
(ioc-xxx) repo and in this ensures that a rebuild of a Generic IOC will be
with a consistent set of YAML files and install.sh files until a developer
explicitly updates the submodule.

How to work on ibek-support
---------------------------

Building a new Generic ioc and making it compatible with ibek means creating
Building a new Generic IOC and making it compatible with ibek means creating
ibek support YAML for all of its dependent support modules
(where they do not already exist)

These steps assume you have a Generic ioc for ADUrl based on ioc_template as discussed in `generic_ioc`.
Your Generic ioc has a default ioc instance used for testing.
These steps assume you have a Generic IOC for ADUrl based on ioc_template as discussed in `generic_ioc`.
Your Generic IOC has a default IOC instance used for testing.
In ioc/config/st.cmd we have a default startup script for the example IOC.
To work on ibek support we will remove this file and replace it with ``ioc.yaml``.
We already have a git submodule for ibek-defs which we used for accessing patch files
Expand All @@ -64,7 +64,7 @@ during build, this will also be used for creating and editing support yaml files
TODO: this will become a concrete example for walking through as a tutorial with ioc-adurl.

NOTE: these steps are for building and testing the example IOC that comes with
the Generic ioc template. This will break the system test and that would need
the Generic IOC template. This will break the system test and that would need
to be updated accordingly. To just work on ibek support files using an external
ioc instance YAML file see `../how-to/ibek-support` (I probably need to combine
these two pages into something coherent).
Expand All @@ -78,7 +78,7 @@ STEPS:
- cd ..
- add useful yaml definitions to ibek-defs/<a support module>/<a support module>.yaml
- add some entities that use those definitions to ioc/config/ioc.yaml
- TODO need to make dev launch mount ioc folder into the container - avoiding build step and giving us a tight inner dev loop
- TODO need to make dev launch mount IOC folder into the container - avoiding build step and giving us a tight inner dev loop
- (whereas dev ioc-launch mounts in the config of an IOC instance - MAYBE this is confusing or these commands need better names?)
- ec dev build
- ec dev launch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Make the following changes in your test IOC config folder

.. code-block:: text
record(ai, "BL02T-EA-IOC-01:TEST") {
record(ai, "BL01T-EA-IOC-02:TEST") {
field(DESC, "Test record")
field(DTYP, "Soft Channel")
field(SCAN, "Passive")
Expand Down Expand Up @@ -67,7 +67,7 @@ from another terminal (VSCode menus -> Terminal -> New Terminal) like so:

.. code-block:: bash
caget BL02T-EA-IOC-02:TEST
caget BL01T-EA-IOC-02:TEST
If you see the value 1 then your change is working.

Expand All @@ -87,7 +87,7 @@ If you see the value 1 then your change is working.

Because of the symlink between ``/epics/ioc/config`` and
``/repos/bl01t/iocs/bl01t-ea-ioc-02/config`` the same files you are testing
by launching the ioc inside of the devcontainer are also ready to be
by launching the IOC inside of the devcontainer are also ready to be
committed and pushed to the bl01t repo. i.e.:

.. code-block:: bash
Expand All @@ -101,7 +101,7 @@ committed and pushed to the bl01t repo. i.e.:
git tag 2023.11.2
git push origin 2023.11.2
# deploy the new version of the IOC to the local docker / podman instance
ec deploy bl01t-ea-ioc-02 2023.11.2
ec ioc deploy bl01t-ea-ioc-02 2023.11.2
The above steps were performed on a host terminal because we are using ``ec``.
However all of the steps except for the ``ec`` command could have been done
Expand All @@ -127,13 +127,13 @@ The schema is in turn defined by the set of support modules that were compiled
into the Generic IOC (ioc-adsimdetector). Each support module has an
``ibek`` *support YAML* file that contributes to the schema.

The *Support yaml* files are in the folder ``/epics/ibek`` inside of the
container. They were placed their during the compilation of the support
The *Support yaml* files are in the folder ``/epics/ibek-defs`` inside of the
container. They were placed there during the compilation of the support
modules at Generic IOC build time.

It can be instructive to look at these files to see what entities are available
to *IOC instances*. For example the global support yaml file
``/epics/ibek/epics.ibek.support.yaml`` contains the following:
``/epics/ibek-defs/epics.ibek.support.yaml`` contains the following:

.. code:: yaml
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Setup a Developer Workstation
=============================
Set up a Developer Workstation
==============================

This page will guide you through the steps to setup a developer workstation
This page will guide you through the steps to set up a developer workstation
in readiness for the remaining tutorials.
The tools you need to install are:

Expand Down Expand Up @@ -45,14 +45,14 @@ Setup VSCode

.. Note::

**DLS Users**: You can access VSCode with ``module load vscode``.
**DLS Users**: You can access VSCode with ``module load vscode``.

First download and install Visual Studio Code.

- `Download Visual Studio Code`_
- `Setup Visual Studio Code`_

VSCode has an huge library of extensions. The following list of extensions are
VSCode has a huge library of extensions. The following list of extensions are
useful for working with epics-containers. You will need to install the *Required*
extensions before proceeding to the next tutorial. See the links for instructions
on how to do this.
Expand Down Expand Up @@ -82,7 +82,7 @@ Setup Docker or Podman
**DLS Users**: RHEL 8 Workstations at DLS have podman 4.4.1 installed by default.
RHEL 7 Workstations are not supported.

Next install docker or podman as the your container platform. epics-containers
Next install docker or podman as your container platform. epics-containers
has been tested with podman 4.4.1 on RedHat 8, and Docker 24.0.5 on
for Ubuntu 22.04.

Expand Down Expand Up @@ -135,7 +135,7 @@ but you can choose any folder.
python -m pip install --upgrade pip
Note that each time you open a new shell you will need to activate the virtual
environment again. (Or place it's bin folder in your path permanently).
environment again. (Or place its bin folder in your path permanently).


.. _ec:
Expand Down
2 changes: 1 addition & 1 deletion tidy-devcontainer-rst/_static/documentation_options.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const DOCUMENTATION_OPTIONS = {
VERSION: '0.9.1.dev66+g991b511',
VERSION: '2023.11.2.dev17+g55ae4f2',
LANGUAGE: 'en',
COLLAPSE_INDEX: false,
BUILDER: 'html',
Expand Down
4 changes: 2 additions & 2 deletions tidy-devcontainer-rst/developer/explanations/decisions.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

<title>Architectural Decision Records &#8212; epics-containers.github.io 0.9.1.dev66+g991b511 documentation</title>
<title>Architectural Decision Records &#8212; epics-containers.github.io 2023.11.2.dev17+g55ae4f2 documentation</title>



Expand Down Expand Up @@ -38,7 +38,7 @@
<link rel="preload" as="script" href="../../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>

<script src="../../_static/documentation_options.js?v=cc5a4667"></script>
<script src="../../_static/documentation_options.js?v=6242d000"></script>
<script src="../../_static/doctools.js?v=888ff710"></script>
<script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../_static/clipboard.min.js?v=a7894cd8"></script>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

<title>1. Record architecture decisions &#8212; epics-containers.github.io 0.9.1.dev66+g991b511 documentation</title>
<title>1. Record architecture decisions &#8212; epics-containers.github.io 2023.11.2.dev17+g55ae4f2 documentation</title>



Expand Down Expand Up @@ -38,7 +38,7 @@
<link rel="preload" as="script" href="../../../_static/scripts/pydata-sphinx-theme.js?digest=5b4479735964841361fd" />
<script src="../../../_static/vendor/fontawesome/6.1.2/js/all.min.js?digest=5b4479735964841361fd"></script>

<script src="../../../_static/documentation_options.js?v=cc5a4667"></script>
<script src="../../../_static/documentation_options.js?v=6242d000"></script>
<script src="../../../_static/doctools.js?v=888ff710"></script>
<script src="../../../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../../../_static/clipboard.min.js?v=a7894cd8"></script>
Expand Down
Loading

0 comments on commit ef7989e

Please sign in to comment.