diff --git a/helm/dbrepo/dbrepo-aris-values.yaml b/helm/dbrepo/dbrepo-aris-values.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..634adaf4ea9cd0388a1418459242f33f34cbf8ed
--- /dev/null
+++ b/helm/dbrepo/dbrepo-aris-values.yaml
@@ -0,0 +1,265 @@
+namespace: aris-dbrepo-dev
+hostname: dbrepo.arisnet.ac.at
+gateway: https://dbrepo.arisnet.ac.at
+
+dbrepo:
+  namespace: aris-dbrepo-dev
+  hostname: dbrepo.arisnet.ac.at
+  gateway: https://dbrepo.arisnet.ac.at
+
+  admin:
+    username: admin
+    password: admin
+
+  metadatadb:
+    enabled: false
+    rootUser:
+      user: root
+      password: dbrepo
+    galera:
+      mariabackup:
+        user: mariabackup
+        password: mariabackup
+    extraInitDbScripts:
+      03-additional-data.sql: |
+        BEGIN;
+        INSERT INTO `mdb_containers` (name, internal_name, image_id, host, port, sidecar_host, sidecar_port, privileged_username, privileged_password)
+          VALUES ('MariaDB 11.1.2', 'mariadb_11_1_2', 1, 'data2-db', 3306, 'data2-db', 8080, 'root', 'dbrepo');
+        INSERT INTO `mdb_banner_messages` (type, message)
+          VALUES ('INFO', 'You are currently working on our test environment. Any data upload to this system may be deleted.');
+        COMMIT;
+    persistence:
+      enabled: false
+
+  uploadservice:
+    enabled: false
+
+  authservice:
+    enabled: false
+    auth:
+      adminUser: admin
+      adminPassword: de4aingohyohveeRooZe
+    postgresql:
+      auth:
+        postgresPassword: Zaethie2gai3phogh3wa
+    jwt:
+      pubkey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
+    client:
+      id: dbrepo-client
+      secret: MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG
+    persistence:
+      enabled: false
+
+  brokerservice:
+    enabled: false
+    rbac:
+      # OpenShift has problems with clusterroles
+      create: false
+    ldap:
+      bindpw: oNah3caew4ceemiel5ae
+
+  identityservice:
+    enabled: false
+    global:
+      adminUser: admin
+      adminPassword: oNah3caew4ceemiel5ae
+    users: admin
+    userPasswords: eene9Loochai5thaiRoo
+
+  datadb:
+    enabled: false
+    rootUser:
+      user: root
+      password: dbrepo
+    galera:
+      mariabackup:
+        user: mariabackup
+        password: mariabackup
+    sidecars:
+      - name: sidecar
+        image: registry.datalab.tuwien.ac.at/dbrepo/data-db-sidecar:unstable
+        imagePullPolicy: Always
+        securityContext:
+          runAsUser: 1001
+          runAsGroup: 0
+          runAsNonRoot: true
+          allowPrivilegeEscalation: false
+          seccompProfile:
+            type: RuntimeDefault
+          capabilities:
+            drop:
+              - ALL
+        ports:
+          - name: "sidecar"
+            containerPort: 8080
+            protocol: TCP
+        envFrom:
+          - secretRef:
+              name: data-service-secret
+        livenessProbe:
+          exec:
+            command:
+              - /bin/bash
+              - -ec
+              - "curl -sSL localhost:8080/health | grep 'UP' || exit 1"
+          initialDelaySeconds: 120
+          periodSeconds: 30
+        readinessProbe:
+          exec:
+            command:
+              - /bin/bash
+              - -ec
+              - "curl -sSL localhost:8080/health | grep 'UP' || exit 1"
+          initialDelaySeconds: 30
+          periodSeconds: 30
+        volumeMounts:
+          - name: s3
+            mountPath: /s3
+    extraPorts:
+      - name: "sidecar"
+        port: 8080
+        targetPort: 8080
+        protocol: TCP
+    extraVolumeMounts:
+      - name: s3
+        mountPath: /s3
+    extraVolumes:
+      - name: s3
+        emptyDir: {}
+    replicaCount: 3
+    persistence:
+      enabled: false
+
+  searchdb:
+    enabled: false
+    security:
+      enabled: false
+#      adminUsername: admin
+#      adminPassword: uMeiphoh8Enasoh3ohCh
+    extraEnvs:
+      - name: DISABLE_INSTALL_DEMO_CONFIG
+        value: "true"
+    persistence:
+      enabled: false
+
+  analyseservice:
+    enabled: false
+    image:
+      name: registry.datalab.tuwien.ac.at/dbrepo/analyse-service:unstable
+      pullPolicy: Always
+
+  metadataservice:
+    enabled: false
+    image:
+      name: registry.datalab.tuwien.ac.at/dbrepo/metadata-service:unstable
+      pullPolicy: Always
+      debug: true
+    admin:
+      email: noreply@example.com
+    deletedRecord: permanent
+    repositoryName: Database Repository
+    granularity: YYYY-MM-DDThh:mm:ssZ
+    datacite:
+      enabled: false
+      url: https://api.datacite.org
+      prefix: ""
+      username: ""
+      password: ""
+
+  dataservice:
+    enabled: false
+    image:
+      name: registry.datalab.tuwien.ac.at/dbrepo/data-service:unstable
+      pullPolicy: Always
+      debug: true
+    rabbitmq:
+      consumer:
+        username: admin
+        password: eene9Loochai5thaiRoo
+    s3:
+      filePath: /s3
+
+  searchservice:
+    enabled: false
+    image:
+      name: registry.datalab.tuwien.ac.at/dbrepo/search-service:unstable
+      pullPolicy: Always
+      debug: false
+    init:
+      image:
+        name: registry.datalab.tuwien.ac.at/dbrepo/search-service-init:unstable
+        pullPolicy: Always
+
+  storageservice:
+    enabled: false
+    global:
+      # OpenShift has problems with clusterroles
+      createClusterRole: false
+    init:
+      image: registry.datalab.tuwien.ac.at/dbrepo/storage-service-init:unstable
+
+  ui:
+    enabled: true
+    image:
+      name: registry.datalab.tuwien.ac.at/dbrepo/ui:unstable
+      pullPolicy: Always
+    public:
+      api:
+        client: https://dbrepo.arisnet.ac.at
+        server: https://dbrepo.arisnet.ac.at
+      title: "Database Repository"
+      logo: "/logo.svg"
+      icon: "/favicon.ico"
+      touch: "/apple-touch-icon.png"
+      broker:
+        host: dbrepo.arisnet.ac.at
+        port:
+          5671: true
+          5672: false
+        extra: "128.130.0.0/15"
+      database:
+        extra: "128.130.0.0/15"
+      pid:
+        default:
+          publisher: "TU Wien"
+      doi:
+        enabled: false
+        endpoint: https://doi.org
+    extraVolumes: [ ]
+    #  - name: images-map
+    #    configMap:
+    #      name: ui-config
+    extraVolumeMounts: [ ]
+    #  - name: images-map
+    #    mountPath: /static/logo.svg
+    #    subPath: logo.svg
+
+  ingress:
+    enabled: true
+    className: nginx
+    tls:
+      enabled: true
+      secretName: dbrepo-ingress-tls-cert
+    annotations:
+      basic:
+#        cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
+        nginx.ingress.kubernetes.io/use-regex: "true"
+      rewriteApi:
+#        cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
+        nginx.ingress.kubernetes.io/use-regex: "true"
+        nginx.ingress.kubernetes.io/rewrite-target: /api/$1
+      rewriteRoot:
+#        cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
+        nginx.ingress.kubernetes.io/use-regex: "true"
+        nginx.ingress.kubernetes.io/rewrite-target: /$1
+      rewriteRootSecure:
+#        cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
+        nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
+        nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
+        nginx.ingress.kubernetes.io/use-regex: "true"
+        nginx.ingress.kubernetes.io/rewrite-target: /$1
+      rewritePid:
+#        cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
+        nginx.ingress.kubernetes.io/use-regex: "true"
+        nginx.ingress.kubernetes.io/rewrite-target: /api/pid/$1
+
diff --git a/helm/dbrepo/values.yaml b/helm/dbrepo/values.yaml
index 8515c024cedf7c86a0a7aa2af628a6c496472bab..cefd74d04d3505d468f9fed757da55d9b018d47b 100644
--- a/helm/dbrepo/values.yaml
+++ b/helm/dbrepo/values.yaml
@@ -1,11 +1,21 @@
 # Copyright the DBRepo developers
 # SPDX-License-Identifier: APACHE-2.0
 
