Kubernetes
Kubernetes Concepts
The following are key concepts to understand the project:
Pod: https://kubernetes.io/docs/concepts/workloads/pods/pod-overview/
Service: https://kubernetes.io/docs/concepts/services-networking/service/
StatefulSet: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/
Ingress: https://kubernetes.io/docs/concepts/services-networking/ingress/
IngressController: https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/
NGINX IngressController: https://github.com/kubernetes/ingress-nginx
PersistentVolume: https://kubernetes.io/docs/concepts/storage/persistent-volumes/
PersistentVolumeClaim: https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims
KubeCtl references
Overview: https://kubernetes.io/docs/reference/kubectl/overview/
Cheat Sheet: https://kubernetes.io/docs/reference/kubectl/cheatsheet/
Hands-on training material: SKA Training on containerisation and orchestration.
K8s Templates
Warning
The below names and specifics for the charts are not necessarily up to date and were compiled as reference material while developing the structure of standard Helm charts for SKA. The information is still mostly relevant though.
Template files follow the standard conventions for writing Go templates (see the documentation for details). For example, in the tango-base chart, the following files composes the templates for the generation of valid kubernetes manifest files:
tangodb.yaml: define a k8s service for maria db and a statefulset attached to it
tangodb-pv.yaml: define a PersistentVolume and a PersistentVolumeClaim for the database service (tangodb.yaml)
databaseds.yaml: define a k8s service for the device server Databaseds and a statefulset attached to it
itango.yaml: define a k8s pod for interacting with other containers (for local testing purpose)
jive.yaml: define a k8s pod for interacting with the tango jive tool (for local development purpose)
logviewer.yaml: define a k8s pod for interacting with the tango logviewer tool (for local development purpose)
tangotest.yaml: define a k8s pod for the tangotest device server