Datalore 2025.2 Help

Using custom Postgres driver

In certain circumstances, a custom PostgreSQL driver might be required to connect to the Postgres database designated for Datalore internal usage (for example, when RDS is used and requires IAM authentication).

The corresponding JAR file(s) should be placed in the /opt/datalore/tomcat/lib/ext directory. You may either:

  • embed these files into the Datalore image (building the custom images based on jetbrains/datalore-server:2025.2

  • override Datalore startup script located at /opt/datalore/on_start.sh, so these will be downloaded on each server pod startup.

Once drivers are uploaded, the database connection string should be altered to reference a new driver:

DB_USER='datalore' DB_PASSWORD='' DB_URL='jdbc:aws-wrapper:postgresql://jdbc-wrapper-test.anbsra1by3jv.eu-west-1.rds.amazonaws.com/datalore?wrapperPlugins=failover,efm2,iam'

As a final step, the server pod should be restarted as described in this article, so the changes are applied.

Example: Overriding the startup script

  1. Create a Kubernetes manifest defining a new file:

    apiVersion: v1 kind: ConfigMap metadata: name: datalore-server-on-start data: on_start.sh: > #!/bin/bash set -e ( cd /opt/datalore/tomcat/lib/ext wget https://github.com/aws/aws-advanced-jdbc-wrapper/releases/download/2.5.4/aws-advanced-jdbc-wrapper-2.5.4.jar wget https://repo1.maven.org/maven2/software/amazon/awssdk/bundle/2.30.31/bundle-2.30.31.jar wget https://jdbc.postgresql.org/download/postgresql-42.7.5.jar )
  2. Apply the manifest to the Kubernetes cluster:

    kubectl apply -f datalore-server-on-start.yaml
  3. Adjust the Datalore server deployment to mount the ConfigMap as a volume:

    spec: containers: ... volumeMounts: - name: datalore-server-on-start mountPath: /opt/datalore/on_start.sh subPath: on_start.sh volumes: - name: datalore-server-on-start configMap: name: datalore-server-on-start
  4. Restart the Datalore server pod, as described in lifecycle management article.

Last modified: 24 March 2025