Installing and running DataLens On-premises

System requirements

  1. Operating systems:

    • Ubuntu 20.04/22.04/24.04
    • Debian 10/11/12
    • CentOS 7
    • Astra Linux 1.7
    • Oracle Linux 8/9
    • RedHat Linux 8/9
    • CentOS Stream 8/9

    Note

    The solution was checked for operability only with Debian-based distributions.

  2. Minimum system requirements for deployment:

    • vCPUs: 8
    • RAM: 16 GB
    • SSD: 40 GB
  3. Managed Service for PostgreSQL cluster requirements:

    Note

    We recommend using a separate Managed Service for PostgreSQL cluster in a fault-tolerant configuration (master + one replica).

    • Minimum requirements for the cluster:

      • vCPUs: 4
      • RAM: 8 GB
      • SSD: 100 GB
    • When deploying a high load cluster, you should calculate the consumption based on the number of users.

    • The following extensions are required for the United Storage PostgreSQL database:

      • pg_trgm
      • btree_gin
      • btree_gist
      • uuid-ossp

      They are installed automatically if the user has the relevant permissions.

    • When deploying a Managed Service for PostgreSQL DB cluster in Yandex Cloud for United Storage:

      • Specify the above-listed extensions in the management console manually.
      • Set the Collation (sorting) locale (LC_COLLATE) and Character set locale (LC_CTYPE) parameters to en_US.UTF-8. This will ensure effective indexing to search for users.

Deploying DataLens On-premises

  1. Use the provided link to download the DataLens On-premises distribution archive, e.g., like this:

    URL="..."
    curl -L -o datalens-enterprise.tar "${URL}"
    
  2. Unpack the distribution into the datalens-enterprise directory.

    mkdir -p ./datalens-enterprise && tar -xvf datalens-enterprise.tar --directory ./datalens-enterprise
    
  3. Navigate to the distribution directory:

    cd ./datalens-enterprise
    

    If deploying on a remote VM, consider executing all these commands at once:

    URL="..."
    curl -L "${URL}" -o datalens-enterprise.tar
    mkdir -p ./datalens-enterprise && tar -xvf datalens-enterprise.tar --directory ./datalens-enterprise
    cd ./datalens-enterprise
    
  4. The distribution is deployed using the ./init.sh script residing in the root of the archive. The script allows you to deploy DataLens On-premises in your existing Kubernetes cluster. If you do not have a Kubernetes cluster, the script is able to deploy it on your VM.

    You can run deployment from the linux/amd64 server the installation will take place on. You can also do so from a remote VM with access to a linux/amd64 or mac/arm64 Kubernetes cluster.

    Example of using the script:

    ./init.sh [arguments]
    

    How the script works:

    • The script checks the distribution for integrity each time by verifying checksums and saves the resulting values into deployment variables.

    • When the script is run with the --k3s-install argument, a K3S Kubernetes cluster is installed automatically without access to the public network.

    • When launched with the --atomic argument, the entire deployment (or update) operation is treated as a single transaction that either completes successfully or is rolled back entirely.

    • RSA keys for the authentication and authorization service are generated automatically on first installation if not explicitly specified otherwise.

    • Use the --values argument to specify the values.yaml custom file for redefinition of Helm chart deployment parameters and a more accurate environment set-up.

      Note

      Do not edit the original ./helm/values.yaml file. Use a copy of the original file or a copy of the ./help/values.example.yaml example file.

    • If you set the KUBECONFIG environment variable before running the script, the script will connect to an already existing Kubernetes cluster for deployment.

    • The Helm chart does not specify CPU limits for application containers to prevent throttling of the whole application, as recommended in the Kubernetes documentation.

After each deployment, a file named ./values.debug.yaml is generated to store all parameters other than the secrets. This file can help you diagnose the system when contacting support.

Specifics of deployment on Oracle Linux

To run a K3s Kubernetes cluster on Oracle Linux 8/9, you must either disable firewalld completely or configure the relevant rules for correct operation of the Kubernetes network.

Note

When you deploy the distribution using the ./init.sh script with K3s Kubernetes cluster installation, rules for Oracle Linux will be applied automatically.

sudo firewall-cmd --permanent --zone=trusted --add-interface=cni0
sudo firewall-cmd --permanent --zone=trusted --add-interface=flannel.1
sudo firewall-cmd --reload

Main ports used by K3s:

Port range Protocol Description
6443 TCP Main Kubernetes API server (master)
2379-2380 TCP Etcd (for multi-master setup)
10250 TCP Kubelet API
8472 UDP VXLAN (Flannel network, if used)
30000-32767 TCP Port range for NodePort

Examples for firewalld:

sudo systemctl stop firewalld
sudo systemctl disable firewalld

Add rules for the relevant ports or network interfaces:

