Deployment Guide
Kubernetes Deployment
This is the documentation for the Data Product Dashboard Helm Chart.
All Configuration Options
Currently the full list of configuration options are:
Ingress:
Value |
Default |
Comment |
---|---|---|
|
|
Whether the Ingress should be enabled. |
|
|
Whether the namespace should be added to the ingress prefix. |
|
|
The domain name where the application will be hosted. Used for MS Entra redirect URI. |
Data product API:
Value |
Default |
Comment |
---|---|---|
|
|
If the ska-sdp-dataproduct-api should be enabled. |
|
|
The link to the artefact repository |
|
|
The version of the ska-sdp-dataproduct-api to use. |
|
|
The pull policy of the ska-sdp-dataproduct-api. |
|
|
What the prefix for the ska-sdp-dataproduct-api path should be. |
|
|
The path to the data on the PV. |
|
|
The name of the data products metadata file that is used to indicate that a folder is a data product. |
|
|
The metadata schema used to verify the metadata schema. |
|
|
The Elasticsearch host. |
|
|
Data downloaded are streamed in stream_chunk_size chunks. |
|
|
The requested minimum CPU usage of the api. |
|
|
The requested minimum memory usage of the api. |
|
|
The maximum CPU usage of the api. |
|
|
The maximum memory usage of the api. |
Data product Dashboard:
Value |
Default |
Comment |
---|---|---|
|
|
If the ska-sdp-dataproduct-dashboard should be enabled. |
|
|
The link to the artefact repository |
|
|
The version of the ska-sdp-dataproduct-dashboard to use. |
|
|
The pull policy of the ska-sdp-dataproduct-dashboard. |
|
|
What the prefix for the ska-sdp-dataproduct-dashboard path should be. |
|
|
Enable mocked authentication. |
|
|
Enables the deployment to retrieve SPA registration details from the SKAO vault. |
|
|
Path to the secrets in the vault. |
|
|
Placeholder env variable for MS Entra application registration client ID. |
|
|
Placeholder env variable for MS Entra application registration tenant ID. |
|
|
The polling rate for new data from the API. |
|
|
The requested minimum CPU usage of the dashboard. |
|
|
The requested minimum memory usage of the dashboard. |
|
|
The maximum CPU usage of the dashboard. |
|
|
The maximum memory usage of the dashboard. |
Permissions API:
Value |
Default |
Comment |
---|---|---|
|
|
If the ska-permissions-api should be enabled. |
|
|
The link to the artefact repository |
|
|
The version of the ska-permissions-api to use. |
|
|
The pull policy of the ska-permissions-api. |
|
|
What the prefix for the ska-permissions-api path should be. |
|
|
Enables the deployment to retrieve WEB API registration details from the SKAO vault. |
|
|
Path to the secrets in the vault. |
|
|
Placeholder env variable for MS Entra application registration client ID. |
|
|
Placeholder env variable for MS Entra application registration tenant ID. |
|
|
The requested minimum CPU usage of the api. |
|
|
The requested minimum memory usage of the api. |
|
|
The maximum CPU usage of the api. |
|
|
The maximum memory usage of the api. |
Usage
The data product dashboard is intended to be deployed as a standalone deployment, running as a service accessible to other deployments through its API or to users through the dashboard URL. Typical deployments are done from within the GitLab pipelines, deploying into pre-configured environments to one of three namespaces (ci-dev, integration or staging)
During development, developers can deploy the development branches into the ci-dev namespace from the Gitlab pipeline. Here the installation use the local chart in the repository for deployment:
From the master branch, the application can be deployed into the integration or staging namespace of each environment. For these deployments released chart from CAR is used.
The deployed Data Product Dashboard should then be accessible at: “https://sdhp.stfc.skao.int/$KUBE_NAMESPACE/dashboard/”, and the backend should be accessible at: “https://sdhp.stfc.skao.int/$KUBE_NAMESPACE/api/”
Steps to run the system locally in Minikube
The following steps will assume that you have the repo checked out, or have the chart locally.
Start Minikube if it is not already running:
minikube start
minikube status
If needed, build the Docker images, tag and load them to Minikube.
docker build -t ska-sdp-dataproduct-dashboard .
docker images
docker tag [Image ID] ska-sdp-dataproduct-dashboard:[Tag]
minikube image load ska-sdp-dataproduct-dashboard:[Tag]
minikube image ls
If you want to run the API with a local instance of Elasticsearch, you can add the Bitnami repository to your repositories:
helm repo add bitnami https://charts.bitnami.com/bitnami
Pull and load the Elasticsearch images into Minikube if required:
docker image pull bitnami/elasticsearch:[Tag]
minikube image load bitnami/elasticsearch:[Tag]
Update the DPD chart (Chart.yaml) dependency to match the Elasticsearch tag and enable it.
dependencies:
- name: 'elasticsearch'
version: '[Tag]'
repository: 'https://charts.bitnami.com/bitnami'
condition: elasticsearch.enabled
Change to the chart directory in the repository:
cd charts/ska-sdp-dataproduct-dashboard/
. Make the needed changes to image versions and enable the deployments as required in the values files. Then update the Helm dependencies.
helm dependency update .
helm dependency build
Create a new namespace (optional):
kubectl create namespace [namespace]
Install the helm chart with the following values:
helm install [deploy-name] charts/ska-sdp-dataproduct-dashboard -n [namespace] –values values_local_deployment.yaml
On a system with limited resources / slow connection, run with the following additional flags:
helm install [deploy-name] charts/ska-sdp-dataproduct-dashboard -n [namespace] --values values_local_deployment.yaml --set diagnosticMode.enabled=true --timeout=60m
Once the above is complete you will have the following running:
The Data Product API
The Data Product Dashboard
To be able to access the API and the dashboard (Add Elasticsearch if in use as well so that it can be reached by the API on the local host) run the following:
kubectl -n [namespace] port-forward service/ska-sdp-dataproduct-api 8000:8000
kubectl -n [namespace] port-forward service/ska-sdp-dataproduct-dashboard 80:80
You should now be able to access the API and the Dashboard on the following URL’s:
To get data onto the PV:
kubectl get pod -n [namespace]
kubectl cp [host path]/ska-sdp-dataproduct-api/tests/test_files/product [ska-sdp-dataproduct-api pod]:/usr/data -n [namespace]