feat: add a first version of the data lab chart

``## Add the Data Lab chart

Adds the Data Lab (dataspace metadata catalogue) to the platform as subchart datalab. Off by default.

What it deploys

  • piveau hub-repo and hub-search: the catalogue engine and its search API
  • Virtuoso: stores the catalogue records (one instance; it also holds the hub's metrics and history)
  • Elasticsearch: single node, the search index
  • Data Lab UI and API: the only public entry, NodePort 30083
  • A setup Job that creates the two catalogues oop-org and oop-org-staging

It is a minimal version of the Data Lab's Docker Compose stack: no separate Nginx gateway, no second Virtuoso, smaller Java heaps (about 3 GB in total).

How it fits the platform

  • Login: uses the platform Keycloak. New realm dataspace (ADR-0049) in the Keycloak chart, with clients data-lab-admin, piveau-hub-repo and data-lab-api. Their secrets are generated into keycloak-credentials.
  • On kind: test users steward (data steward), alice and bob, and port 30083 mapped in cluster.yaml.
  • No other dependencies: no calls to OEG, SRM, FM or NATS, and no use of the shared Postgres.
  • Login switched off: not deployed when global.auth.enabled=false.

Turning it on

Both switches, together: --set datalab.enabled=true --set keycloak.realms.dataspace.enabled=true

Notable details

  • The piveau services wait for Keycloak before starting. Otherwise piveau runs without its access control.
  • The setup Job waits for search and re-indexes the catalogues if piveau failed to index them.
  • datalab-credentials and the data volumes are kept on helm uninstall.
  • To reset the Data Lab, delete its data and realm dataspace. Both are in the README.

Depends on

The Data Lab images built with data-lab MR : internal Keycloak URL, nginx resolver from resolv.conf, no inline script. The chart uses labs.etsi.org:5050/oop/code/data-lab/data-lab-{api,admin-ui}. Pin the tag CI publishes before merging.

Tested on kind

  • Fresh install, uninstall/reinstall (data kept), and a Data Lab data reset.
  • The Data Lab's own local/e2e.py: 69/69.
  • Browser walkthrough of the README journeys (steward, alice, bob): all pass, except one app timing case unrelated to the chart. ``

Merge request reports

Loading
Loading