+## @section Global parameters
+
+global:
+  ## Compatibility adaptations for Kubernetes platforms
+  compatibility:
+    ##  Compatibility adaptations for Openshift
+    openshift:
+      ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
+      adaptSecurityContext: auto
+  ## @param global.storageClass Global StorageClass for Persistent Volume(s)
+  storageClass: ""
+
 ## @section Common parameters
-##
 
 ## @param namespace The namespace to install the chart
-##
 namespace: aris-dbrepo-dev
 ## @param hostname The hostname.
 ##
@@ -14,700 +24,808 @@ hostname: dbrepo.arisnet.ac.at
 ##
 gateway: https://arisnet.ac.at
 ## @param strategyType The image pull
-##
 strategyType: RollingUpdate
 ## @param clusterDomain The cluster domain.
-##
 clusterDomain: cluster.local
 
-## @section Internal Admin User
-
-## @param admin.username The internal admin username.
-## @param admin.password The internal admin password.
-##
-admin:
-  username: admin
-  password: admin
-
-## resource limits required by ares cluster
-##
-resources:
-  limits:
-    cpu: 500m
-    memory: 756Mi
-  requests:
-    cpu: 100m
-    memory: 256Mi
-
-
-resourcesLittle:
-  limits:
-    cpu: 100m
-    memory: 512Mi
-  requests:
-    cpu: 50m
-    memory: 256Mi
-
 ## @section Metadata Database
 
-## @param metadatadb.enabled Enable the Metadata Database.
-## @skip metadatadb.fullnameOverride
-## @param metadatadb.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
-## @param metadatadb.host The hostname for the microservices.
-## @param metadatadb.rootUser.user The root username.
-## @param metadatadb.rootUser.password The root user password.
-## @param metadatadb.jdbcExtraArgs The extra arguments for JDBC connections in the microservices.
-## @param metadatadb.db.name The database name.
-## @skip metadatadb.metrics.enabled The Prometheus settings.
-## @skip metadatadb.galera The Galera settings.
-## @skip metadatadb.initdbScriptsConfigMap The initial database scripts.
-## @param metadatadb.extraInitDbScripts Additional init.db scripts that are executed on the first start.
-## @skip metadatadb.service The initial database scripts.
-## @param metadatadb.persistence.enabled Enable persistent storage. Requires PV-provisioner.
-## @param metadatadb.replicaCount The number of replicas, should be uneven (2n+1).
-##
 metadatadb:
+  ## @param metadatadb.enabled Enable the Metadata Database.
   enabled: true
+  ## @skip metadatadb.fullnameOverride
   fullnameOverride: metadata-db
-  global:
-    compatibility:
-      openshift:
-        adaptSecurityContext: force
-    storageClass: "rbd-storagepool-cluster"
-  image:
-    debug: false
+  ## @param metadatadb.host The hostname for the microservices.
   host: metadata-db
   rootUser:
+    ## @param metadatadb.rootUser.user The root username.
     user: root
+    ## @param metadatadb.rootUser.password The root user password.
     password: dbrepo
-  jdbcExtraArgs: ""
   db:
-    name: fda
-  metrics:
-    enabled: false
+    ## @param metadatadb.db.name The database name.
+    name: dbrepo
   galera:
     mariabackup:
-      user: mariabackup
-      password: mariabackup
+      ## @param metadatadb.galera.mariabackup.user The database backup username.
+      user: backup
+      ## @param metadatadb.galera.mariabackup.password The database backup user password
+      password: backup
+  ## @param metadatadb.jdbcExtraArgs The extra arguments for JDBC connections in the microservices.
+  jdbcExtraArgs: ""
+  metrics:
+    ## @skip metadatadb.metrics.enabled The Prometheus settings.
+    enabled: false
+  ## @skip metadatadb.initdbScriptsConfigMap The initial database scripts.
   initdbScriptsConfigMap: metadata-db-setup
-  extraInitDbScripts: {}
+  ## @param metadatadb.initdbScripts Additional init.db scripts that are executed on the first start.
+  initdbScripts: { }
   #    03-additional-data.sql: |
   #      BEGIN;
   #      INSERT INTO `mdb_containers` (name, internal_name, image_id, host, port, sidecar_host, sidecar_port, privileged_username, privileged_password)
   #        VALUES ('MariaDB Galera TEST', 'mariadb_11_1_3', 1, 'data-db', 3306, 'data-db', 80, 'root', 'dbrepo');
   #      COMMIT;
-  service:
-    type: ClusterIP
-    annotations: {}
-    loadBalancerIP: ""
-    loadBalancerSourceRanges: []
-  persistence:
-    enabled: false
-  resources:
-    requests:
-      cpu: 50m
-      ephemeral-storage: 10Mi
-      memory: 512Mi
-    limits:
-      cpu: 150m
-      ephemeral-storage: 50Mi
-      memory: 768Mi
+  ## @param metadatadb.replicaCount The number of cluster nodes, should be uneven i.e. 2n+1
   replicaCount: 3
+  persistence:
+    ## @param metadatadb.persistence.enabled Enable persistent storage.
+    enabled: true
 
 ## @section Auth Service
 
-## @param authservice.enabled Enable the Auth Service.
-## @skip authservice.fullnameOverride
-## @param authservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
-## @param authservice.endpoint The hostname for the microservices.
-## @param authservice.auth.adminUser The admin username.
-## @param authservice.auth.adminPassword The admin user password.
-## @skip authservice.postgresql
-## @skip authservice.extraStartupArgs
-## @param authservice.jwt.pubkey The JWT public key from the `dbrepo-client`.
-## @param authservice.tls.enabled Enable TLS/SSL communication. Required for HTTPS.
-## @param authservice.tls.existingSecret The secret containing the `tls.crt`, `tls.key` and `ca.crt`.
-## @param authservice.tls.usePem Use PEM certificates as input instead of PKS12/JKS stores.
-## @param authservice.metrics.enabled Enable the Prometheus metrics export sidecar container.
-## @param authservice.client.id The client id for the microservices.
-## @param authservice.client.secret The client secret for the microservices.
-## @skip authservice.extraEnvVarsCM
-## @skip authservice.extraVolumes
-## @skip authservice.extraVolumeMounts
-## @skip authservice.replicaCount The number of replicas.
-##
 authservice:
+  ## @param authservice.enabled Enable the Auth Service.
   enabled: true
+  ## @skip authservice.fullnameOverride
   fullnameOverride: auth-service
-  global:
-    compatibility:
-      openshift:
-        adaptSecurityContext: force
-    storageClass: "rbd-storagepool-cluster"
   image:
+    ## @param authservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: false
+  ## @param authservice.endpoint The hostname for the microservices.
   endpoint: http://auth-service
   auth:
-    adminUser: fda
-    adminPassword: fda
+    adminUser: admin
+    adminPassword: de4aingohyohveeRooZe
   postgresql:
-    enabled: true
     auth:
-      postgresPassword: postgres
+      postgresPassword: Zaethie2gai3phogh3wa
+  ## @skip authservice.extraStartupArgs
   extraStartupArgs: "--import-realm"
   jwt:
+    ## @param authservice.jwt.pubkey The JWT public key from the `dbrepo-client`.
     pubkey: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqqnHQ2BWWW9vDNLRCcxD++xZg/16oqMo/c1l+lcFEjjAIJjJp/HqrPYU/U9GvquGE6PbVFtTzW1KcKawOW+FJNOA3CGo8Q1TFEfz43B8rZpKsFbJKvQGVv1Z4HaKPvLUm7iMm8Hv91cLduuoWx6Q3DPe2vg13GKKEZe7UFghF+0T9u8EKzA/XqQ0OiICmsmYPbwvf9N3bCKsB/Y10EYmZRb8IhCoV9mmO5TxgWgiuNeCTtNCv2ePYqL/U0WvyGFW0reasIK8eg3KrAUj8DpyOgPOVBn3lBGf+3KFSYi+0bwZbJZWqbC/Xlk20Go1YfeJPRIt7ImxD27R/lNjgDO/MwIDAQAB"
   tls:
