Self-Test Deployment

This page describes how to deploy the PST for development and testing purposes via the test-parent chart. The test-parent chart configures and deploys various components that simulate all of the required PST interfaces, including

  • Tango infrastructure for monitoring and control

  • JupyterLab for controlling and monitoring PST via notebooks

  • an iTango console for alternative control and monitoring

  • signal generator that simulates the stream of beam-formed voltage data from CBF

  • configured storage for PST output data products

  • configured storage for making data available to the DLM client

Configure environment

First clone the repo and submodules to your local file system

git clone --recursive git@gitlab.com:ska-telescope/pst/ska-pst.git
cd ska-pst

The repository must be clean (such that git diff returns an empty string) or Things Will Fail. (The getVersion() function defined in make/.make-release-support will add -dirty to the end of the version string; consequently, images will not be found, resulting in ErrImagePull and ImagePullBackOff status messages.)

The following environment variables control the deployment and testing of the PST:

Environment variable

Default value

Description

KUBE_NAMESPACE

ska-pst

Kubernetes namespace for deployment

K8S_CHART

ska-pst

Name of the Helm chart to be installed; for simulation mode, use ska-pst

If running in a local kubernetes environment, either use the default namespace or create a namespace; e.g.

kubectl create namespace ska-pst

Configure the namespace used by helm and kubectl:

export HELM_NAMESPACE=ska-pst
export KUBE_NAMESPACE=ska-pst
kubectl config set-context --current --namespace=ska-pst

In the remainder of the documentation, it is assumed that the namespace is either the default or configured appropriately.

Deploy PST

Ensure that Helm is configured to used the SKAO artefact repository.

helm repo add ska https://artefact.skao.int/repository/helm-internal

Deploy PST into the default namespace by installing the test-parent chart with the values file that enables the PST JupyterLab.

make k8s-install-chart K8S_CHART=test-parent \
    K8S_CHART_VALUES="tests/integration/k8srunner/gitlab.test-parent.yaml"

# Wait for the LMC pod to complete initialisation
make k8s-wait KUBE_APP=ska-pst

The gitlab.test-parent.yaml values file configures helm to pull PST images from registry.gitlab.com.

Deploy PST In Simulation mode

PST can be deployed in a simulation mode without the need for the data signal processing pipeline to be running. When deployed in simulation mode only the ska-pst-lmc chart is used and the PST BEAM.MGMT TANGO device is put into simulation mode. This should only be used in a testing environment where there is no need for the digital signal processing pipeline and only a need to interact with the PST LMC (e.g. CSP.LMC testing).

make k8s-install-chart K8S_CHART=test-parent \
    K8S_CHART_PARAMS=" --values=tests/integration/k8srunner/simulation.ska-pst.yaml \
    --set ska-pst.image.registry=registry.gitlab.com/ska-telescope/pst/ska-pst"

# Wait for the LMC pod to complete initialisation
make k8s-wait KUBE_APP=ska-pst

The simulation.ska-pst.yaml values file does not override the default artefact.skao.int registry for PST images.

Interact with PST

See Operation / Using Jupyter for instructions on how to interact with PST via Jupyter notebooks.

Shut down PST

When finished with PST, clean up the deployment.

make k8s-uninstall-chart K8S_CHART=test-parent