# traffic between k8s pod network subnets
sudo firewall-cmd --permanent --zone=trusted --add-source=10.42.0.0/16
sudo firewall-cmd --permanent --zone=trusted --add-source=10.43.0.0/16
# or
sudo firewall-cmd --permanent --zone=trusted --add-interface=cni0
sudo firewall-cmd --permanent --zone=trusted --add-interface=flannel.1


# k8s api server access for all nodes (optional)
sudo firewall-cmd --permanent --add-port=6443/tcp
# client requests to etcd and peer communication between etcd members (optional)
sudo firewall-cmd --permanent --add-port=2379-2380/tcp
# kubelet api port on each node (optional)
sudo firewall-cmd --permanent --add-port=10250/tcp
# flannel vxlan pod network communication (optional)
sudo firewall-cmd --permanent --add-port=8472/udp
# node port external traffic (optional)
sudo firewall-cmd --permanent --add-port=30000-32767/tcp

sudo firewall-cmd --reload

If the firewall does not interfere with cluster operation, you may only want to configure the required ports rather than disable it entirely. This will help ensure basic system security with settings acceptable for Kubernetes.

Available deployment arguments

Available script deployment arguments with examples for typical configurations:

Deployment process

Argument Default value Description
--atomic false Deploying as a single transaction that either completes successfully or is fully rolled back. On rollback, Helm deletes the created resources, making it impossible to analyze the cause of the failure. We do not recommend using it for the first deployment.

Updating a distribution

Argument Default value Description
--update false Updating the distribution based on the previous deployment settings. Before running the update, unpack the new distribution over the old one, replacing the files. Usage example: ./init.sh --update

Kubernetes (K3s) configuration

Argument Default value Description
--k3s-install false Installing a Kubernetes K3s cluster
--k3s-image-load false Uploading DataLens On-premises Docker images automatically to a K3s cluster (done automatically during the k3s cluster deployment via the --k3s-install flag)
--k3s-external-ip <ip> Granting access to a K3s cluster via a public IP address. The IP address is optional; if there is none, the VM’s global IP address is used.
--get-k3s-kubeconfig Getting the file contents from the KUBECONFIG variable for remote connection to a cluster

Helm chart configuration

Argument Default value Description
--release-name datalens-enterprise Setting a release name when deploying a Helm chart
--release-namespace datalens-enterprise Setting a Kubernetes namespace for deployment
--values <file> Specifying a custom file named values.yaml for Helm chart deployment
--values-merge false Merging the partially populated custom values.yaml file with the provided configuration arguments
--no-wait false Not waiting for Helm chart deployment to complete
--deploy-dir ./ Specifying a directory for deployment if the script is in another directory. You can use it for debuggin or updating

Docker image management

Argument Default value Description
--docker-image-load false Uploading Docker images from a tar file to a local Docker
--docker-image-push false Pushing Docker images to the specified registry
--docker-registry <registry url> Specifying the URL of the Docker image registry for sending and further uploading images during deployment
--docker-config <file> Specifying the configuration file for access to the Docker image registry in JSON format (see example in the ./help/docker-config.example.json file)

Configuration of the authentication and authorization service

Argument Default value Description
--auth-rsa-gen false Generating new RSA keys for the authentication service (done automatically on first deployment)
--temporal-rsa-gen false Generating new RSA keys for Temporal (done automatically on first deployment)
--auth-providers-config <file> Specifying the authentication providers' configuration file (see example in the ./help/auth-provider-config.example.json file)
--get-admin-password Getting the administrator password for the already deployed DataLens On-premises

Ingress configuration

Argument Default value Description
--ingress-domain datalens.enterprise Specifying a domain for access to DataLens On-premises for an Ingress resource
--ingress-ip Specifying an IP address for access to DataLens On-premises for an Ingress resource
--ingress-tls false Enabling TLS for an Ingress resource. Cookie headers will be issued only when authenticating via HTTPS
--ingress-tls-gen false Generating new self-signed TLS certificates for a domain. Certificates will be saved at ./certs.
--ingress-tls-crt <file> Specifying a file for the existing TLS certificate for an Ingress resource (no need to specify it again on updates; the certificate will be saved to Kubernetes cluster secrets)
--ingress-tls-key <file> Specifying a TLS key file (no need to specify it again on updates; the key will be saved to Kubernetes cluster secrets)

Self-signed root certificates

Argument Default value Description
--postgres-tls-ca <path_to_certificate_file> null Specifying the path to the CA certificate for PostgreSQL
--clickhouse-tls-ca <path_to_certificate_file> null Specifying the path to the CA certificate for ClickHouse®
--redis-tls-ca <path_to_certificate_file> null Specifying the path to the CA certificate for Valkey™
--s3-tls-ca <path_to_certificate_file> null Specifying the path to the CA certificate for S3

Key features

