Upgrade Datalore On-Premises (Helm installation)
The instructions below explain how to upgrade Datalore On-Premises (Helm installation). The current latest version is 2025.1.
note
Important
When planning your upgrade to the latest version of Datalore, the upgrade process must be done in a sequential manner. Datalore upgrade mechanism requires you to step through each intermediate version as opposed to skipping straight to the most recent version. This is crucial to ensure the continuity, stability, and integrity of your system and data. We strongly recommend following the correct path from your current version to the desired version, acknowledging each intermediate version in the process. Failure to adhere to this can result in unforeseen compatibility issues, performance inconsistencies or data loss.
If you use a custom agent configuration, update agent images so that agent and server versions match after you upgrade Datalore.
Back up Kubernetes volumes before updating Datalore.
tip
If you use HubMake sure you upgrade Hub before upgrading Datalore.
Back up the storage and postgresql-data volumes before upgrading.
(Optional) If you're still using secrets and notebook-level SSH keys or Git repositories, make sure to migrate those that you want to keep. Follow this procedure.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.26
Back up the storage and postgresql-data volumes before upgrading.
(Optional) Make sure you have migrated from deprecated features.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.25
Back up the storage and postgresql-data volumes before upgrading.
(Optional) Make sure you have migrated from deprecated features.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.24
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.23
warning
This version includes PostgreSQL version migration from Postgres 12 to Postgres 15.
If your Datalore installation uses an external database (not the one shipped with Datalore), we advise to upgrade the database instance using the database provider preferred tooling, or to reach out to your database administrator for further guidance.
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.22
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.21
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.20
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.19
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.18
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.17
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.16
Upgrade to 2024.1 involves an internal output migration, which we strongly recommend checking by performing the following steps.
When running the updated version (2024.1) for the first time, check Datalore server logs. The logs are expected to contain lines similar to the ones in the example below.
note
Timings, thread names and number of files presented in the example will differ from yours.
12:44:03.931 INFO [OutputsMigrationEDT] j.d.o.s.i.migration.OutputsMigrationTool Files to migrate: 313 12:44:04.205 INFO [Thread-3] j.d.o.s.i.m.LoggingOutputMigrationProgressTracker Processed 4/313 (1%) file(s) 12:44:04.261 INFO [Thread-2] j.d.o.s.i.m.LoggingOutputMigrationProgressTracker Processed 7/313 (2%) file(s) ... 12:44:05.324 INFO [Thread-3] j.d.o.s.i.m.LoggingOutputMigrationProgressTracker Processed 313/313 (100%) file(s)
Check if there were any errors that occurred during the migration. Such errors will be listed as a short summary below the
Processed [n] 100% files
line. If no errors are found, no further steps need to be performed.If there are any errors, save the IDs of notebooks together with the error messages. Scroll up the logs and find and save the respective stacktraces for these errors.
Use the saved IDs to try to open the notebooks with the migration errors. If any of these notebooks fail to open, contact Datalore support providing the error message and stacktrace for each such notebook.
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.14
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Remove the following blocks under
agentsConfig
in the values.yaml file:volumeMounts: - mountPath: /etc/datalore/logback-config name: logback-config
volumes: - name: logback-config configMap: name: datalore-logback-config
Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.13
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.12
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.11
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.10
note
The updating procedure involves checkpoint migration, which will cause the first startup of the new version to take longer than usual.
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.8
note
The updating procedure involves checkpoint migration, which will cause the first startup of the new version to take longer than usual.
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.(Optional) If you built custom images based on 2023.1 agent image, remove the following line from your custom image Dockerfile before rebuilding them:
ADD --chown=datalore:datalore https://raw.githubusercontent.com/JetBrains/datalore-configs/2023.1/misc/build_code_insight_data.sh /opt/datalore/build_code_insight_data.sh
Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.7
(Optional) If you have disabled SMTP in your configs, remove the respective parameters.
Back up the storage and postgresql-data volumes before upgrading.
Execute the
helm repo update
command.Change the
dbRootPassword: XXX
parameter in the datalore.values.yaml file to:databaseSecret: password: XXX
(Optional) Change the following parameter names in the datalore.values.yaml file if you have them set:
sqlServerHost > sqlCellsApiHost sqlServerPort > sqlCellsApiPort
Restart Datalore by running the following commands:
helm uninstall datalore helm upgrade --install -f datalore.values.yaml datalore datalore/datalore --version 0.2.6
note
ImportantThe procedure assumes that you store your custom values in datalore.values.yaml, which is NOT the same as the earlier location (charts
/datalore ). See the installation guide for more details./values.yaml
Execute the
helm repo update
command.Restart Datalore by running the following commands:
helm uninstall <release_name> helm upgrade --install -f datalore.values.yaml <release_name> datalore/datalore
note
ImportantThe procedure assumes that you store your custom values in datalore.values.yaml, which is NOT the same as the earlier location (charts
/datalore )./values.yaml
Update the datalore-configs repository to the 2022.2.1 branch.
Restart Datalore by running the following commands:
helm uninstall <path_to_datalore-configs>/charts/datalore helm upgrade --install -f datalore.values.yaml <path_to_datalore-configs>/charts/datalore
Update the datalore-configs repository to the 2022.2 branch.
Change
FRONTEND_URL
toDATALORE_PUBLIC_URL
.Change the format of
dataloreEnv
to a helm map.Old format:
dataloreEnv: | export FRONTEND_URL="https://datalore.example.com" export HUB_PUBLIC_BASE_URL="https://hub.datalore.example.com/hub" export HUB_DATALORE_SERVICE_ID="XXX" export HUB_DATALORE_SERVICE_SECRET="YYY" export HUB_PERM_TOKEN="perm:ZZZ"
New format:
dataloreEnv: DATALORE_PUBLIC_URL: "https://datalore.example.com" HUB_PUBLIC_BASE_URL: "https://hub.datalore.example.com/hub" HUB_DATALORE_SERVICE_ID: "XXX" HUB_DATALORE_SERVICE_SECRET: "YYY" HUB_PERM_TOKEN: "perm:ZZZ"
note
Consider the following:
The ENABLE_PLANS
variable is unnecessary. Plans are enabled if theplansConfig
helm variable is set.
DEFAULT_PACKAGE_MANAGER="pip"
is a default setting now
DEFAULT_BASE_ENV_NAME=minimal
is a default setting now.
Starting from version 2022.2, data directories are accessible under new names. When upgrading to version 2022.2 or later, you need to manually specify the new location for the migrated data.
note
ImportantMake sure that before the procedure, you have a backup of your data.
To access the Datalore container, run the following command:
kubectl exec -it datalore-0 -c datalore -- bash
To rename the data directories in the new version:
mv /opt/data/webdav /opt/data/web-dav mv /opt/data/blobs /opt/data/blob
tip
You only need to specify the new location for one such upgrade. This procedure will not be required when upgrading from version 2022.2 and later.
Perform the steps in the collapsed section to upgrade from version 0.3.0.
Execute the following command to stop traffic to Datalore:
kubectl delete svc datalore-on-premise
Wait for approximately one minute until the running computations are stopped. Then, execute the following command:
kubectl exec -it datalore-on-premise-0 -c postgres -- psql -ddatalore -Uadmin -c 'delete from core."RunningComputationsData";'
Delete the Docker Hub token:
kubectl delete secret regcred
Continue the procedure as described below.
Delete Datalore:
kubectl delete -k ./datalore
tip
If you upgrade from 0.3.0, ignore the following message:
Error from server (NotFound): error when deleting "datalore/": services "datalore-on-premise" not found
Clone the datalore-configs repository.
Check out the 2021.1.3.5 branch.
Update Hub:
Copy the spec.template.spec.volumes values from the old hub/statefulSet.yaml file into the new one (in the new branch).
note
This is a very important step for preserving your data.
Update statefulset:
kubectl apply -k hub/
Get the Hub token and copy it:
kubectl logs service/hub
Open Hub at HUB_ROOT_URL, specify the token, and click login and, in the next window, upgrade.
Update Datalore:
Copy datalore
/configs from the old directory to the new one./volumes_config.yaml note
This is a very important step for preserving your data.
Copy datalore
/configs to the new directory./plans_config.yaml If the agent configuration was changed, copy the datalore
/configs to the new directory and change the/agents_config.yaml image:
field to the respective tag.If you used custom environments, copy datalore
/configs too./envs Copy the
ROOT_PASSWORD
value from datalore/configs to datalore/db_config.yaml /configs ./db_secret_env.txt Pay attention to the difference in format:
Old file:
apiVersion: v1 kind: ConfigMap metadata: name: datalore-on-premise-db-env data: ROOT_PASSWORD: "changeme"
New file:
ROOT_PASSWORD=changeme
Copy the variables from datalore
/configs to datalore/user_config.yaml /configs ./user_secret_env.sh Pay attention to the difference in format:
Old file:
apiVersion: v1 kind: ConfigMap metadata: name: datalore-on-premise-env data: FRONTEND_URL: "http://datalore.example.com" HUB_PUBLIC_BASE_URL: "http://hub.datalore.example.com/hub" ...
New file:
export FRONTEND_URL="http://datalore.example.com" export HUB_PUBLIC_BASE_URL="http://hub.datalore.example.com/hub" ...
note
If you have
HUB_INTERNAL_BASE_URL="http://hub:8082/hub"
in datalore/configs , you can remove the parameter. If it has a different value, copy it to user_secret_env.sh too./user_config.yaml Remove
PASSWORD_SECRET
if the file contains it.
Launch Datalore:
kubectl apply -k datalore/
Below is the table that matches Helm chart, Hub, and Datalore versions.
Datalore | Charts | Hub |
---|---|---|
2025.1 | 0.2.26 | 2024.3.56671 |
2024.5.1 | 0.2.25 | 2024.3.47197 |
2024.5 | 0.2.24 | 2024.3.47197 |
2024.4.1 | 0.2.23 | 2024.2.37269 |
2024.4 | 0.2.22 | 2024.2.37269 |
2024.3 | 0.2.21 | 2023.3.22912 |
2024.2.3 | 0.2.20 | 2023.3.22912 |
2024.2.2 | 0.2.19 | 2023.3.22912 |
2024.2.1 | 0.2.18 | 2023.3.22912 |
2024.2 | 0.2.17 | 2023.3.22912 |
2024.1 | 0.2.16 | 2023.3.22912 |
2023.6 | 0.2.14 | 2023.2.18873 |
2023.5.1 | 0.2.13 | 2023.2.18873 |
2023.5 | 0.2.12 | 2023.2.18873 |
2023.4 | 0.2.11 | 2022.3.15573 |
2023.3.1 | 0.2.10 | 2022.3.15573 |
2023.3 | 0.2.9 | 2022.3.15573 |
2023.2 | 0.2.8 | 2022.2.15039 |
2023.1 | 0.2.7 | 2022.2.15039 |
2022.3.1 | 0.2.6 | 2022.2.15039 |
2022.3 | 0.2.5 | 2022.2.15039 |
2022.2.3 | 0.2.4 | 2022.2.15039 |
2022.2.2 | 0.2.3 | 2021.1.14194 |
2022.2.1 | 0.2.2 | 2021.1.14194 |
2022.2 | 0.2.1 | 2021.1.14194 |
2022.1.1 | 0.2.0 | 2021.1.14194 |
2021.3 | 0.1.0 | 2021.1.13553 |
Thanks for your feedback!