+    ## @param authservice.tls.enabled Enable TLS/SSL communication. Required for HTTPS.
     enabled: true
+    ## @param authservice.tls.existingSecret The secret containing the `tls.crt`, `tls.key` and `ca.crt`.
     existingSecret: ingress-cert
+    ## @skip authservice.tls.usePem
     usePem: true
   metrics:
+    ## @param authservice.metrics.enabled Enable the Prometheus metrics export sidecar container.
     enabled: false
   client:
+    ## @param authservice.client.id The client id for the microservices.
     id: dbrepo-client
+    ## @param authservice.client.secret The client secret for the microservices.
     secret: MUwRc7yfXSJwX8AdRMWaQC3Nep1VjwgG
+  ## @skip authservice.extraEnvVarsCM
   extraEnvVarsCM: auth-service-config
+  ## @skip authservice.extraVolumes
   extraVolumes:
     - name: config-map
       configMap:
         name: auth-service-config
+  ## @skip authservice.extraVolumeMounts
   extraVolumeMounts:
     - name: config-map
       mountPath: /opt/bitnami/keycloak/data/import
-  resources:
-    requests:
-      cpu: 50m
-      ephemeral-storage: 10Mi
-      memory: 512Mi
-    limits:
-      cpu: 250m
-      ephemeral-storage: 10Mi
-      memory: 768Mi
+  ## @skip authservice.replicaCount The number of replicas.
   replicaCount: 2
 
 ## @section Data Database
 
-## @param datadb.enabled Enable the Data Database.
-## @skip datadb.fullnameOverride
-## @param datadb.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
-## @skip datadb.extraFlags
-## @param datadb.rootUser.user The root username.
-## @param datadb.rootUser.password The root user password.
-## @skip datadb.metrics.enabled The Prometheus settings.
-## @skip datadb.galera The Galera settings.
-## @skip datadb.service
-## @skip datadb.sidecars
-## @skip datadb.extraVolumeMounts
-## @skip datadb.extraVolumes
-## @param datadb.persistence.enabled Enable persistent storage. Requires PV-provisioner.
-## @param datadb.replicaCount The number of replicas, should be uneven (2n+1).
-##
 datadb:
+  ## @param datadb.enabled Enable the Data Database.
   enabled: true
-  global:
-    compatibility:
-      openshift:
-        adaptSecurityContext: force
-    storageClass: "rbd-storagepool-cluster"
+  ## @skip datadb.fullnameOverride
   fullnameOverride: data-db
   image:
+    ## @param datadb.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: false
-  extraFlags: "--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci"
-  rootUser:
-    user: root
-    password: dbrepo
+  auth:
+    ## @param datadb.auth.rootPassword The root user password.
+    rootPassword: dbrepo
+    ## @param datadb.auth.replicationUser The database replication user password
+    replicationUser: replication
+    ## @param datadb.auth.replicationPassword The database replication user password
+    replicationPassword: replication
   metrics:
+    ## @skip datadb.metrics.enabled
     enabled: true
-    resources:
-      requests:
-        cpu: 50m
-        ephemeral-storage: 10Mi
-        memory: 512Mi
-      limits:
-        cpu: 150m
-        ephemeral-storage: 10Mi
-        memory: 768Mi
-  galera:
-    mariabackup:
-      user: mariabackup
-      password: mariabackup
-    bootstrap:
-      forceBootstrap: true
-      forceSafeToBootstrap: true
-  service:
-    extraPorts:
-      - name: "sidecar"
-        port: 8080
-        targetPort: 8080
-        protocol: TCP
-  sidecars:
-    - name: sidecar
-      image: s210.dl.hpc.tuwien.ac.at/dbrepo/data-db-sidecar:1.4.4
-      imagePullPolicy: Always
-      securityContext:
-        allowPrivilegeEscalation: false
-        seccompProfile:
-          type: RuntimeDefault
-        capabilities:
-          drop:
-            - ALL
-      resources:
-        requests:
-          cpu: 25m
-          memory: 512Mi
-        limits:
-          cpu: 100m
-          memory: 768Mi
-      ports:
+  ## @skip datadb.primary
+  primary:
+    service:
+      extraPorts:
         - name: "sidecar"
-          containerPort: 8080
+          port: 8080
+          targetPort: 8080
           protocol: TCP
-      envFrom:
-        - secretRef:
-            name: data-service-secret
-      livenessProbe:
-        exec:
-          command:
-            - /bin/bash
-            - -ec
-            - "curl -sSL localhost:8080/health | grep 'UP' || exit 1"
-        initialDelaySeconds: 120
-        periodSeconds: 30
-      readinessProbe:
-        exec:
-          command:
-            - /bin/bash
-            - -ec
-            - "curl -sSL localhost:8080/health | grep 'UP' || exit 1"
-        initialDelaySeconds: 30
-        periodSeconds: 30
-      volumeMounts:
-        - name: s3
-          mountPath: /s3
-  extraVolumeMounts:
-    - name: s3
-      mountPath: /s3
-  extraVolumes:
-    - name: s3
-      emptyDir: {}
-  persistence:
-    enabled: true
-  resources:
-    requests:
-      cpu: 25m
-      ephemeral-storage: 10Mi
-      memory: 512Mi
-    limits:
-      cpu: 100m
-      ephemeral-storage: 10Mi
-      memory: 768Mi
-  replicaCount: 3
+    sidecars:
+      - name: sidecar
+        image: registry.datalab.tuwien.ac.at/dbrepo/data-db-sidecar:1.4.5
+        imagePullPolicy: Always
+        securityContext:
+          runAsUser: 1001
+          runAsGroup: 0
+          runAsNonRoot: true
+          allowPrivilegeEscalation: false
+          seccompProfile:
+            type: RuntimeDefault
+          capabilities:
+            drop:
+              - ALL
+        ports:
+          - name: "sidecar"
+            containerPort: 8080
+            protocol: TCP
+        envFrom:
+          - secretRef:
+              name: data-service-secret
+        livenessProbe:
+          exec:
+            command:
+              - /bin/bash
+              - -ec
+              - "curl -sSL localhost:8080/health | grep 'UP' || exit 1"
+          initialDelaySeconds: 120
+          periodSeconds: 30
+        readinessProbe:
+          exec:
+            command:
+              - /bin/bash
+              - -ec
+              - "curl -sSL localhost:8080/health | grep 'UP' || exit 1"
+          initialDelaySeconds: 30
+          periodSeconds: 30
+        volumeMounts:
+          - name: s3
+            mountPath: /s3
+    extraVolumeMounts:
+      - name: s3
+        mountPath: /s3
+    extraVolumes:
+      - name: s3
+        emptyDir: { }
+    persistence:
+      enabled: true
+  ## @skip datadb.secondary
+  secondary:
+    replicaCount: 2
 
 ## @section Search Database
 
-## @param searchdb.enabled Enable the Search Database.
-## @skip searchdb.fullnameOverride
-## @param searchdb.host The hostname for the microservices.
-## @param searchdb.port The port for the microservices.
-## @skip searchdb.protocol
-## @param searchdb.username The admin username.
-## @param searchdb.password The admin user password.
-## @skip searchdb.clusterName
-## @skip searchdb.masterService
-## @param searchdb.replicas The number of replicas.
-## @skip searchdb.sysctlInit
-## @param searchdb.persistence.enabled Enable persistent storage. Requires PV-provisioner.
-## @skip searchdb.service
-## @skip searchdb.extraEnvs
-## @skip searchdb.extraVolumeMounts
-## @skip searchdb.extraVolumes
-## @skip searchdb.config
-##
 searchdb:
+  ## @param searchdb.enabled Enable the Data Database.
   enabled: true
+  ## @skip searchdb.fullnameOverride
   fullnameOverride: search-db
+  ## @skip searchdb.servicenameOverride
+  servicenameOverride: search-db
+  ## @param searchdb.host The hostname for the microservices.
   host: search-db
+  ## @param searchdb.port The port for the microservices.
   port: 9200
-  protocol: http
-  username: admin
-  password: admin
-  clusterName: search-db
-  masterService: search-db
-  replicas: 3
-  sysctlInit:
-    enabled: false
-  persistence:
+  ## @skip searchdb.security
+  security:
     enabled: false