Option Default value Description
--yandex-map false Enabling integration with Yandex Maps
--yandex-map-token <token> Specifying a Yandex Maps token
--usage-tracking false Enabling user event logging in Clickhouse via Fluent Bit
--editor false Enabling Editor and connection via JSON (API Connector)
--export false Enabling workbook import/export (also includes additional services, such as meta-manager, ui-api, temporal)
--background-exports false Enabling background data export in CSV and XLSX format for table charts
--files false Enabling file connectors (also includes ClickHouse®, Valkey™, S3)
--compeng-sidecar false Enabling PostgreSQL sidecar for compute engine
--disable-hc Highcharts library enabled (true) Disabling the Highcharts library. If the Highcharts library is disabled in DataLens On-premises, the Gravity UI Charts library is used instead.
--disable-demo Demo data enabled (true) Disabling demo data: connections, datasets, charts, dashboards
--disable-postgres Built-in PostgreSQL enabled (true) Disabling built-in PostgreSQL to use an external cluster
--disable-clickhouse false Disabling built-in ClickHouse® to use an external cluster
--disable-redis false Disabling built-in Valkey™ to use an external cluster
--disable-fluent-bit false Disabling Fluent Bit user event collector
--disable-temporal false Disable Temporal to run pending tasks
--disable-s3 false Disabling built-in S3 storage (MinIO)
--cache false Enabling dataset caching
--sec-embeds false Enabling private embeddings
--auth-cookie-domain http://<domain> false Enabling embeddings in a corporate domain, where http://<domain> is the domain where such embeddings will be allowed
--auth-disable-wildcard-cookie false Disabling cookie popup at the subdomain level
--ai-endpoint <ai-endpoint> Specifying the base URL of an OpenAI-compatible API
--ai-model-name <ai-model-name> Specifying the AI ​​model ID (as shown in the model field)
--ai-api-token <ai-api-token> Specifying the provider's API token

PostgreSQL database management

Option Default value Description
--dump-postgres false Creating PostgreSQL database dump
--restore-postgres <file> Restoring PostgreSQL database from specified dump file
--restore-postgres-with-clear false Enabling full prior cleanup of old database objects before restoring the PostgreSQL database
--pg false Starting interactive PostgreSQL shell
--pg-sql false Running PostgreSQL SQL client

Performance and scaling

Option Default value Description
--cpu-scale <factor> 1.0 CPU resource scaling ratio for all components. You can scale down the CPU resource request within the cluster for all services at once by specifying 0.5.

Command line tools

Option Default value Description
--local-bin false Using local CLI tools (yq, kubectl, helm, helm-diff, stern) instead of built-in ones
--skip-meta-check false Skipping metadata and checksum verification on deployment
--stern <args> false Running the stern log collector for the default namespace
--kubectl <args> false Running kubectl for the default namespace

Examples of typical deployment commands

  • Basic installation with K3s on a VM with automatic generation of self-signed certificates:

    ./init.sh \
    --k3s-install \
    --ingress-domain <domain> \
    --ingress-tls \
    --ingress-tls-gen
    
  • Deployment on a domain with custom TLS certificates:

    ./init.sh \
    --k3s-install \
    --ingress-domain <domain> \
    --ingress-tls-crt <crt-file> \
    --ingress-tls-key <key-file>
    
  • Mirroring images to a private Docker image registry:

    ./init.sh \
    --docker-image-load \
    --docker-image-push \
    --docker-registry <registry-url> \
    --docker-config <docker-config-json-file>
    
  • Deployment with custom authentication providers configured:

    ./init.sh --auth-providers-config <auth-provider-config-json-file>
    
  • Deployment with parameters configured via a custom values.yaml file:

    ./init.sh --values <values-file>
    
  • Getting the administrator password from secrets after deployment:

    ./init.sh --get-admin-password
    
  • Deployment with AI Assistant setup:

    ./init.sh --ai-endpoint <ai-endpoint> --ai-model-name <ai-model-name> --ai-api-token <ai-api-token> 
    

    e.g., for Yandex Cloud AI Studio:

    ./init.sh --ai-endpoint https://ai.api.cloud.yandex.net/v1 --ai-model-name gpt://<folder_id>/deepseek-v4-flash/latest --ai-api-token <API_key> 
    

Examples of auxiliary commands

  • Getting all logs from all DataLens pods for debugging:

    ./init.sh --stern . -o extjson > datalens.enterprise.log
    
  • Getting all Kubernetes cluster events for deployment error debugging:

    ./init.sh --kubectl events
    

Description of all values.yamlparameters

The values.yaml file contains a configuration for DataLens On-premises deployment via Helm charts. The following parameters are available:

Docker image registry configuration

registry:
  private: true
  url: ''
