Helm-specific instructions
Configure Helm installation of Datalore Enterprise
Modify the following Helm values in the datalore.values.yaml chart.
- dataloreEnv
Editing fields under this key is mandatory to get everything working. The format is as follows:
dataloreEnv: KEY_NAME: "key_value" ...Mandatory parameters
DATALORE_PUBLIC_URLURL by which Datalore is accessed (
DATALORE_ROOT_URL). It is used to generate links.HUB_PUBLIC_BASE_URLBase public (accessible via browser) URL of your Hub installation (
${HUB_ROOT_URL}/hubfrom the Install Hub section, for example, https://hub.your.domain/hub).HUB_DATALORE_SERVICE_IDID of the Datalore service in Hub (see Configure the Datalore service).
HUB_DATALORE_SERVICE_SECRETToken of the Datalore service in Hub (see Configure the Datalore service).
HUB_PERM_TOKENToken for accessing Datalore and Hub scopes (see Create a Hub token).
HUB_FORCE_EMAIL_VERIFICATIONUsed to specify whether email verification is required from the Datalore user.
DATABASES_BASE_URLMust always be equal to "http://${SQL_CELLS_API_HOST}:${SQL_CELLS_API_PORT}".
SQL_CELLS_API_HOSTInternal hostname for the datalore service. Must be equal to
DATALORE_INTERNAL_HOST.DATALORE_INTERNAL_HOSTInternal hostname for the datalore service.
DEFAULT_INSTANCE_TYPE_IDID of the instance type that will be used by default (for more information, see the agentsСonfig description).
DEFAULT_PACKAGE_MANAGERDefault package manager.
DEFAULT_BASE_ENV_NAMEDefault environment, matches one of the default package manager environments.
MAIL_ENABLEDIf set to
true, enables Datalore to send emails (welcome emails, sharing invitations, etc) and requires the following parameters:MAIL_SENDER_EMAIL: sender's emailMAIL_SENDER_NAME: sender's nameMAIL_SENDER_USERNAME: username of SMTP userMAIL_SENDER_PASSWORDpassword of SMTP userMAIL_SMTP_SERVER: SMTP server hostMAIL_SMTP_PORT: SMTP server port
ADMIN_API_AUTH_TOKENEnvironment variable for an API token to set up an admin user.
Optional parameters
HUB_INTERNAL_BASE_URL (default: http://hub:8082/hub)URL to access Hub from inside the cluster. Used if HUB_PUBLIC_BASE_URL is only available from outside and not inside the cluster.
DATABASES_K8S_NAMESPACE (default: default)Name of the Kubernetes namespace where Datalore is installed. Used if you plan to install Datalore in a namespace other than default.
- dbRootPassword
Used to set up the PostgreSQL password. There is one field to override:
ROOT_PASSWORD: root user's password. The database can be accessed on port 5432 with the username postgres and this password.
- internalDatabase
Used to specify if you use an external database (for example, AWS RDS). To use an external database, set it to false and specify
DB_USERandDB_URLunder thedataloreEnvkey.- volume, volumeClaimTemplates
Used to configure persistent storage.
The config has two Kubernetes volumes described:
storage: contains workbook data, such as attached files (UID:GID 5000:5000).postgresql-data: contains PostgreSQL database data (UID:GID 999:999).
- agentsConfig
Used to define agent types (such as Basic and Large machines in the cloud version of Datalore). It has the following schema:
k8s: instances: - id: <Any string used as a unique identifier of this particular instance> label: <Instance name> description: <Short description of what the instance is> yaml: <Kubernetes config of Pod to be used for the instance)> minAllowed (optional): <Minimum number of instances to be preserved in the pool> maxAllowed (optional): <Maximum number of instances to be preserved in the pool> - id: <Another type with the same schema as above> ...The
minAllowedandmaxAllowedfields are used to configure the number of pre-created instances, which will speed up the process of starting up notebooks.- logbackConfig
Used to collect logs from Datalore and agents. We provide the default one, which prints requested information to
stdout, but you can configure it any way you like. Find more information on how to configure Logback in the official documentation.
Optional procedures
Run Datalore in a non-default namespace
Specify the namespace when running Datalore:
helm install -n [non_default_namespace] -f datalore.values.yaml <release_name> datalore/dataloreAdd the namespace under the
agentsConfigkey as shown in the code below:k8s: namespace: datalore instances: ...Add
DATABASES_K8S_NAMESPACE: "[non_default_namespace]"under thedataloreEnvkey.
Use an external postgres database
Add two variables under
dataloreEnv:DB_USER: "[database_user]"to specify the database userDB_URL: "jdbc:postgresql://[database_host]:[database_port]/[database_name]"to specify the database URL
Set
internalDatabasetofalse.