-  service:
-    type: ClusterIP
-    annotations: {}
-    loadBalancerSourceRanges: []
-  extraEnvs:
-    - name: DISABLE_INSTALL_DEMO_CONFIG
-      value: "true"
-  extraVolumeMounts:
-    - name: node-cert
-      mountPath: /usr/share/opensearch/config/tls
-      readOnly: true
-  extraVolumes:
-    - name: node-cert
-      secret:
-        secretName: search-db-secret
-  securityContext:
-    capabilities:
-      drop:
-        - ALL
-    runAsNonRoot: true
-    readOnlyRootFilesystem: true
-    allowPrivilegeEscalation: false
-    runAsUser: null
-  podSecurityContext:
-    runAsNonRoot: true
-    fsGroup: null
-    runAsUser: null
-  resources:
-    requests:
-      cpu: 50m
-      ephemeral-storage: 10Mi
-      memory: 512Mi
-    limits:
-      cpu: 150m
-      ephemeral-storage: 100Mi
-      memory: 768Mi
-  initResources:
-    requests:
-      cpu: 50m
-      ephemeral-storage: 10Mi
-      memory: 512Mi
-    limits:
-      cpu: 150m
-      ephemeral-storage: 100Mi
-      memory: 768Mi
-  config:
-    opensearch.yml: |
-      cluster.name: search-db
-      network.host: 0.0.0.0
-      plugins:
-        security:
-          ssl:
-            transport:
-              pemcert_filepath: tls/tls.crt
-              pemkey_filepath: tls/tls.key
-              pemtrustedcas_filepath: tls/ca.crt
-              enforce_hostname_verification: false
-            http:
-              #enabled: true # uncomment to force ssl connections
-              pemcert_filepath: tls/tls.crt
-              pemkey_filepath: tls/tls.key
-              pemtrustedcas_filepath: tls/ca.crt
-          allow_unsafe_democertificates: false
-          allow_default_init_securityindex: true
-          authcz:
-            admin_dn:
-              - CN=search-db
-          nodes_dn:
-            - CN=search-db
-          audit.type: internal_opensearch
-          enable_snapshot_restore_privilege: true
-          check_snapshot_restore_write_privileges: true
-          restapi:
-            roles_enabled: [ "all_access", "security_rest_api_access" ]
-          system_indices:
-            enabled: true
-            indices:
-              [
-                ".opendistro-alerting-config",
-                ".opendistro-alerting-alert*",
-                ".opendistro-anomaly-results*",
-                ".opendistro-anomaly-detector*",
-                ".opendistro-anomaly-checkpoints",
-                ".opendistro-anomaly-detection-state",
-                ".opendistro-reports-*",
-                ".opendistro-notifications-*",
-                ".opendistro-notebooks",
-                ".opendistro-asynchronous-search-response*",
-              ]
+    adminUsername: admin
+    adminPassword: admin
+  ## @param searchdb.clusterName The cluster name.
+  clusterName: search-db
 
 ## @section Upload Service
 
-## @param uploadservice.enabled Enable the Upload Service.
-## @skip uploadservice.fullnameOverride
-## @skip uploadservice.image
-## @skip uploadservice.containerArgs
-## @skip uploadservice.envFrom
-## @param uploadservice.replicaCount The number of replicas.
-##
 uploadservice:
+  ## @param uploadservice.enabled Enable the Upload Service.
   enabled: true
+  ## @skip uploadservice.fullnameOverride
   fullnameOverride: upload-service
+  ## @skip uploadservice.image
   image:
     repository: tusproject/tusd
     tag: v1.12
+  ## @skip uploadservice.securityContext
+  securityContext:
+    allowPrivilegeEscalation: false
+    runAsUser: 1000
+    runAsGroup: 1000
+    runAsNonRoot: true
+    seccompProfile:
+      type: RuntimeDefault
+    capabilities:
+      drop:
+        - ALL
+  ## @skip uploadservice.containerArgs
   containerArgs:
-    - "--base-path=/api/upload/files/"
-    - "-s3-endpoint=https://sos-at-vie-1.exo.io"
-    - "-s3-bucket=s3-bucket-dbrepo-upload"
+    - "-behind-proxy"
+    - "-max-size=2000000000"
+    - "-base-path=/api/upload/files/"
+    - "-s3-endpoint=http://storage-service-s3:8333"
+    - "-s3-bucket=dbrepo-upload"
+  ## @skip uploadservice.envFrom
+  envFrom:
+    - secretRef:
+        name: upload-service-secret
+  ## @param uploadservice.replicaCount The number of replicas.
   replicaCount: 2
 
 ## @section Broker Service
 
-## @param brokerservice.enabled Enable the Broker Service.
-## @skip brokerservice.fullnameOverride
-## @skip brokerservice.image
-## @param brokerservice.endpoint The management api endpoint for the microservices.
-## @param brokerservice.host The hostname for the microservices.
-## @param brokerservice.port The port for the microservices.
-## @param brokerservice.virtualHost The default virtual host name.
-## @param brokerservice.queueName The default queue name.
-## @param brokerservice.exchangeName The default exchange name.
-## @param brokerservice.routingKey The default routing key binding from the default queue to the default exchange.
-## @param brokerservice.connectionTimeout The connection timeout in ms.
-## @skip brokerservice.auth
-## @skip brokerservice.extraConfiguration
-## @skip brokerservice.loadDefinition
-## @skip brokerservice.extraVolumes
-## @skip brokerservice.extraPlugins
-## @param brokerservice.persistence.enabled Enable persistent storage. Requires PV-provisioner.
-## @skip brokerservice.service
-## @param brokerservice.replicaCount The number of replicas.
-##
 brokerservice:
+  ## @param brokerservice.enabled Enable the Broker Service.
   enabled: true
+  ## @skip brokerservice.fullnameOverride
   fullnameOverride: broker-service
   image:
+    ## @param brokerservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: true
+  ## @param brokerservice.endpoint The management api endpoint for the microservices.
   endpoint: http://broker-service:15672
+  ## @param brokerservice.host The hostname for the microservices.
   host: broker-service
+  ## @param brokerservice.port The port for the microservices.
   port: 5672
+  ## @param brokerservice.virtualHost The default virtual host name.
   virtualHost: dbrepo
+  ## @param brokerservice.queueName The default queue name.
   queueName: dbrepo
+  ## @param brokerservice.exchangeName The default exchange name.
   exchangeName: dbrepo
+  ## @param brokerservice.routingKey The default routing key binding from the default queue to the default exchange.
   routingKey: dbrepo.#
+  ## @param brokerservice.connectionTimeout The connection timeout in ms.
   connectionTimeout: 60000
   rbac:
     create: false
+  ldap:
+    ## @skip brokerservice.ldap.enabled
+    enabled: true
+    ## @skip brokerservice.ldap.authorisationEnabled
+    authorisationEnabled: true
+    ## @skip brokerservice.ldap.servers
+    servers:
+      - identity-service
+    ## @skip brokerservice.ldap.port
+    port: 389
+    ## @param brokerservice.ldap.binddn The domain name the broker service should bind to. In many cases this is the admin user from `identityservice.global.adminUser`.
+    binddn: cn=admin,dc=dbrepo,dc=at
+    ## @param brokerservice.ldap.bindpw The password to bind on the identity service. In many cases this value is equal to `identityservice.global.adminPassword`.
+    bindpw: admin
+    ## @param brokerservice.ldap.uidField The field containing the user id.
+    uidField: uid
+    ## @param brokerservice.ldap.basedn The base domain name containing the users.
+    basedn: ou=users,dc=dbrepo,dc=at
+    ## @param brokerservice.ldap.userDnPattern The pattern to determine the user.
+    userDnPattern: ${username}
   auth:
+    ## @skip brokerservice.auth.tls
     tls:
       enabled: false
       sslOptionsVerify: true
       failIfNoPeerCert: true
       existingSecret: ingress-cert
