SKA Telescope Dish LMC

Dish LMC diagram Documentation Status

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:

To aid in testing we also have our own simulators.

Dish LMC Device context

The main entrypoint for TMC to control and monitor a dish is the DishManager device.

Devices

Repository layouts

Devices for full deployment

CI/CD

Devices for CI/CD

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.

Note: The values determine the dish IDs

{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

Note: The device name has to conform to ADR-32 e.g. ska001/spf/simulator

spf, spfrx

ska-mid-dish-manager.dishmanager.<device>.member_name

The last value in the tango triplet

Note: The device name has to conform to ADR-32 e.g. ska001/spf/controller

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

cicd-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.

Logging

Device: DishLogger

Testing

Testing

Modules

Modules

Indices and tables