Skip to main content

Ξ Configuration

The needed Helm Charts relies on environment variables read from your shell.

The following table details those environment variables by alphabetical order.

VariableDescription
AWS_ACCESS_KEY_IDSet the access key that gives access to the S3 bucket for the backups.
AWS_DEFAULT_PROFILESet the default profile that gives access to the S3 bucket for the backups.
AWS_DEFAULT_REGIONSet the defaul region that gives access to the S3 bucket for the backups.
AWS_REGIONSet the region of the S3 bucket for the backups.
AWS_SECRET_ACCESS_KEYSet the secret key that gives access to the S3 bucket for the backups.
DATALAYER_AUTHZ_ENGINEType of Authorization engine to use - possible value: none | openfga - default is openfga.
DATALAYER_CLUSTER_TYPEThe Kubernetes cluster type (this is only needed for advanced cases).

Possible values are eks or ovh.
DATALAYER_CREDITS_PROVIDERA string that defines up the addon providing the credits method within IAM for billing and usage.
DATALAYER_DOCKER_REGISTRY_HOSTHostname of the OCI Registry that contains the Docker Images.
DATALAYER_DOCKER_REGISTRYFull name of the OCI Registry that contains the Docker Images, e.g $DATALAYER_DOCKER_REGISTRY_HOST/datalayer
DATALAYER_DOCKER_REGISTRY_USERNAMEUsername of the OCI Registry that contains the Docker Images.
DATALAYER_DOCKER_REGISTRY_PASSWORDPassword of the OCI Registry that contains the Docker Images.
DATALAYER_GITHUB_CLIENT_IDIf you enable authentication via GitHub, define the client id of the GitHub Application.
DATALAYER_GITHUB_CLIENT_SECRETIf you enable authentication via GitHub, define the client secret of the GitHub Application
DATALAYER_GRAFANA_ADMIN_PWDDefine the password for the Grafana service.
DATALAYER_HELM_REGISTRY_HOSTHostname of the OCI Registry that contains the Helm Charts.
DATALAYER_HELM_REGISTRYFull name of the OCI Registry that contains the Helm Charts, e.g $DATALAYER_HELM_REGISTRY_HOST/datalayer-charts
DATALAYER_HELM_REGISTRY_USERNAMEUsername of the OCI Registry that contains the Helm Charts.
DATALAYER_HELM_REGISTRY_PASSWORDPassword of the OCI Registry that contains the Helm Charts.
DATALAYER_JWT_ISSUERIf you enable authentication via JSON Web Token (JWT), define the JWT issuer.

e.g. https://dev.datalayer.io
DATALAYER_JWT_SECRETIf you enable authentication via JSON Web Token (JWT), define the JWT secret.
DATALAYER_JWT_ALGORITHMIf you enable authentication via JSON Web Token (JWT), define the JWT issuer.

e.g. HS256
DATALAYER_JWT_ALLOWED_ISSUERSIf you enable authentication via JSON Web Token (JWT), define the JWT allowed issuers.

e.g. https://id.your-company.cloud
DATALAYER_JWT_DEFAULT_KID_ISSUERIf you enable authentication via JSON Web Token (JWT), define the JWT default key ID issuer.

e.g. https://your-company.cloud/api/iam/v1/api-keys
DATALAYER_JWT_SKIP_3RD_TOKEN_SIGNATURE_VERIFICATIONIf you enable authentication via JSON Web Token (JWT), define the JWT signature should be verified.

Set true or false.
DATALAYER_CERT_ISSUERThe issuer for the certificates, e.g. letsencrypt or letsencrypt-prod.
DATALAYER_INGRESS_CLASS_NAMEThe Ingress class name for the Operator, e.g. datalayer-traefik or nginx.
DATALAYER_IAM_API_KEYKey used to protect the internal Kubernetes cluster communications.
DATALAYER_IAM_HOSTIAM internal Kubernetes service hostname + port.
DATALAYER_OPENFGA_REST_URL
DATALAYER_OPENFGA_STORE_ID
DATALAYER_OPENFGA_AUTHZ_MODEL_ID
DATALAYER_OPERATOR_API_KEYSet a secret to secure the internal connexions between the services.
DATALAYER_PUB_SUB_ENGINEType of Pub/Sub engine to use - possible value: none | pulsar - default is pulsar.
DATALAYER_PULSAR_URLInternal URL to pulsar broker e.g. pulsar://datalayer-pulsar-broker.datalayer-pulsar.svc.cluster.local:6650.
DATALAYER_USERS_PVC_NAMEName of the permanent volume claim for user storage.
DATALAYER_VAULT_URLInternal URL to the Vault service.
DATALAYER_VAULT_TOKENToken to access the Vault service.
DATALAYER_RUN_URLThe hostname of the public-facing services. You will need to update your DNS system to point the Load Balancer IP address to the hostname of the URL.