-    username: broker
-    password: broker
-  extraConfiguration: |-
-    default_vhost = dbrepo
-    default_user_tags.administrator = true
-    default_permissions.configure = .*
-    default_permissions.read = .*
-    default_permissions.write = .*
-    load_definitions = /app/load_definition.json
-    log.console = true
-    listeners.tcp.1 = 0.0.0.0:5672
-    auth_backends.1 = rabbit_auth_backend_oauth2
-    auth_backends.2 = rabbit_auth_backend_internal
-    auth_oauth2.resource_server_id = rabbitmq
-    auth_oauth2.preferred_username_claims.1 = client_id
-    auth_oauth2.default_key = t2OCeCheJ9uwoBbNQjG_nN6WKiLcceTIAZmiTbGODFM
-    auth_oauth2.signing_keys.t2OCeCheJ9uwoBbNQjG_nN6WKiLcceTIAZmiTbGODFM = /app/cert.pem
-    auth_oauth2.signing_keys.id2 = /app/pubkey.pem
-    auth_oauth2.algorithms.1 = HS256
-    auth_oauth2.algorithms.2 = RS256
-    management.oauth_enabled = true
-    management.oauth_client_id = rabbitmq-client
-    management.oauth_client_secret = JEC2FexxrX4N65fLeDGukAl6R3Lc9y0u
-    management.oauth_scopes = openid
-    management.oauth_provider_url = https://example.com/api/auth/realms/dbrepo
+  ## @skip brokerservice.advancedConfigurationExistingSecret
+  advancedConfigurationExistingSecret: broker-service-secret
+  ## @skip brokerservice.loadDefinition
   loadDefinition:
     enabled: true
     existingSecret: broker-service-secret
-  extraVolumes:
-    - name: secret-map
-      secret:
-        secretName: broker-service-secret
-  extraPlugins: rabbitmq_prometheus rabbitmq_auth_backend_oauth2 rabbitmq_auth_mechanism_ssl
+  ## @param brokerservice.extraPlugins The list of plugins to be activated.
+  extraPlugins: rabbitmq_prometheus rabbitmq_auth_backend_ldap rabbitmq_auth_mechanism_ssl
   persistence:
+    ## @param brokerservice.persistence.enabled If set to true, a PVC will be created.
     enabled: false
+  ## @skip brokerservice.service
   service:
     type: ClusterIP
     managerPortEnabled: true
     # loadBalancerIP:
-  resources:
-    requests:
-      cpu: 50m
-      ephemeral-storage: 10Mi
-      memory: 512Mi
-    limits:
-      cpu: 300m
-      ephemeral-storage: 100Mi
-      memory: 768Mi
-  replicaCount: 2
+  ## @param brokerservice.replicaCount The number of replicas.
+  replicaCount: 1
 
 ## @section Analyse Service
 
-## @param analyseservice.enabled Enable the Broker Service.
-## @skip analyseservice.image
-## @param analyseservice.endpoint The url of the endpoint.
-## @param analyseservice.s3.endpoint The S3-capable endpoint the microservice connects to.
-## @param analyseservice.replicaCount The number of replicas.
-##
 analyseservice:
+  ## @param analyseservice.enabled Enable the Broker Service.
   enabled: true
   image:
-    name: s210.dl.hpc.tuwien.ac.at/dbrepo/analyse-service:1.4.4
+    ## @skip analyseservice.image.name
+    name: registry.datalab.tuwien.ac.at/dbrepo/analyse-service:1.4.5
+    ## @skip analyseservice.image.pullPolicy
     pullPolicy: Always
+    ## @param analyseservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: false
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
+  podSecurityContext:
+    ## @param analyseservice.podSecurityContext.enabled Enable pods' Security Context
+    enabled: true
+    ## @param analyseservice.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
+    fsGroupChangePolicy: Always
+    ## @param analyseservice.podSecurityContext.sysctls Set kernel settings using the sysctl interface
+    sysctls: [ ]
+    ## @param analyseservice.podSecurityContext.supplementalGroups Set filesystem extra groups
+    supplementalGroups: [ ]
+    ## @param analyseservice.podSecurityContext.fsGroup Set RabbitMQ pod's Security Context fsGroup
+    fsGroup: 1001
+  containerSecurityContext:
+    ## @param analyseservice.containerSecurityContext.enabled Enabled containers' Security Context
+    enabled: true
+    ## @param analyseservice.containerSecurityContext.seLinuxOptions Set SELinux options in container
+    seLinuxOptions: { }
+    ## @param analyseservice.containerSecurityContext.runAsUser Set RabbitMQ containers' Security Context runAsUser
+    runAsUser: 1001
+    ## @param analyseservice.containerSecurityContext.runAsGroup Set RabbitMQ containers' Security Context runAsGroup
+    runAsGroup: 1001
+    ## @param analyseservice.containerSecurityContext.runAsNonRoot Set RabbitMQ container's Security Context runAsNonRoot
+    runAsNonRoot: true
+    ## @param analyseservice.containerSecurityContext.allowPrivilegeEscalation Set container's privilege escalation
+    allowPrivilegeEscalation: false
+    ## @param analyseservice.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
+    readOnlyRootFilesystem: false
+    capabilities:
+      ## @param analyseservice.containerSecurityContext.capabilities.drop Set container's Security Context runAsNonRoot
+      drop: [ "ALL" ]
+    seccompProfile:
+      ## @param analyseservice.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
+      type: "RuntimeDefault"
+  ## @skip analyseservice.resources
+  resources:
+    requests:
+      cpu: 250m
+      memory: 512Mi
+    limits:
+      cpu: 500m
+      memory: 2048Mi
+
+  ## @param analyseservice.endpoint The url of the endpoint.
   endpoint: http://analyse-service
+  s3:
+    ## @param analyseservice.s3.endpoint The S3-capable endpoint the microservice connects to.
+    endpoint: http://storage-service-s3:8333
+  ## @param analyseservice.replicaCount The number of replicas.
   replicaCount: 2
 
 ## @section Metadata Service
 
-## @param metadataservice.enabled Enable the Metadata Service.
-## @skip metadataservice.image
-## @param metadataservice.endpoint The Metadata Service endpoint.
-## @param metadataservice.admin.email The OAI-PMH exposed admin e-mail.
-## @param metadataservice.deletedRecord The OAI-PMH exposed delete policy.
-## @param metadataservice.repositoryName The OAI-PMH exposed repository name.
-## @param metadataservice.granularity The OAI-PMH exposed record granularity.
-## @param metadataservice.datacite.enabled Enable the DataCite account for minting DOIs.
-## @param metadataservice.datacite.url The DataCite api endpoint url.
-## @param metadataservice.datacite.prefix The DataCite prefix.
-## @param metadataservice.datacite.username The DataCite api username.
-## @param metadataservice.datacite.password The DataCite api user password.
-## @param metadataservice.sparql.connectionTimeout The connection timeout for sparql queries fetching remote data in ms.
-## @param metadataservice.s3.endpoint The S3-capable endpoint the microservice connects to.
-## @skip metadataservice.s3.bucket
-## @param metadataservice.s3.auth.username The S3-capable endpoint username (or access key id).
-## @param metadataservice.s3.auth.password The S3-capable endpoint user password (or access key secret).
-## @param metadataservice.replicaCount The number of replicas.
-##
 metadataservice:
+  ## @param metadataservice.enabled Enable the Broker Service.
   enabled: true
   image:
-    name: s210.dl.hpc.tuwien.ac.at/dbrepo/metadata-service:1.4.4
+    ## @skip metadataservice.image.name
+    name: registry.datalab.tuwien.ac.at/dbrepo/metadata-service:1.4.5
+    ## @skip metadataservice.image.pullPolicy
     pullPolicy: Always
