Skip to content
Snippets Groups Projects
Select Git revision
  • 108037777606d46cbe4d3b87b9be7bf4fb1b855d
  • master default protected
  • dev protected
  • 551-init-broker-service-permissions
  • release-1.10 protected
  • 549-test-oai-pmh
  • 545-saving-multiple-times-breaks-pid-metadata
  • release-1.9 protected
  • 499-standalone-compute-service-2
  • 539-load-tests
  • hotfix/helm-chart
  • luca_ba_new_interface
  • 534-bug-when-adding-access-to-user-that-is-not-registered-at-dashboard-service
  • release-1.8 protected
  • 533-integrate-semantic-recommendation
  • feature/openshift
  • 518-spark-doesn-t-map-the-headers-correct
  • 485-fixity-checks
  • 530-various-schema-problems-with-subsets
  • release-1.7 protected
  • fix/auth-service
  • v1.10.1 protected
  • v1.10.0-rc13 protected
  • v1.10.0-rc12 protected
  • v1.10.0-rc11 protected
  • v1.10.0-rc10 protected
  • v1.10.0-rc9 protected
  • v1.10.0-rc8 protected
  • v1.10.0-rc7 protected
  • v1.10.0-rc6 protected
  • v1.10.0-rc5 protected
  • v1.10.0-rc4 protected
  • v1.10.0-rc3 protected
  • v1.10.0-rc2 protected
  • v1.10.0rc1 protected
  • v1.10.0rc0 protected
  • v1.10.0 protected
  • v1.9.3 protected
  • v1.9.2 protected
  • v1.9.2-rc0 protected
  • v1.9.1 protected
41 results

fda-services

pipeline status coverage report license

DBRepo — A Repository for Databases

tl;dr

docker compose up -d
docker compose logs -f

Build

Build DBRepo from scratch:

make build

Documentation

More documentation can be found online: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/

Development

CI/CD

We get compute resources in-kind from dataLAB to run our pipeline:

Gitlab runner configuration in the cluster
Figure 1. Gitlab runner configuration in the cluster.

Minikube cluster with 6vCPU and 28GB RAM. The CI pipeline is configured as follows in the config.toml:

concurrent = 10
[[runners]]
  executor = "kubernetes"
  environment = [
    "FF_USE_LEGACY_KUBERNETES_EXECUTION_STRATEGY=false"
  ]
  [runners.kubernetes]
    namespace = "{{.Release.Namespace}}"
    privileged = true
    allowed_services = ["docker:24-dind"]
    [[runners.kubernetes.services]]
      name = "docker:24-dind"
      command = [ "--registry-mirror=http://docker-io-mirror:80", "--insecure-registry=docker-io-mirror:80", "--registry-mirror=http://gcr-io-mirror:80", "--insecure-registry=gcr-io-mirror:80", "--registry-mirror=http://ghcr-io-mirror:80", "--insecure-registry=ghcr-io-mirror:80", "--registry-mirror=http://k8s-io-mirror:80", "--insecure-registry=k8s-io-mirror:80" ]
      alias = "docker"
    [[runners.kubernetes.volumes.empty_dir]]
      name = "rundind"
      mount_path = "/var/run/dind"
      medium = "Memory"
    [[runners.kubernetes.volumes.empty_dir]]
      name = "tmp"
      mount_path = "/tmp"
      medium = "Memory"

For each job in the CI/CD pipeline, a pod with three containers is started:

  1. build the main build container, you can freely specify any image with image: xyz as base
  2. helper the default helper container.
  3. svc-0 the Docker-in-Docker sidecar (rootless executed as user rootless/1000) exposing the Docker socket to the build container under `

Note. Only Docker-in-Docker (dind) is allowed as service in the pipeline currently. For each job, a dind-sidecar container svc-0 is started that exposes the Docker socket at /var/run/dind/docker.sock in the build container you can freely configure how you want. We are aware this is not optimal as it exposes root privileges in the cluster.

The full CI/CD pipeline Helm chart is documented in the fda-deployment repository.

Contribute

Contributions are always welcome and encouraged, simply fork the repository and contact Andreas Rauber.

Acknowledgements

We want to thank the following organizations:

  • Bundesministerium für Bildung, Wissenschaft und Forschung (BMBWF) for funding during the call "Digitale und soziale Transformation in der Hochschulbildung".
  • TU.it for their continuous support in project work, funding and compute resources provided in-kind.

License

This work is licensed under a Creative Commons Attribution 4.0 International License