DiamondLightSource / DiamondLightSource/mx-bluesky

Run BlueAPI using PVCs instead of scratch

Open
#1,610 2 comments 0 reactions 1 assignee Claimed by @rtuck99 View on GitHub
dev experience Epic
Dominant language
Python
Stars
4
Forks
5
Avg merge
1d 30m
Merged PRs (30d)
2

Description

We'd like to run our turn on the BlueAPI setting which moves our plan and dodal repo to PVCs. With this, when we change versions of our mx-bluesky-blueapi image, the versions of mx-bluesky and dodal will also be moved to the matching versions (right now we have to manually checkout these repos in scratch after changing image version). It also means that we have the correct python environment when debugging live code.

Due to mysterious technical reasons, services which install the code onto PVCs instead of the filesystem can't be ran as `ixx-detector` or similar users. This means that any part of mx-bluesky which requires writing to the filesystem must be pulled out into separate services which are then run as `ixx-detector. For reading files we can use the config server from blueapi. Bits of file-writing code are:
- nexus file writing (done via callbacks + nexgen)
- taking snapshots (done via callbacks)
- Drawing grid overlays on OAV image

Current path to using PVCs with BlueAPI:
- Need to put callbacks into separate service. The service will install the code onto `/dls_sw` so that we can both run it as `ixx-detector` and edit live code
- Need to make another service for drawing overlays onto the OAV image. Perhaps this can can be a generic image writing service which says "send me an image and a path and I will write it to that path if I'm allowed"
- After these two things are done we can change the setting on our BlueAPI services

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.