+    ## @param metadataservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: false
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
+  podSecurityContext:
+    ## @param metadataservice.podSecurityContext.enabled Enable pods' Security Context
+    enabled: true
+    ## @param metadataservice.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
+    fsGroupChangePolicy: Always
+    ## @param metadataservice.podSecurityContext.sysctls Set kernel settings using the sysctl interface
+    sysctls: [ ]
+    ## @param metadataservice.podSecurityContext.supplementalGroups Set filesystem extra groups
+    supplementalGroups: [ ]
+    ## @param metadataservice.podSecurityContext.fsGroup Set RabbitMQ pod's Security Context fsGroup
+    fsGroup: 1001
+  containerSecurityContext:
+    ## @param metadataservice.containerSecurityContext.enabled Enabled containers' Security Context
+    enabled: true
+    ## @param metadataservice.containerSecurityContext.seLinuxOptions Set SELinux options in container
+    seLinuxOptions: { }
+    ## @param metadataservice.containerSecurityContext.runAsUser Set RabbitMQ containers' Security Context runAsUser
+    runAsUser: 1001
+    ## @param metadataservice.containerSecurityContext.runAsGroup Set RabbitMQ containers' Security Context runAsGroup
+    runAsGroup: 1001
+    ## @param metadataservice.containerSecurityContext.runAsNonRoot Set RabbitMQ container's Security Context runAsNonRoot
+    runAsNonRoot: true
+    ## @param metadataservice.containerSecurityContext.allowPrivilegeEscalation Set container's privilege escalation
+    allowPrivilegeEscalation: false
+    ## @param metadataservice.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
+    readOnlyRootFilesystem: false
+    capabilities:
+      ## @param metadataservice.containerSecurityContext.capabilities.drop Set container's Security Context runAsNonRoot
+      drop: [ "ALL" ]
+    seccompProfile:
+      ## @param metadataservice.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
+      type: "RuntimeDefault"
+  ## @skip metadataservice.resources
+  resources:
+    requests:
+      cpu: 250m
+      memory: 512Mi
+    limits:
+      cpu: 1000m
+      memory: 2048Mi
+  ## @param metadataservice.endpoint The Metadata Service endpoint.
   endpoint: http://metadata-service
+  crossref:
+    ## @param metadataservice.crossref.endpoint The CrossRef endpoint.
+    endpoint: http://data.crossref.org
+  ror:
+    ## @param metadataservice.ror.endpoint The ROR endpoint.
+    endpoint: https://api.ror.org
   admin:
+    ## @param metadataservice.admin.email The OAI-PMH exposed e-mail for contacting the metadata records responsible person.
     email: noreply@example.com
+  ## @param metadataservice.deletedRecord The OAI-PMH exposed delete policy.
   deletedRecord: permanent
+  ## @param metadataservice.repositoryName The OAI-PMH exposed repository name.
   repositoryName: Database Repository
+  ## @param metadataservice.granularity The OAI-PMH exposed record granularity.
   granularity: YYYY-MM-DDThh:mm:ssZ
   datacite:
+    ## @param metadataservice.datacite.enabled If set to true, the service mints DOIs instead of local PIDs.
     enabled: false
+    ## @param metadataservice.datacite.url The DataCite api endpoint url.
     url: https://api.datacite.org
+    ## @param metadataservice.datacite.prefix The DataCite prefix.
     prefix: ""
+    ## @param metadataservice.datacite.username The DataCite api username.
     username: ""
+    ## @param metadataservice.datacite.password The DataCite api user password.
     password: ""
   sparql:
+    ## @param metadataservice.sparql.connectionTimeout The connection timeout for sparql queries fetching remote data in ms.
     connectionTimeout: 10000
+  s3:
+    ## @param metadataservice.s3.endpoint The S3-capable endpoint the microservice connects to.
+    endpoint: http://storage-service-s3:8333
+    ## @skip metadataservice.s3.bucket
+    bucket:
+      import: dbrepo-upload
+      export: dbrepo-download
+    auth:
+      ## @param metadataservice.s3.auth.username The S3-capable endpoint username (or access key id).
+      username: seaweedfsadmin
+      ## @param metadataservice.s3.auth.password The S3-capable endpoint user password (or access key secret).
+      password: seaweedfsadmin
+  ## @param metadataservice.replicaCount The number of replicas.
   replicaCount: 2
 
 ## @section Data Service
 
-## @param dataservice.enabled Enable the Metadata Service.
-## @param dataservice.endpoint The endpoint for the microservices.
-## @skip dataservice.image
-## @param dataservice.grant.read The default database permissions for users with read access.
-## @param dataservice.grant.write The default database permissions for users with write access.
-## @param dataservice.default.date The default date format id for dates.
-## @param dataservice.default.time The default date format id for times.
-## @param dataservice.default.timestamp The default date format id for timestamps.
-## @param dataservice.s3.endpoint The S3-capable endpoint the microservice connects to.
-## @skip dataservice.s3.bucket
-## @param dataservice.s3.auth.username The S3-capable endpoint username (or access key id).
-## @param dataservice.s3.auth.password The S3-capable endpoint user password (or access key secret).
-## @param dataservice.s3.filePath The local location to download/upload files from/to S3-capable endpoint.
-## @param dataservice.consumerConcurrentMin The minimum broker service consumer number.
-## @param dataservice.consumerConcurrentMax The maximum broker service consumer number.
-## @param dataservice.requeueRejected Enable re-queueing of rejected messages to the broker service.
-## @param dataservice.replicaCount The number of replicas.
-##
 dataservice:
+  ## @param dataservice.enabled Enable the Broker Service.
   enabled: true
+  ## @param dataservice.endpoint Absolute URL to the data service in the form of http://host:port
   endpoint: http://data-service
   image:
-    name: s210.dl.hpc.tuwien.ac.at/dbrepo/data-service:1.4.4
+    ## @skip dataservice.image.name
+    name: registry.datalab.tuwien.ac.at/dbrepo/data-service:1.4.5
+    ## @skip dataservice.image.pullPolicy
     pullPolicy: Always
+    ## @param dataservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: false
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
+  podSecurityContext:
+    ## @param dataservice.podSecurityContext.enabled Enable pods' Security Context
+    enabled: true
+    ## @param dataservice.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
+    fsGroupChangePolicy: Always
+    ## @param dataservice.podSecurityContext.sysctls Set kernel settings using the sysctl interface
+    sysctls: [ ]
+    ## @param dataservice.podSecurityContext.supplementalGroups Set filesystem extra groups
+    supplementalGroups: [ ]
+    ## @param dataservice.podSecurityContext.fsGroup Set RabbitMQ pod's Security Context fsGroup
+    fsGroup: 1001
+  containerSecurityContext:
+    ## @param dataservice.containerSecurityContext.enabled Enabled containers' Security Context
+    enabled: true
+    ## @param dataservice.containerSecurityContext.seLinuxOptions Set SELinux options in container
+    seLinuxOptions: { }
+    ## @param dataservice.containerSecurityContext.runAsUser Set RabbitMQ containers' Security Context runAsUser
+    runAsUser: 1001
+    ## @param dataservice.containerSecurityContext.runAsGroup Set RabbitMQ containers' Security Context runAsGroup
+    runAsGroup: 1001
+    ## @param dataservice.containerSecurityContext.runAsNonRoot Set RabbitMQ container's Security Context runAsNonRoot
+    runAsNonRoot: true
+    ## @param dataservice.containerSecurityContext.allowPrivilegeEscalation Set container's privilege escalation
+    allowPrivilegeEscalation: false
+    ## @param dataservice.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
+    readOnlyRootFilesystem: false
+    capabilities:
+      ## @param dataservice.containerSecurityContext.capabilities.drop Set container's Security Context runAsNonRoot
+      drop: [ "ALL" ]
+    seccompProfile:
+      ## @param dataservice.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
+      type: "RuntimeDefault"
+  ## @skip dataservice.resources
   grant:
+    ## @param dataservice.grant.read The default database permissions for users with read access.
     read: SELECT
+    ## @param dataservice.grant.write The default database permissions for users with write access.
     write: SELECT, CREATE, CREATE VIEW, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, INDEX, TRIGGER, INSERT, UPDATE, DELETE
   default:
+    ## @param dataservice.default.date The default date format id for dates. Default: YYYY-MM-dd (e.g. 2024-06-15).
     date: 3
+    ## @param dataservice.default.time The default date format id for times. Default: HH:mm:ss (e.g. 14:23:42).
     time: 4
+    ## @param dataservice.default.timestamp The default date format id for timestamps. Default: YYYY-MM-dd HH:mm:ss (e.g. 2024-06-15 14:23:42).
     timestamp: 1
