SKA Telescope Dish LMC
Dish LMC Software Overview
Dish LMC is the monitoring and control (M&C) system for the SKA MID Dish of the Square Kilometer Array (SKA).
It is built using Python and utilizes the Tango Controls toolkit. The system consists of three main components, namely:
Dish Manager (formerly known as DishMaster)
Dish Structure (DS) Manager
Dish Logger
To aid in testing we also have our own simulators.
SPF Controller Simulator and SPFRx Controller Simulator
Dish LMC Device context
The main entrypoint for TMC to control and monitor a dish is the DishManager device.
Repository layouts
Devices for full deployment
Devices for CI/CD
Additional deployments
Additional deployments can be found here: Deployments
Deployment
$ helm upgrade --install dev . -n ska-dish-lmc \
--set global.exposeDatabaseDS=true \
--set global.dishes="{001}" \
--set global.minikube=true \
--set global.operator=true \
--set ska-mid-dish-simulators.enabled=true \
--set ska-mid-dish-simulators.deviceServers.spfdevice.enabled=true \
--set ska-mid-dish-simulators.deviceServers.spfrxdevice.enabled=true \
--set ska-mid-dish-simulators.dsOpcuaSimulator.enabled=true \
ska-tango-base is not deployed by default, to deploy it add the –set below:
--set ska-tango-base.enabled=true
–set flag options
Option |
Description |
Example values |
---|---|---|
global.dishes |
Determine the number of sets of DISH.LMC devices. |
{001}, {001, 002} |
global.minikube |
Set to true when deploying to minikube |
true, false |
global.operator |
Set to true to use ska tango operator for k8s deployment |
true, false |
ska-mid-dish-manager.dishmanager.<device>.fqdn |
Full path |
tango://127.0.0.1:45678/foo/bar/1#dbase=no |
ska-mid-dish-manager.dishmanager.<device>.family_name |
The middle value in the tango triplet |
spf, spfrx |
ska-mid-dish-manager.dishmanager.<device>.member_name |
The last value in the tango triplet |
simulator, controller |
ska-mid-dish-simulators.enabled |
Enable or disable the device simulators chart in dish-simulators repository |
true, false |
ska-mid-dish-simulators.deviceServers.spfdevice.enabled |
Enable or disable the SPF device simulator |
true, false |
ska-mid-dish-simulators.deviceServers.spfrxdevice.enabled |
Enable or disable the SPFRx device simulator |
true, false |
ska-mid-dish-ds-manager.ska-mid-dish-simulators.enabled |
Enable or disable simulators chart in ds-manager repository |
true, false |
ska-mid-dish-ds-manager.ska-mid-dish-simulators.dsOpcuaSimulator.enabled |
Enable or disable the OPCUA server |
true, false |
ska-tango-base.enabled |
Enable or disable the ska-tango-base dependency |
true, false |
MID PSI Deployment
Deployment using Dish LMC pipeline jobs
The following manual jobs, found in the ‘deploy-to-mid-psi’ stage of the gitlab ci pipeline, can be used to deploy and manage the Dish LMC software in the MID PSI cluster.
deploy-to-mid-psi jobs
Job |
Description |
---|---|
mid-psi-create-dish-lmc-namespace |
Creates the namespace used by the rest of the jobs |
mid-psi-deploy-dish-lmc-tangodb |
Deploys the tango database |
mid-psi-deploy-dish-lmc-devices |
Deploys the Dish LMC devices (excluding the SPFRx Simulator) |
mid-psi-deploy-taranta |
Deploys Taranta pods |
mid-psi-teardown-taranta |
Deletes Taranta deployment |
mid-psi-teardown-dish-lmc-devices |
Deletes the Dish LMC devices deployment |
mid-psi-teardown-dish-lmc-tangodb |
Deletes tango database deployment |
mid-psi-smoke-test |
Verify that LMC devices and the tango db are available |
mid-psi-integration-test |
Run the set of MID PSI integration tests |
mid-psi-gather-deployment-data |
Gathers info about pods and containers running in the namespace |
mid-psi-delete-dish-lmc-namespace |
Deletes the namespace created by the mid-psi-create-dish-lmc-namespace job |
mid-psi-output-logs |
Acquire & output dish logger logs from the Dish LMC deployment in MID PSI cluster |
ITF Deployment
Deployment using Dish LMC pipeline jobs
The following manual jobs, found in the ‘deploy-lmc-to-itf-spf’ stage of the gitlab ci pipeline, can be used to deploy and manage the Dish LMC software in the ITF cluster.
deploy-lmc-to-itf-spf jobs
Job |
Description |
---|---|
itf-create-dish-lmc-namespace |
Creates the namespace used by the rest of the jobs |
itf-deploy-dish-lmc-tangodb |
Deploys the tango database |
itf-deploy-dish-lmc-devices |
Deploys the Dish LMC devices (excluding the SPF Simulator) |
itf-teardown-dish-lmc-devices |
Deletes the Dish LMC devices deployment |
itf-teardown-dish-lmc-tangodb |
Deletes tango database deployment |
itf-smoke-test |
Verify that LMC devices and the tango db are available |
itf-integration-test |
Run the set of ITF integration tests |
itf-gather-deployment-data |
Gathers info about pods and containers running in the namespace |
itf-delete-dish-lmc-namespace |
Deletes the namespace created by the itf-create-dish-lmc-namespace job |
Pytest
Device FQDN arguments
The following arguments can be used with the pytest command to set the tango device FQDNs for the subservient devices.
<i>Note: These can be added to the PYTHON_VARS_AFTER_PYTEST variable in the makefile to set the FQDNs during pipeline runs.<i> | Device | Flag | |--------|————-| | Dish Manager | –dish-manager-fqdn | | Dish Structure | –dish-structure-fqdn | | SPF | –spf-fqdn | | SPFRx | –spfrx-fqdn |
Example
$ pytest -m "acceptance" tests/ --dish-structure-fqdn=some/test/fqdn
CI/CD deployment
Tango Device Servers documentation
These are all the Tango Device Servers currently included in the project:
These devices allow to test main dish control monitoring and control functionalities using master device. Other devices forming part of the Dish Control system (e.g. alarm system or archiver) will be uploaded in the repository in the future.