Argument Type Default value Description
registry.private boolean true Specifies whether the Docker image is private and whether or not the docker-config.json access configuration file must be specified
registry.url string '' URL of the Docker image registry to receive the application images

Release version

release_version: '25.6.0'
Argument Type Default value Description
release_version string '25.6.0' DataLens On-premises distribution version

Ingress resource configuration

ingress:
  enabled: true
  domain: datalens.enterprise
  np: false
  tls:
    enabled: false
    secret:
      crt: null
      key: null
Argument Type Default value Description
ingress.enabled boolean true Adds deployment of an Ingress resource in the cluster for accessing the application
ingress.domain string datalens.enterprise Domain used for accessing the application
ingress.ip string null IP address used for accessing the application
ingress.np boolean false Using the NodePort configuration instead of ClusterIP for the UI service
ingress.tls.enabled boolean false Activating TLS for an Ingress resource for access only over a secure connection. Cookie headers will be issued only when authenticating via HTTPS
ingress.tls.secret.crt string null TLS certificate contents in PEM format (see example in the ./help/values.example.yaml file)
ingress.tls.secret.key string null Private TLS key contents in PEM format (see example in the ./help/values.example.yaml file)

Infrastructure

infra:
  postgres:
    enabled: true
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 512Mi
        storage: 1Gi
      limits:
        memory: 1024Mi
    tls:
      enabled: false
      secret:
        ref: null
        ca: null
  clickhouse:
    enabled: false
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 512Mi
        storage: 10Gi
      limits:
        memory: 1024Mi
    tls:
      enabled: false
      secret:
        ref: null
        ca: null
  redis:
    enabled: false
    extra_envs: []
    resources:
      requests:
        cpu: 0.5
        memory: 128Mi
        storage: 512Mi
      limits:
        memory: 256Mi
    tls:
      enabled: false
      secret:
        ref: null
        ca: null
  s3:
    enabled: false
    extra_envs: []
    resources:
      requests:
        cpu: 0.5
        memory: 128Mi
        storage: 1Gi
      limits:
        memory: 256Mi
  temporal:
    enabled: false
    extra_envs: []
    resources:
      requests:
        cpu: 0.5
        memory: 256Mi
      limits:
        memory: 512Mi
  fluent_bit:
    enabled: false
    extra_envs: []
    resources:
      requests:
        cpu: 0.1
        memory: 128Mi
      limits:
        memory: 128Mi
Argument Type Default value Description
infra.postgres.enabled boolean true Deploying a built-in PostgreSQL database
infra.postgres.extra_envs list [] List of variables and their values that allow overriding or expanding PostgreSQL environment variables
infra.postgres.resources.requests.cpu string/number 1 Number of CPUs requested for PostgreSQL
infra.postgres.resources.requests.memory string 512Mi RAM requested for PostgreSQL
infra.postgres.resources.requests.storage string 1Gi Storage size requested for PostgreSQL
infra.postgres.resources.limits.memory string 1024Mi RAM limit for PostgreSQL
infra.postgres.tls.enabled boolean false Enabling TLS for PostgreSQL
infra.postgres.tls.secret.ref string null Link to secret with TLS certificate
infra.postgres.tls.secret.ca string null CA certificate for PostgreSQL
infra.clickhouse.enabled boolean false Deploying a built-in ClickHouse® database
infra.clickhouse.extra_envs list [] List of variables and their values that allow overriding or expanding ClickHouse® environment variables
infra.clickhouse.resources.requests.cpu string/number 1 Number of CPUs requested for ClickHouse®
infra.clickhouse.resources.requests.memory string 512Mi RAM requested for ClickHouse®
infra.clickhouse.resources.requests.storage string 10Gi Storage size requested for ClickHouse®
infra.clickhouse.resources.limits.memory string 1024Mi RAM limit for ClickHouse®
infra.clickhouse.tls.enabled boolean false Enabling TLS for ClickHouse®
infra.clickhouse.tls.secret.ref string null Link to secret with TLS certificate
infra.clickhouse.tls.secret.ca string null CA certificate for ClickHouse®
infra.redis.enabled boolean false Deploying built-in Valkey™
infra.redis.extra_envs list [] List of variables and their values that allow overriding or expanding Valkey™ environment variables
infra.redis.resources.requests.cpu string/number 0.5 Number of CPUs requested for Valkey™
infra.redis.resources.requests.memory string 128Mi RAM requested for Valkey™
infra.redis.resources.requests.storage string 512Mi Storage size requested for Valkey™
infra.redis.resources.limits.memory string 256Mi RAM limit for Valkey™
infra.redis.tls.enabled boolean false Enabling TLS for Valkey™
infra.redis.tls.secret.ref string null Link to secret with TLS certificate
infra.redis.tls.secret.ca string null CA certificate for Valkey™
infra.s3.enabled boolean false Deploying built-in S3 (MinIO)
infra.s3.extra_envs list [] List of variables and their values that allow overriding or expanding S3 environment variables
infra.s3.resources.requests.cpu string/number 0.5 Number of CPUs requested for S3
infra.s3.resources.requests.memory string 128Mi RAM requested for S3
infra.s3.resources.requests.storage string 1Gi Storage size requested for S3
infra.s3.resources.limits.memory string 256Mi RAM limit for S3
infra.s3.tls.enabled boolean false Enabling TLS for S3
infra.s3.tls.secret.ca string null CA certificate for S3
infra.temporal.enabled boolean false Deploying Temporal
infra.temporal.extra_envs list [] List of variables and their values that allow overriding or expanding Temporal environment variables
infra.temporal.resources.requests.cpu string/number 0.5 Number of CPUs requested for Temporal
infra.temporal.resources.requests.memory string 256Mi RAM requested for Temporal
infra.temporal.resources.limits.memory string 512Mi RAM limit for Temporal
infra.fluent_bit.enabled boolean false Deploying a Fluent Bit user event collector
infra.fluent_bit.extra_envs list [] List of variables and their values that allow overriding or expanding Fluent Bit environment variables
infra.fluent_bit.resources.requests.cpu string/number 0.1 Number of CPUs requested for Fluent Bit
infra.fluent_bit.resources.requests.memory string 128Mi RAM requested for Fluent Bit
infra.fluent_bit.resources.limits.memory string 128Mi RAM limit for Fluent Bit