-  s3FilePath: /s3
-  consumerConcurrentMin: 1
-  consumerConcurrentMax: 5
-  requeueRejected: false
+  rabbitmq:
+    ## @param dataservice.rabbitmq.consumerConcurrentMin The minimal number of RabbitMQ consumers.
+    consumerConcurrentMin: 2
+    ## @param dataservice.rabbitmq.consumerConcurrentMax The maximal number of RabbitMQ consumers.
+    consumerConcurrentMax: 6
+    ## @param dataservice.rabbitmq.requeueRejected If set to true, rejected tuples will be re-queued.
+    requeueRejected: false
+    consumer:
+      ## @param dataservice.rabbitmq.consumer.username The username for the consumer to read tuples from the broker service. In many cases this value is equal to `identityservice.users`.
+      username: admin
+      ## @param dataservice.rabbitmq.consumer.password The user password for the consumer to read tuples from the broker service. In many cases this value is equal to `identityservice.userPasswords`.
+      password: admin
+  s3:
+    ## @param dataservice.s3.endpoint The S3-capable endpoint the microservice connects to.
+    endpoint: http://storage-service-s3:8333
+    ## @param dataservice.s3.bucket The S3 bucket name.
+    bucket:
+      import: dbrepo-upload
+      export: dbrepo-download
+    auth:
+      ## @param dataservice.s3.auth.username The S3-capable endpoint username (or access key id).
+      username: seaweedfsadmin
+      ## @param dataservice.s3.auth.password The S3-capable endpoint user password (or access key secret).
+      password: seaweedfsadmin
+    ## @param dataservice.s3.filePath The local location to download/upload files from/to S3-capable endpoint.
+    filePath: /s3
+  ## @param dataservice.replicaCount The number of replicas.
   replicaCount: 2
 
 ## @section Search Service
 
-## @param searchservice.enabled Enable the Search Service.
-## @param searchservice.endpoint The endpoint for the microservices.
-## @skip searchservice.image
-## @skip searchservice.init
-## @param searchservice.replicaCount The number of replicas.
-##
 searchservice:
+  ## @param searchservice.enabled Enable the Broker Service.
   enabled: true
+  ## @param searchservice.endpoint Absolute URL to the search service in the form of http://host:port
   endpoint: http://search-service
   image:
-    name: s210.dl.hpc.tuwien.ac.at/dbrepo/search-service:1.4.4
+    ## @skip searchservice.image.name
+    name: registry.datalab.tuwien.ac.at/dbrepo/search-service:1.4.5
+    ## @skip searchservice.image.pullPolicy
     pullPolicy: Always
+    ## @param searchservice.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: false
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
+  podSecurityContext:
+    ## @param searchservice.podSecurityContext.enabled Enable pods' Security Context
+    enabled: true
+    ## @param searchservice.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
+    fsGroupChangePolicy: Always
+    ## @param searchservice.podSecurityContext.sysctls Set kernel settings using the sysctl interface
+    sysctls: [ ]
+    ## @param searchservice.podSecurityContext.supplementalGroups Set filesystem extra groups
+    supplementalGroups: [ ]
+    ## @param searchservice.podSecurityContext.fsGroup Set RabbitMQ pod's Security Context fsGroup
+    fsGroup: 1001
+  containerSecurityContext:
+    ## @param searchservice.containerSecurityContext.enabled Enabled containers' Security Context
+    enabled: true
+    ## @param searchservice.containerSecurityContext.seLinuxOptions Set SELinux options in container
+    seLinuxOptions: { }
+    ## @param searchservice.containerSecurityContext.runAsUser Set RabbitMQ containers' Security Context runAsUser
+    runAsUser: 1001
+    ## @param searchservice.containerSecurityContext.runAsGroup Set RabbitMQ containers' Security Context runAsGroup
+    runAsGroup: 1001
+    ## @param searchservice.containerSecurityContext.runAsNonRoot Set RabbitMQ container's Security Context runAsNonRoot
+    runAsNonRoot: true
+    ## @param searchservice.containerSecurityContext.allowPrivilegeEscalation Set container's privilege escalation
+    allowPrivilegeEscalation: false
+    ## @param searchservice.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
+    readOnlyRootFilesystem: true
+    capabilities:
+      ## @param searchservice.containerSecurityContext.capabilities.drop Set container's Security Context runAsNonRoot
+      drop: [ "ALL" ]
+    seccompProfile:
+      ## @param searchservice.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
+      type: "RuntimeDefault"
+  ## @skip searchservice.resources
+  resources:
+    requests:
+      cpu: 250m
+      memory: 512Mi
+    limits:
+      cpu: 1000m
+      memory: 2048Mi
+  ## @skip searchservice.init
   init:
     image:
-      name: s210.dl.hpc.tuwien.ac.at/dbrepo/search-service-init:1.4.4
+      name: registry.datalab.tuwien.ac.at/dbrepo/search-service-init:1.4.5
       pullPolicy: Always
+  ## @param searchservice.replicaCount The number of replicas.
   replicaCount: 2
 
+## @section Storage Service
+
+storageservice:
+  ## @param storageservice.enabled Enable the Storage Service.
+  enabled: true
+  ## @skip storageservice.fullnameOverride
+  fullnameOverride: storage-service
+  mariadb:
+    ## @skip storageservice.mariadb.fullnameOverride
+    fullnameOverride: storage-service-db
+    ## @skip storageservice.mariadb.enabled
+    enabled: true
+  master:
+    ## @skip storageservice.master.enabled
+    enabled: true
+  filer:
+    ## @param storageservice.filer.enabled Enable the storage service filer which is required for S3.
+    enabled: true
+  volume:
+    ## @skip storageservice.volume.enabled
+    enabled: false
+  s3:
+    ## @skip storageservice.s3.enabled
+    enabled: true
+    ## @param storageservice.s3.replicaCount The number of replicas.
+    replicaCount: 2
+    ## @param storageservice.s3.bucket The S3-bucket name.
+    bucket:
+      import: dbrepo-upload
+      export: dbrepo-download
+    auth:
+      ## @param storageservice.s3.auth.enabled Enable the S3 service.
+      enabled: true
+      ## @param storageservice.s3.auth.adminAccessKeyId The S3 access key id for the admin user. In some systems this is named `username`.
+      adminAccessKeyId: seaweedfsadmin
+      ## @param storageservice.s3.auth.adminSecretAccessKey The S3 secret access key for the admin user. In some systems this is named `password`.
+      adminSecretAccessKey: seaweedfsadmin
+  ## @skip storageservice.init
+  init:
+    image: registry.datalab.tuwien.ac.at/dbrepo/storage-service-init:1.4.5
+    pullPolicy: Always
+
+## @section Identity Service
+
+identityservice:
+  ## @param identityservice.enabled Enable the Identity Service.
+  enabled: true
+  ## @skip identityservice.fullnameOverride
+  fullnameOverride: identity-service
+  global:
+    ## @param identityservice.global.ldapDomain The LDAP domain name in domain "dbrepo.at" form or explicit in "dc=dbrepo,dc=at" form.
+    ldapDomain: dc=dbrepo,dc=at
+    ## @param identityservice.global.adminUser The admin username that is used to bind.
+    adminUser: admin
+    ## @param identityservice.global.adminPassword The admin user password that is used to bind.
+    adminPassword: admin
+    ## @skip identityservice.global.configUserEnabled
+    configUserEnabled: false
+  ## @param identityservice.users The admin username for internal authentication.
+  users: admin
+  ## @param identityservice.userPasswords The admin user password for internal authentication.
+  userPasswords: admin
+  ## @param identityservice.group The group that contains the administrators for the broker service.
+  group: system
+  ## @skip identityservice.ltb-passwd
+  ltb-passwd:
+    ingress:
+      enabled: false
+  ## @skip identityservice.phpldapadmin
+  phpldapadmin:
+    enabled: false
+  ## @skip identityservice.customSchemaFiles
+  customSchemaFiles:
+    00-memberof.ldif: |-
+      dn: cn=module,cn=config
+      cn: module
+      objectClass: olcModuleList
+      olcModuleLoad: memberof
+      olcModulePath: /opt/bitnami/openldap/lib/openldap
+
+      dn: olcOverlay=memberof,olcDatabase={2}mdb,cn=config
+      changetype: add
+      objectClass: olcOverlayConfig
+      objectClass: olcMemberOf
+      olcOverlay: memberof
+      olcMemberOfRefint: TRUE
+  persistence:
+    ## @param identityservice.persistence.enabled If set to true, a PVC will be created.
+    enabled: true
+  replication:
+    ## @param identityservice.replication.enabled If set to true, the pods required a cluster. Needs `replicaCount` to be `3` or higher (of 2n+1).
+    enabled: false
+  ## @param identityservice.replicaCount The number of replicas. If `replicaCount` is set to more than 1, requires `replication.enabled` to be `true`.
+  replicaCount: 1
+
 ## @section User Interface
 
