Deploying to Prototype System Integration (PSI) environments
PSI clusters exist to support early integration testing of software and some hardware. PSI Low is hosted in the ATNF facility in Marsfield, NSW, and as of March 2022, hardware for PSI Mid is currently being acquired. More information on PSI Low can be found in Confluence.
SKAMPI may be deployed to PSI Low on demand, through GitLab pipelines. These pipeline jobs are defined in .gitlab/ci/psi-low.gitlab-ci.yml. Using these jobs, SKAMPI may be deployed to the following namespaces in the PSI Low cluster:
from master branch to the integration-low namespace
from feature branches to ci-ska-skampi-<branch-name>-low
from git tags to staging-low
Using real hardware in PSI deployments
The PSI Low hosts specialised hardware, both off-the-shelf and proprietary to SKA. Currently this includes
LOW telescope subrack and tile processing modules (TPM)
GPUs for fast parallel computation
FPGAs for specialised hardware-accelerated computation
High-performance network interfaces
These devices are exposed in Kubernetes as extended resources. To use extended resources, a container must declare them in the resources:limits field in its spec as described in the Kubernetes documentation.
In order for a SKAMPI component to include these resource requests, its Helm chart has to have fields in its values file for specifying resource requests, which can then be provided in the PSI Low values file at resources/deployment_configurations/psi-low.yaml. This file is included in GitLab CI deployments to PSI Low.
Components which use the Tango device server templates in ska-tango-util already support this. For example, to specify that ska-low-mccs’ tile devices need access to a TPM, this file would include:
ska-low-mccs:
deviceServers:
tiles:
resources:
limits:
skao.int/tpm: 1
Depending on the component, you may need to expose more fields in your values file. For example, some components include a toggle to switch between simulated mode and real hardware mode.