From b849430de2498472dfcf63440a8054df2408872d Mon Sep 17 00:00:00 2001 From: Giles Knap Date: Wed, 24 Jan 2024 09:01:55 +0000 Subject: [PATCH] add PVA to bl47p-ea-dcam-01 for demo --- demo.md | 84 +++++++++++++++++++ .../config/bl47p-ea-dcam-01.yaml | 7 ++ 2 files changed, 91 insertions(+) create mode 100644 demo.md diff --git a/demo.md b/demo.md new file mode 100644 index 0000000..0323e6c --- /dev/null +++ b/demo.md @@ -0,0 +1,84 @@ +Setup +===== + +- Use a linux desktop on the controls dev network. +- log into the K8S dashboard at https://pollux-dashboard.diamond.ac.uk +- open pods in namespace p47-iocs +- make sure there are 4 iocs and a opi pod running +- clone the bl47p repo git@github.com:epics-containers/bl47p.git +- have a terminal open with + - source /dls_sw/work/python3/ec-venv/bin/activate + - cd bl47p + - source environment.sh +- get the P47 edm gui up with **super** p47 +- make sure bl47p-ea-dcam-01 is deployed with a beta tag and that the PVA plugin is missing. When you deploy a tagged version - make sure it is 2024.1.5 which also has PVA missing + + +Intro +===== + +So, a few of us have been working on containersing EPICS IOCS and managing them +in Kubernetes for a while. Today I'm going to show you what working with your +beamline IOCs might look like in this new world. + +Instead of just diving into technical detail, I'm going to do a live demo and +then show you where you can find all the documentation to get more info. + +We will be looking at the training rig beamline P47. +This beamline is running all its IOCs in Kubernetes, it has two +motors, two GigE cameras and a Panda Box. + + +Steps +===== + +- ec --help +- ec ioc --help +- ec ps +- **you can learn about the underlying commands that ec is using with -v** +- ec -v ps +- **which beamline am I talking to?** +- ec env +- **show the iocs in the repo* +- ec ioc list +- **oh no we have a beta dcam-01 !** +- ec ioc instances bl47p-ea-dcam-01 + - **show tab completion for above** +- ec ioc deploy bl47p-ea-dcam-01 2024.1.5 + - **show tab completion for above** +- **show the pods in kubernetes** +- **try to demo PVA viewwe but the plugin is missing from the IOC !** +- **show that the two cams are the same image - show their config maps** +- **edit iocs/bl47p-ea-dcam-01/config/bl47p-ea-dcam-01.yaml on the fly and add PVA plugin - showing schema auto completion** +- **also describe the beamline repo as you go** +- ec deploy-local iocs/bl47p-ea-dcam-01 +- c2dv --pv BL47P-EA-DET-01:TX:PVA & + - **show the image and some movement** +- **now we have a working version we should release it** +- git add . +- git commit -m'fixed PVA in dcam 01' +- git push +- git tag +- git tag 2024.1.next-number +- ec ioc deploy bl47p-ea-dcam-01 2024.1.next-number +- **show that PVA is there in this version** +- **show that Dashboard is registering the new version** +- **note that no code changes or recompilation happened to make this work** + +Now show the Panda GUI +====================== + +Show the service and the bob files. +Keep the sample cam running + +- phoebus.sh -resource http://172.23.168.180/bl47p-ea-panda-01/index.bob +- Go to TTLOUT2 and set it to ZERO to "close" the "Shutter" +- See the light go out on the Sample Cam + +Documentation +============= + +To find out more google "epics containers". Choose the documentation link. +For a quick overview of more detail see the Oxfordshire epics meeting presentation +linked in Materials. +For loads of detail head over to the Tutorials pages. diff --git a/iocs/bl47p-ea-dcam-01/config/bl47p-ea-dcam-01.yaml b/iocs/bl47p-ea-dcam-01/config/bl47p-ea-dcam-01.yaml index 019e645..f44bdef 100644 --- a/iocs/bl47p-ea-dcam-01/config/bl47p-ea-dcam-01.yaml +++ b/iocs/bl47p-ea-dcam-01/config/bl47p-ea-dcam-01.yaml @@ -18,6 +18,13 @@ entities: PORT: DET.CAM R: ":DET:" + - type: ADCore.NDPvaPlugin + NDARRAY_PORT: DET.CAM + P: BL47P-EA-DET-01 + PORT: DET.PVA + R: ":TX:" + PVNAME: BL47P-EA-DET-01:TX:PVA + - type: ADCore.NDPosPlugin NDARRAY_PORT: DET.CAM P: BL47P-EA-DET-01