-## @param ui.enabled Enable the User Interface.
-## @skip ui.image
-## @param ui.public.api.client The endpoint for the client api.
-## @param ui.public.api.server The endpoint for the server api.
-## @param ui.public.title The user interface title.
-## @param ui.public.logo The user interface logo.
-## @param ui.public.icon The user interface icon.
-## @param ui.public.touch The user interface apple touch icon.
-## @param ui.public.broker.host The displayed broker hostname.
-## @param ui.public.broker.port.5671 Enable display of the broker 5671 port and mark it as secure (SSL/TLS).
-## @param ui.public.broker.port.5672 Enable display of the broker 5672 port and mark it as insecure (no SSL/TLS).
-## @param ui.public.broker.extra Extra metadata displayed.
-## @param ui.public.database.extra Extra metadata displayed.
-## @skip ui.public.links
-## @param ui.public.pid.default.publisher The default dataset publisher for persisted identifiers.
-## @param ui.public.doi.enabled Enable the display that DOIs are minted.
-## @param ui.public.doi.endpoint The DOI proxy.
-## @param ui.replicaCount The number of replicas.
-## @skip ui.extraVolumes
-## @skip ui.extraVolumeMounts
-##
 ui:
+  ## @param ui.enabled Enable the Broker Service.
   enabled: true
   image:
-    name: s210.dl.hpc.tuwien.ac.at/dbrepo/ui:1.4.4
+    ## @skip ui.image.name
+    name: registry.datalab.tuwien.ac.at/dbrepo/ui:1.4.5
+    ## @skip ui.image.pullPolicy
     pullPolicy: Always
+    ## @param ui.image.debug Set the logging level to `trace`. Otherwise, set to `info`.
     debug: false
+  ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-pod
+  podSecurityContext:
+    ## @param ui.podSecurityContext.enabled Enable pods' Security Context
+    enabled: true
+    ## @param ui.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
+    fsGroupChangePolicy: Always
+    ## @param ui.podSecurityContext.sysctls Set kernel settings using the sysctl interface
+    sysctls: [ ]
+    ## @param ui.podSecurityContext.supplementalGroups Set filesystem extra groups
+    supplementalGroups: [ ]
+    ## @param ui.podSecurityContext.fsGroup Set RabbitMQ pod's Security Context fsGroup
+    fsGroup: 1001
+  containerSecurityContext:
+    ## @param ui.containerSecurityContext.enabled Enabled containers' Security Context
+    enabled: true
+    ## @param ui.containerSecurityContext.seLinuxOptions Set SELinux options in container
+    seLinuxOptions: { }
+    ## @param ui.containerSecurityContext.runAsUser Set RabbitMQ containers' Security Context runAsUser
+    runAsUser: 1001
+    ## @param ui.containerSecurityContext.runAsGroup Set RabbitMQ containers' Security Context runAsGroup
+    runAsGroup: 1001
+    ## @param ui.containerSecurityContext.runAsNonRoot Set RabbitMQ container's Security Context runAsNonRoot
+    runAsNonRoot: true
+    ## @param ui.containerSecurityContext.allowPrivilegeEscalation Set container's privilege escalation
+    allowPrivilegeEscalation: false
+    ## @param ui.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
+    readOnlyRootFilesystem: false
+    capabilities:
+      ## @param ui.containerSecurityContext.capabilities.drop Set container's Security Context runAsNonRoot
+      drop: [ "ALL" ]
+    seccompProfile:
+      ## @param ui.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
+      type: "RuntimeDefault"
+  ## @skip ui.resources
+  resources:
+    requests:
+      cpu: 250m
+      memory: 512Mi
+    limits:
+      cpu: 1000m
+      memory: 2048Mi
   public:
     api:
+      ## @param ui.public.api.client The endpoint for the client api. Defaults to the value of `gateway`.
       client: ""
+      ## @param ui.public.api.server The endpoint for the server api. Defaults to the value of `gateway`.
       server: ""
+    upload:
+      ## @param ui.public.upload.client The endpoint for the upload client. Defaults to the value of `gateway` and path `/api/upload/files`.
+      client: ""
+    ## @param ui.public.title The user interface title.
     title: "Database Repository"
+    ## @param ui.public.logo The user interface logo.
     logo: "/logo.svg"
+    ## @param ui.public.icon The user interface icon.
     icon: "/favicon.ico"
+    ## @param ui.public.touch The user interface apple touch icon.
     touch: "/apple-touch-icon.png"
     broker:
+      ## @param ui.public.broker.host The displayed broker hostname.
       host: example.com
       port:
+        ## @param ui.public.broker.port.5671 Enable display of the broker 5671 port and mark it as secure (SSL/TLS).
         5671: true
+        ## @param ui.public.broker.port.5672 Enable display of the broker 5672 port and mark it as insecure (no SSL/TLS).
         5672: false
+      ## @param ui.public.broker.extra Extra metadata displayed.
       extra: ""
     database:
+      ## @param ui.public.database.extra Extra metadata displayed.
       extra: "128.130.0.0/15"
+    ## @skip ui.public.links
     links:
       rabbitmq:
         text: RabbitMQ Admin
@@ -717,48 +835,57 @@ ui:
         href: /api/auth/
     pid:
       default:
+        ## @param ui.public.pid.default.publisher The default dataset publisher for persisted identifiers.
         publisher: "Example University"
     doi:
+      ## @param ui.public.doi.enabled Enable the display that DOIs are minted.
       enabled: false
+      ## @param ui.public.doi.endpoint The DOI proxy.
       endpoint: https://doi.org
+  ## @param ui.replicaCount The number of replicas.
   replicaCount: 2
-  extraVolumes: []
+  ## @skip ui.extraVolumes
+  extraVolumes: [ ]
   #  - name: images-map
   #    configMap:
   #      name: ui-config
-  extraVolumeMounts: []
+  ## @skip ui.extraVolumeMounts
+  extraVolumeMounts: [ ]
   #  - name: images-map
   #    mountPath: /static/logo.svg
   #    subPath: logo.svg
 
 ## @section Ingress
 
-## @param ingress.enabled Enable the ingress.
-## @skip ingress.className
-## @skip ingress.tls
-## @skip ingress.annotations
-##
 ingress:
-  enabled: true
+  ## @param ingress.enabled Enable the ingress.
+  enabled: false
+  ## @param ingress.className The ingress class name.
   className: nginx
   tls:
+    ## @param ingress.tls.enabled Enable the ingress.
     enabled: true
+    ## @param ingress.tls.secretName The secret holding the SSL/TLS certificate. Needs to have keys `tls.crt` and `tls.key` and optionally `ca.crt`.
     secretName: ingress-cert
   annotations:
-    basic: {}
+    ## @skip ingress.annotations.basic The ingress rules for proxying requests directly to services.
+    basic: { }
     #      nginx.org/path-regex: "case_sensitive"
     #      nginx.ingress.kubernetes.io/use-regex: "true"
     #      cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
+    ## @skip ingress.annotations.rewriteApi The ingress rules for rewriting certain paths to /api/.
     rewriteApi:
       #      nginx.org/path-regex: "case_sensitive"
       #      cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
       nginx.ingress.kubernetes.io/use-regex: "true"
       nginx.ingress.kubernetes.io/rewrite-target: /api/$1
+    ## @skip ingress.annotations.rewriteRoot The ingress rules for rewriting certain paths to /.
     rewriteRoot:
       #      nginx.org/path-regex: "case_sensitive"
       #      cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
       nginx.ingress.kubernetes.io/use-regex: "true"
       nginx.ingress.kubernetes.io/rewrite-target: /$1
+    ## @skip ingress.annotations.rewriteRootSecure The ingress rules for rewriting certain paths to / and force SSL/TLS encrypted traffic.
     rewriteRootSecure:
       #      nginx.org/path-regex: "case_sensitive"
       #      cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer
@@ -766,6 +893,7 @@ ingress:
       nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
       nginx.ingress.kubernetes.io/use-regex: "true"
       nginx.ingress.kubernetes.io/rewrite-target: /$1
+    ## @skip ingress.annotations.rewritePid The ingress rules for rewriting certain paths to /api/identifier/.
     rewritePid:
       #      nginx.org/path-regex: "case_sensitive"
       #      cert-manager.io/cluster-issuer: letsencrypt-cluster-issuer