SDP Helm Deployer
The Helm Deployer is a component of the SDP, which is responsible for deploying helm charts requested by processing scripts.
It continuously monitors the configuration database for deployment entries, which will tell the Helm deployer whether a release needs to be installed, updated, or uninstalled.
It has direct access to the processing namespace, which does not hold the SDP control systems, but instead is used for deploying and running processing scripts.
Kubernetes event monitoring
The Helm Deployer has been set up to continuously monitor Kubernetes
events. This feature uses the kubernetes
python API
and runs using threading.
Pods
Pod monitoring focuses on the deployments the Helm Deployer is responsible for. It updates (or creates if it does not exist) the deployment state entry in the configuration database, and adds information about the status of each pod that belongs to the specific deployment. The pod statuses it provides are:
PENDING
RUNNING
FINISHED
CANCELLED
FAILED
UNSET
The values directly depend on the pod phase and its condition event values.
A pod is set to RUNNING
only if its phase is RUNNING
and if at least
one of its conditions has type READY
and status True
.
SDP resources
The Helm Deployer also monitors certain Kubernetes CustomObject
s
that represent platform-level resources that SDP needs to be aware of.
These resources are read from Kubernetes and the result is added as entries
in the configuration database under the /resource
prefix.
Currently, the following Kubernetes resources are monitored:
NetworkAttachmentDefinition
s (Kubernetes plural:network-attachment-definitions
) with a labelsdp.skao.int/available-for-allocation
set totrue
. These result innetwork-attachment-definition
andsupernet
SDP resources in the configuration database. Together they define the parameters needed by the vis-receive script to coordinate the setup of the receiver pods to directly listen for data sent by CBF.