Using the extra_envs parameter, you can override or expand environment variables, e.g., for PostgreSQL:

  postgres:
    enabled: true
    extra_envs: 
      - name: MY_VAR
        value: test123
      - name: MY_VAR_SECRET
        valueFrom: 
          secretKeyRef:
            name: test-secret
            key: test-secret-key

Application configuration

application:
  control_api:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 2048Mi
      limits:
        memory: 4096Mi
  data_api:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 2048Mi
      limits:
        memory: 4096Mi
  ui:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 512Mi
      limits:
        memory: 1024Mi
  ui_api:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 0.5
        memory: 256Mi
      limits:
        memory: 512Mi
  us:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 512Mi
      limits:
        memory: 1024Mi
  auth:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 512Mi
      limits:
        memory: 1024Mi
  meta_manager:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 0.5
        memory: 256Mi
      limits:
        memory: 512Mi
  file_secure_reader:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 0.5
        memory: 256Mi
      limits:
        memory: 512Mi
  file_uploader_worker:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 0.5
        memory: 256Mi
      limits:
        memory: 512Mi
  file_uploader_api:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: []
    resources:
      requests:
        cpu: 1
        memory: 256Mi
      limits:
        memory: 512Mi

Each app component has the following parameters:

Argument Type Default value (varies) Description
application.<component>.replicas number 1 Number of replicas for the component
application.<component>.version string varies Component version
application.<component>.maxSurge string/number 50% Maximum number of additional pods during an update
application.<component>.maxUnavailable string/number 0 Maximum number of pods deleted during an update
application.<component>.resources.requests.cpu string/number varies Number of CPUs requested for the component
application.<component>.resources.requests.memory string varies RAM requested for the component
application.<component>.resources.limits.memory string varies RAM limit for the component
application.<component>.extra_envs list [] List of variables and their values that allow overriding or expanding the environment variables of an application component

Available application components:

  • control_api: Connection and dataset management service.
  • data_api: Source query processing service.
  • ui: User interface.
  • ui_api: Utility service for private API of dashboards and charts.
  • us: United Storage to manage the storage of all the system's operating data.
  • auth: Authentication service.
  • meta_manager: Deferred task processing manager.
  • file_secure_reader: File secure reading service.
  • file_uploader_worker: File uploading and processing service.
  • file_uploader_api: File uploading API service.

Using the extra_envs parameter, you can allow override or expand the environment variables of an application component, e.g., for the control_api component:

application:
  control_api:
    replicas: 1
    version: '...'
    maxSurge: 50%
    maxUnavailable: 0
    extra_envs: 
      - name: MY_VAR
        value: test123
      - name: MY_VAR_SECRET
        valueFrom: 
          secretKeyRef:
            name: test-secret
            key: test-secret-key
    resources:
      requests:
        cpu: 1
        memory: 2048Mi
      limits:
        memory: 4096Mi

Secrets

