Skip to main content
Version Next

CloudBeaver Configuration

The tdp-cloudbeaver chart packages CloudBeaver 25.2.3 for Kubernetes, a web-based database administration interface.

What is CloudBeaver?

CloudBeaver is the web version of DBeaver — a database administration and query tool accessible through the browser, with no need to install anything on the user's machine.

In the TDP context, CloudBeaver is the centralized interface for exploring and querying data in ClickHouse, Trino, and PostgreSQL directly from the browser.

Learn more

See CloudBeaver — Concepts for a complete overview of the tool, its architecture and how it works.

Why use CloudBeaver in TDP?

In TDP Kubernetes, databases live inside the cluster and are not directly accessible from your machine.

CloudBeaver solves this problem: it runs inside the cluster, has access to all database services, and you reach everything via a single web address.

Deployed components

ComponentDescription
CloudBeaver ServerWeb server that manages connections and sessions
WorkspacePersistent volume with user configurations and workspaces
External PostgreSQL (optional)CloudBeaver metadata database (configurations, users) when database.enabled=true
Auto-configuration

The chart supports autoConfig.enabled=true to skip the initial configuration wizard. Use this when you want CloudBeaver to start already configured, without going through the manual setup on first launch.

The distribution includes only values.yaml; do not version real credentials — use private values files and/or Secrets.

Installation (OCI)

TDP charts are distributed via the Tecnisys OCI registry. See Helm Charts Registry in General Configuration for authentication details.

Terminal input
helm upgrade --install <release> \
oci://registry.tecnisys.com.br/tdp/tdp-cloudbeaver \
-n <namespace> --create-namespace \
-f meu-values.yaml

ClickHouse integration

tdp-cloudbeaver:
dataSources:
enabled: true
enabledClickhouse: true
clickhouseHost: "<clickhouse-service>.<namespace>.svc.cluster.local"
clickhousePort: 8123
database: "default"
user: "tdpuser"
clickhouseTdpUser:
enabled: true
password: "<password>"

In production, prefer passwordSecret / a Secret created outside Helm instead of a plain-text password in the values file.

Secret (reference)

Terminal input
kubectl create secret generic <clickhouse-secret-name> \
--from-literal=password='<password>' \
-n <namespace>
tdp-cloudbeaver:
dataSources:
enabled: true
passwordSecret:
name: <clickhouse-secret-name>
key: password
secret:
enabled: false

Trino integration

tdp-cloudbeaver:
dataSources:
enabled: true
enabledTrino: true
nameConnector: "Trino TDP"
trinoHost: "<trino-service>.<namespace>.svc.cluster.local"
trinoPort: 8080
database: "default"
user: "admin"

External database (PostgreSQL)

tdp-cloudbeaver:
database:
enabled: true
type: "postgresql"
host: "<postgresql-service>.<namespace>.svc.cluster.local"
port: "5432"
databaseName: "cloudbeaver_db"
schema: "public"
user: "cloudbeaver_user"
driver: "postgres-jdbc"
passwordSecret:
name: "cloudbeaver-db-secret"
key: "password"
postgresSecret:
name: "<postgresql-release-secret-name>"
key: "postgres-password"

Environment variables (example)

tdp-cloudbeaver:
extraEnvVars:
- name: CLOUDBEAVER_DB_DRIVER
value: "postgres-jdbc"
- name: CLOUDBEAVER_DB_URL
value: "jdbc:postgresql://<postgresql-host>:5432/cloudbeaver_db"
- name: CLOUDBEAVER_DB_SCHEMA
value: "public"
- name: CLOUDBEAVER_DB_USER
value: "cloudbeaver_user"
- name: CLOUDBEAVER_DB_PASSWORD
valueFrom:
secretKeyRef:
name: cloudbeaver-db-secret
key: password

S3 / MinIO (extraEnvVars)

Terminal input
kubectl create secret generic cloudbeaver-s3-credentials \
--from-literal=access-key='<access-key>' \
--from-literal=secret-key='<secret-key>' \
-n <namespace>
tdp-cloudbeaver:
extraEnvVars:
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
name: cloudbeaver-s3-credentials
key: access-key
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
name: cloudbeaver-s3-credentials
key: secret-key
- name: AWS_DEFAULT_REGION
value: "us-east-1"
- name: S3_ENDPOINT
value: "https://<s3-or-minio-host>"
- name: S3_BUCKET
value: "<bucket-name>"

Automatic configuration (skip setup wizard)

tdp-cloudbeaver:
autoConfig:
enabled: true
name: tdp-cloudbeaver-auto-config
serverName: "TDP - CloudBeaver"
serverURL: "http://0.0.0.0:8978"
adminName: cbadmin
adminPassword: "<admin-password>"
extraVolumes:
- name: auto-config
configMap:
name: tdp-cloudbeaver-auto-config
extraVolumeMounts:
- name: auto-config
mountPath: /opt/cloudbeaver/conf/.cloudbeaver.auto.conf
subPath: .cloudbeaver.auto.conf
readOnly: true
Attention

Requires an empty workspace. If the instance has been used before, remove the PVC before reinstalling (see the chart documentation or helm show values for the exact behavior).

Terminal input
helm uninstall <release> -n <namespace>
kubectl delete pvc -n <namespace> -l <release-selector>

Ingress

See Ingress — CloudBeaver.

Development environment (smaller resources)

tdp-cloudbeaver:
service:
type: ClusterIP
resources:
limits:
cpu: "500m"
memory: "1Gi"
requests:
cpu: "250m"
memory: "512Mi"
persistence:
size: 2Gi

Access

NodePort

Terminal input
kubectl get svc -n <namespace> <service-name> \
-o jsonpath='{.spec.ports[0].nodePort}'
kubectl get nodes -o wide

URL: http://<node-ip>:<nodeport>.

Port-forward

Terminal input
kubectl port-forward -n <namespace> svc/<service-name> 8978:8978

Open http://localhost:8978.

Main parameters

ParameterDescription
tdp-cloudbeaver.service.typeService type (e.g. NodePort)
tdp-cloudbeaver.persistence.*PVC
tdp-cloudbeaver.ingress.*Optional Ingress
tdp-cloudbeaver.dataSources.*ClickHouse / Trino
tdp-cloudbeaver.database.*Metadata PostgreSQL
tdp-cloudbeaver.autoConfig.*Automatic initial configuration

Full list in the chart's values.yaml.

Troubleshooting

Terminal input
kubectl logs -n <namespace> -l app.kubernetes.io/name=tdp-cloudbeaver
kubectl get jobs -n <namespace>
kubectl logs -n <namespace> -l job-name=tdp-cloudbeaver-create-db