The Load Balancer is created by the Ingress service.

SSL certificates will be created by the cert-manager service for that hostname.
DATALAYER_RUNTIME_ENVdev, qa or prod
DATALAYER_SMTP_HOSTDefine the SMTP server hostname for email communications.
DATALAYER_SMTP_PORTDefine the SMTP server port number for email communications.
DATALAYER_SMTP_USERNAMEDefine the SMTP server username for email communications.
DATALAYER_SMTP_PASSWORDDefine the SMTP server password for email communications.
DATALAYER_SOLR_USERNAMEDefine the username to protect Solr.
DATALAYER_SOLR_PASSWORDDefine the password to protect Solr.
DATALAYER_SOLR_BACKUP_S3_BUCKET_NAMEDefine the S3 bucket name for the Solr backups.
DATALAYER_SOLR_BACKUP_S3_BUCKET_REGIONDefine the S3 bucket region for the Sorl backups.
DATALAYER_SUPPORT_EMAILDefine the email for support communications.
e.g. support@your-company.io
KUBECONFIGThe path to your Kubeconfig file.
OTEL_SDK_DISABLEDDisable OpenTelemetry instrumentation on service and use non-enriched logs (no metadata) [true or false].
OTEL_EXPORTER_OTLP_METRICS_ENDPOINTURL for exporting services metrics and traces to opentelemetry collector.
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTURL for exporting services metrics and traces to opentelemetry collector.
tip

Use any of the following command to generate tokens.

TOKEN=$(openssl rand -hex 32)
TOKEN=$(python -c "import secrets; print(secrets.token_hex(32))")

Minimal Configuration

The minimal setup for IAM, Jupyter, Operator is the listed here with example values.

Create a ~/.datalayer/datalayerrc and source that file from ~/.bash_profile or similar based on your shell.

#!/usr/bin/env bash

# ~/.datalayer/datalayerrc

export DATALAYER_AUTHZ_ENGINE="none"
export DATALAYER_CDN_URL="https://datalayer.io"
export DATALAYER_CLUSTER_NAME="my-cluster"
export DATALAYER_CLUSTER_TYPE="eks"
export DATALAYER_CREDITS_PROVIDER="stripe"
export DATALAYER_DOCKER_REGISTRY="${DATALAYER_DOCKER_REGISTRY_HOST}/datalayer"
export DATALAYER_DOCKER_REGISTRY_HOST="my-registry.net"
export DATALAYER_DOCKER_REGISTRY_PASSWORD="..."
export DATALAYER_DOCKER_REGISTRY_USERNAME="..."
export DATALAYER_HELM_REGISTRY="${DATALAYER_HELM_REGISTRY_HOST}/datalayer-charts"
export DATALAYER_HELM_REGISTRY_HOST="my-registry.net"
export DATALAYER_HELM_REGISTRY_PASSWORD="..."
export DATALAYER_HELM_REGISTRY_USERNAME="..."
export DATALAYER_IAM_API_KEY="..."
export DATALAYER_INITIAL_USER_CREDITS=10
export DATALAYER_JWT_ALGORITHM="HS256"
export DATALAYER_JWT_ALLOWED_ISSUERS="https://my-id.datalayer.run"
export DATALAYER_JWT_ISSUER="https://my-id.datalayer.run"
export DATALAYER_JWT_SECRET="..."
export DATALAYER_JWT_SKIP_EXTERNAL_TOKEN_SIGNATURE_VERIFICATION=false
export DATALAYER_OPERATOR_API_KEY="..."
export DATALAYER_PUB_SUB_ENGINE="none"
export DATALAYER_RUNTIME_ENV="prod"
export DATALAYER_RUN_URL=https://my-cluster.datalayer.run
export DATALAYER_SOLR_PASSWORD="..."
export DATALAYER_SOLR_USERNAME="admin"
export KUBECONFIG="~/.datalayer/my-cluster.yaml"
export OTEL_SDK_DISABLED=true
source ~/.datalayer/datalayerrc

Stripe Addon

The configuration for the Stripe Addon is listed here.

VariableDescription
DATALAYER_STRIPE_API_KEYPrivate Stripe API key.
DATALAYER_STRIPE_CHECKOUT_ROUTEReact router route (relative to usage route) to redirect the user to the payment form (default is /usage/payment).
DATALAYER_STRIPE_JS_API_KEYPublic Stripe API key.
DATALAYER_STRIPE_PRODUCT_IDStripe Product ID.
DATALAYER_STRIPE_WEBHOOK_SECRETStripe webhook secret.