secrets:
  ref: null
  #
  AUTH_TOKEN_PRIVATE_KEY: null
  AUTH_TOKEN_PUBLIC_KEY: null
  AUTH_PROVIDERS_CONFIG: null
  AUTH_ADMIN_PASSWORD: null
  AUTH_CALLBACK_COOKIE_SECRET: null
  #
  CSRF_SECRET: null
  #
  AUTH_MASTER_TOKEN: null
  US_MASTER_TOKEN: null
  FILE_UPLOADER_MASTER_TOKEN: null
  EXPORT_DATA_VERIFICATION_KEY: null
  #
  CONTROL_API_CRYPTO_KEY: null
  #
  DOCKER_CONFIG_JSON: null
  #
  POSTGRES_PASSWORD_ROOT: null
  POSTGRES_PASSWORD_US: null
  POSTGRES_PASSWORD_COMPENG: null
  POSTGRES_PASSWORD_AUTH: null
  POSTGRES_PASSWORD_TEMPORAL: null
  POSTGRES_PASSWORD_META_MANAGER: null
  POSTGRES_PASSWORD_DEMO: null
  #
  TEMPORAL_AUTH_PRIVATE_KEY: null
  TEMPORAL_AUTH_PUBLIC_KEY: null
  #
  CLICKHOUSE_PASSWORD: null
  #
  REDIS_PASSWORD: null
  #
  S3_ACCESS_KEY_ID: null
  S3_SECRET_ACCESS_KEY: null
Argument Type Default value Description
secrets.ref string null Kubernetes external secret link
secrets.AUTH_TOKEN_PRIVATE_KEY string null Private RSA key for signing authentication tokens
secrets.AUTH_TOKEN_PUBLIC_KEY string null Public RSA key for checking authentication tokens
secrets.AUTH_PROVIDERS_CONFIG string null Configuration of authentication providers in JSON format
secrets.AUTH_ADMIN_PASSWORD string null Admin password
secrets.AUTH_CALLBACK_COOKIE_SECRET string null Cookie encryption key for authentication
secrets.CSRF_SECRET string null CSRF token encryption key
secrets.AUTH_MASTER_TOKEN string null Master token for the authentication service
secrets.US_MASTER_TOKEN string null Master token for the meta information storage service
secrets.FILE_UPLOADER_MASTER_TOKEN string null Master token for the file uploading service
secrets.EXPORT_DATA_VERIFICATION_KEY string null Integrity check key for import/export of workbooks
secrets.CONTROL_API_CRYPTO_KEY string null Encryption key for connections
secrets.DOCKER_CONFIG_JSON string null Docker image registry access configuration in JSON format
secrets.POSTGRES_PASSWORD_ROOT string null PostgreSQL root user password
secrets.POSTGRES_PASSWORD_US string null Password for the meta information service database
secrets.POSTGRES_PASSWORD_COMPENG string null Password for the computation engine database
secrets.POSTGRES_PASSWORD_AUTH string null Password for the authentication service database
secrets.POSTGRES_PASSWORD_TEMPORAL string null Temporal database password
secrets.POSTGRES_PASSWORD_META_MANAGER string null meta-manager database password
secrets.POSTGRES_PASSWORD_DEMO string null Demo database password
secrets.TEMPORAL_AUTH_PRIVATE_KEY string null RSA private key for Temporal authentication
secrets.TEMPORAL_AUTH_PUBLIC_KEY string null RSA public key for Temporal authentication
secrets.CLICKHOUSE_PASSWORD string null Password for ClickHouse®
secrets.REDIS_PASSWORD string null Password for Valkey™
secrets.S3_ACCESS_KEY_ID string null Access Key ID for S3
secrets.S3_SECRET_ACCESS_KEY string null Secret Access Key for S3

PostgreSQL configuration

postgres:
  POSTGRES_HOST: postgres-cip
  POSTGRES_PORT: '5432'
  POSTGRES_USER_AUTH: pg-auth-user
  POSTGRES_DB_AUTH: pg-auth-db
  POSTGRES_USER_COMPENG: pg-compeng-user
  POSTGRES_DB_COMPENG: pg-compeng-db
  POSTGRES_USER_US: pg-us-user
  POSTGRES_DB_US: pg-us-db
  POSTGRES_USER_META_MANAGER: pg-meta-manager-user
  POSTGRES_DB_META_MANAGER: pg-meta-manager-db
  POSTGRES_USER_DEMO: pg-demo-user
  POSTGRES_DB_DEMO: pg-demo-db
  POSTGRES_USER_TEMPORAL: pg-temporal-user
  POSTGRES_DB_TEMPORAL: pg-temporal-db
  POSTGRES_DB_TEMPORAL_VISIBILITY: pg-temporal-visibility-db
