Kubernetes event monitoring

The Helm Deployer has been set up to continuously monitor kubernetes (k8s) 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 CustomObjects that represent platform-level resources that SDP needs to be aware of. These resources are read from Kubernetes and result in entries in the configuration database under the /resource prefix.

Currently, the following Kubernetes resources are monitored:

  • NetworkAttachmentDefinitions (Kubernetes plural: network-attachment-definitions) with a label sdp.skao.int/available-for-allocation set to true. These result in network-attachment-definition and supernet 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.