Argument Type Default value Description
postgres.POSTGRES_HOST string postgres-cip PostgreSQL host
postgres.POSTGRES_PORT string '5432' PostgreSQL port
postgres.POSTGRES_USER_AUTH string pg-auth-user Authentication service DB user
postgres.POSTGRES_DB_AUTH string pg-auth-db Authentication service DB name
postgres.POSTGRES_USER_COMPENG string pg-compeng-user Computation engine DB user
postgres.POSTGRES_DB_COMPENG string pg-compeng-db Computation engine DB name
postgres.POSTGRES_USER_US string pg-us-user Meta information service DB user
postgres.POSTGRES_DB_US string pg-us-db Meta information service DB name
postgres.POSTGRES_USER_META_MANAGER string pg-meta-manager-user User for Meta Manager DB
postgres.POSTGRES_DB_META_MANAGER string pg-meta-manager-db Meta Manager DB name
postgres.POSTGRES_USER_DEMO string pg-demo-user Demo database user
postgres.POSTGRES_DB_DEMO string pg-demo-db Demo database name
postgres.POSTGRES_USER_TEMPORAL string pg-temporal-user User for Temporal DB
postgres.POSTGRES_DB_TEMPORAL string pg-temporal-db Temporal DB name
postgres.POSTGRES_DB_TEMPORAL_VISIBILITY string pg-temporal-visibility-db Name of the service DB for building indexes for Temporal

ClickHouse® configuration

clickhouse:
  CLICKHOUSE_HOST: clickhouse-cip
  CLICKHOUSE_PORT: '8123'
  CLICKHOUSE_USER: ch-user
  CLICKHOUSE_DB_USAGE_TRACKING: ch-usage-tracking-db
  CLICKHOUSE_TABLE_USAGE_TRACKING: ch-usage-tracking-table
Argument Type Default value Description
clickhouse.CLICKHOUSE_HOST string clickhouse-cip ClickHouse® host
clickhouse.CLICKHOUSE_PORT string '8123' ClickHouse® port
clickhouse.CLICKHOUSE_USER string ch-user ClickHouse® user
clickhouse.CLICKHOUSE_DB_USAGE_TRACKING string ch-usage-tracking-db Name of DB for storing user events
clickhouse.CLICKHOUSE_TABLE_USAGE_TRACKING string ch-usage-tracking-table Name of table for storing user events

Valkey™ configuration

redis:
  REDIS_HOSTS:
    - redis-cip
  REDIS_PORT: '6379'
  REDIS_CLUSTER_NAME: null
  REDIS_DB_CACHE_DATA: '0'
  REDIS_DB_CACHE_MUTATIONS: '1'
  REDIS_DB_FILE_API: '9'
  REDIS_DB_FILE_WORKER: '11'
Argument Type Default value Description
redis.REDIS_HOSTS list(string) redis-cip Hosts Valkey™
redis.REDIS_PORT string '6379' Valkey™ port
redis.REDIS_CLUSTER_NAME string null Valkey™ cluster name
redis.REDIS_DB_CACHE_DATA string '0' Valkey™ DB with data cache
redis.REDIS_DB_CACHE_MUTATIONS string '1' Valkey™ DB with dataset cache
redis.REDIS_DB_FILE_API string '9' Valkey™ DB for storing metadata when processing uploaded files
redis.REDIS_DB_FILE_WORKER string '11' Valkey™ DB for the file-uploader-worker task queue

S3 configuration

s3:
  S3_ENDPOINT: http://s3-cip:9000
  S3_BUCKET_TEMPORARY: dl-file-uploader-tmp
  S3_BUCKET_PERSISTENT: dl-file-uploader
Argument Type Default value Description
s3.S3_ENDPOINT string http://s3-cip:9000 S3 storage access address
s3.S3_BUCKET_TEMPORARY string dl-file-uploader-tmp Name of the bucket for temporary file storage
s3.S3_BUCKET_PERSISTENT string dl-file-uploader Name of the bucket for storing uploaded files for file connections

Temporal configuration

temporal:
  TEMPORAL_ENDPOINT: temporal-cip:7233
Argument Type Default value Description
temporal.TEMPORAL_ENDPOINT string temporal-cip:7233 Temporal address

Available connectors

visible_connectors:
  - clickhouse
  - postgres
  - chyt
  - ydb
  - mysql
  - greenplum
  - mssql
  - oracle
  - trino
  - metrika_api
  - appmetrica_api
Argument Type Default value Description
visible_connectors array (list) List of database connectors available in the interface

Key features

features:
  auth:
    enabled: true
    local: true
    skip_local: false
    force_redirect_open_id: false
  meta_manager:
    enabled: false
  ui_api:
    enabled: false
  demo:
    enabled: true
  hc:
    enabled: true
    endpoint: ''
    protocol: ''
  yandex_map:
    enabled: false
    token: ''
  editor:
    enabled: false
  export:
    enabled: false
  background_exports:
    enabled: false
  compeng_sidecar:
    enabled: false
  usage_tracking:
    enabled: false
  files:
    enabled: false
  cache:
    enabled: false
  sec_embeds: 
    enabled: false
  auth_cookie:
    enabled: false
    domain: ''
  ai:
    enabled: false
    api_token: ''
    model_name: ''
    endpoint: ''
    model_context_window_size: ''
    extra_headers: ''
Argument Type Default value Description
features.auth.enabled boolean true Enabling the authentication service
features.auth.local boolean true Enabling local users. If false, you can log in to the system only via users of external IdP providers
features.auth.skip_local boolean false Skips (does not disable) the local login step. If IdP providers are not specified (empty array in the configuration), this parameter has no effect
features.auth.force_redirect_open_id boolean false Redirects to the OpenID authorization, if features.auth.skip_local is set to true, there is no LDAP provider, and only one OpenID provider is specified
features.meta_manager.enabled boolean false Enabling meta-manager to process deferred tasks
features.ui_api.enabled boolean false Enabling a service ui-api
features.demo.enabled boolean true Enabling demo data deployment
features.hc.enabled boolean true Enabling the Highcharts library
features.hc.endpoint string '' Host and port for downloading the Highcharts library resources
features.hc.protocol string '' Protocol for downloading the Highcharts library resources http/https
features.yandex_map.enabled boolean false Enabling integration with Yandex Maps
features.yandex_map.token string '' Token for Yandex Maps
features.editor.enabled boolean false Enabling Editor and JSON (API Connector)
features.export.enabled boolean false Enabling workbook import/export
features.background_exports.enabled boolean false Enabling background data export in CSV and XLSX format for table charts
features.compeng_sidecar.enabled boolean false Deploying a PostgreSQL DB for computing as a sidecar
features.usage_tracking.enabled boolean false Enabling user event tracking
features.cache.enabled boolean false Enabling caching of query data and dataset metadata
features.sec_embeds.enabled boolean false Enabling private object embedding
features.auth_cookie.enabled boolean false Enabling object embedding in a corporate domain
features.auth_cookie.domain string '' Corporate domain for embedding objects, in http://<domain> format
features.ai.enabled boolean false Enables the use of AI if the following three variables are filled in
features.ai.api_token string '' Provider API token
features.ai.model_name string '' Model ID (as shown in the model field)
features.ai.endpoint string '' Base URL of an OpenAI-compatible API
features.ai.model_context_window_size string '' (optional) Context window size in tokens (default: 128,000)
features.ai.extra_headers string '' (optional) Additional HTTP headers (server only, not sent to the browser)

System configuration

config:
  cpu_request_scale: 1.0
Argument Type Default value Description
config.cpu_request_scale number 1.0 CPU resource scaling ratio for all components

Checksum

checksum: null
Argument Type Default value Description
checksum string null Checksum of the integrity check distribution (filled automatically)

Notes

  1. If the Highcharts library is disabled in DataLens On-premises, the Gravity Charts library is used instead.

  2. After each deployment, a file named ./values.debug.yaml is generated with all deployment parameters saved in it except for secrets. This file may be of use for initial system performance diagnostics when you contact support.

  3. If ?full_login_page=true is sent to the URL, all authentication methods available by default are displayed.

  4. To use the Usage Tracking features with an external ClickHouse® database, create tables in the target cluster using the following query:

    CREATE TABLE $CLICKHOUSE_DB_USAGE_TRACKING.$CLICKHOUSE_TABLE_USAGE_TRACKING
    ON CLUSTER '{cluster}' (
        event_time DateTime64(9),
        event_date Date,
        source_entry_id String,
        dash_id Nullable(String),
        dash_tab_id Nullable(String),
        chart_id Nullable(String),
        chart_kind Nullable(String),
        response_status_code Nullable(UInt64),
        dataset_id Nullable(String),
        user_id Nullable(String),
        request_id Nullable(String),
        query Nullable(String),
        source Nullable(String),
        connection_id Nullable(String),
        dataset_mode Nullable(String),
        username Nullable(String),
        execution_time Int64,
        status Nullable(String),
        error Nullable(String),
        connection_type Nullable(String),
        host Nullable(String),
        cluster Nullable(String),
        clique_alias Nullable(String),
        cache_used UInt8,
        cache_full_hit UInt8,
        endpoint_code Nullable(String),
        query_type Nullable(String),
        err_code Nullable(String),
        workbook_id Nullable(String)
    ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{shard}/$CLICKHOUSE_DB_USAGE_TRACKING.$CLICKHOUSE_TABLE_USAGE_TRACKING', '{replica}')
    PARTITION BY toYYYYMM(event_date)
    ORDER BY (toStartOfHour(event_time), connection_id, dash_id, dataset_id, chart_id, user_id, event_time)
    TTL event_date + toIntervalMonth(6)
    SETTINGS index_granularity = 8192, allow_nullable_key = 1;
    

    Where $CLICKHOUSE_DB_USAGE_TRACKING and $CLICKHOUSE_TABLE_USAGE_TRACKING are the database name and the ClickHouse® table name in your cluster.