Overview
DBeaver is a web-based database administration tool that provides a modern interface for managing multiple database connections. This template deploys the self-hosted CloudBeaver web application — the browser-based edition of DBeaver — giving you a full-featured SQL editor, connection manager, and data browser for PostgreSQL, MySQL, MariaDB, MongoDB, Redis, SQLite, Oracle, SQL Server, and more. The admin account is bootstrapped from an opaque secret you create before installing, and the console is reachable only from inside the GVC unless you deliberately publish it.What Gets Created
- Stateful CloudBeaver Workload (
RELEASE_NAME-dbeaver) — a single CloudBeaver instance serving the web UI and API on port8978. - Volume Set (
RELEASE_NAME-dbeaver-vs) — a 10 GiBext4volume mounted at/opt/cloudbeaver/workspace, holding the server configuration, saved connections, and user accounts. A final snapshot is taken when the volume set is deleted and kept for 7 days; there are no scheduled snapshots. - Identity & Policy — an identity bound to the workload and a policy granting it
revealon exactly the admin-password secret you created, and nothing else. - No template-created secret — the only credential lives in the prerequisite secret you own.
This template does not create a GVC. You must deploy it into an existing GVC.
Prerequisites
One opaque secret must exist before you install. The admin password guards a database administration console, and whoever holds it can query every database that console is connected to — so it is never a Helm value and never lands in the release.1
Create the admin password secret
Choose your own strong password — use at least 8 characters — and store it as the secret’s payload:Set
admin.passwordSecretName to the name you used. The default in values.yaml is my-dbeaver-admin-password.2
Pick an admin login name
Set
admin.name to the login name you want. It is not sensitive and stays a plain value; the default is cbadmin.Installation
To install, follow the instructions for your preferred method:UI
Browse, install, and manage templates visually
CLI
Manage templates from your terminal
Terraform
Declare templates in your Terraform configurations
Pulumi
Declare templates in your Pulumi programs
Configuration
The defaultvalues.yaml for this template:
Admin Credentials
admin.name— the admin login name, created when the workspace is first initialized. Not sensitive, so it stays a plain value. Defaultcbadmin.admin.passwordSecretName— the name of the opaque secret holding the admin password. The chart references it ascpln://secret/NAME.payload, so the password itself never appears in the workload spec or the Helm release.
Access
publicAccess.enabled— whentrue, the workload’s external inbound firewall opens to0.0.0.0/0and Control Plane assigns a*.cpln.appcanonical endpoint. Defaults tofalse. With it off, requests to the canonical endpoint return403 RBAC: access denied.internalAccess.type— which workloads inside Control Plane may reach the console. Defaults tosame-gvc.internalAccess.workloads— list of workload links, used only whentypeisworkload-list.
An access change takes up to a couple of minutes to take effect. Firewall changes propagate asynchronously: enabling public access was measured at 107 seconds from upgrade to the first
200, passing through 504 on the way, and disabling it at about 120 seconds, passing through 503 and 504 before settling on 403. Re-poll before concluding the knob did nothing.A request blocked by internalAccess.type: none hangs until your client times out rather than being refused — the TCP connection is accepted by the local sidecar and no bytes are ever returned. “Connected, but no response” is what a correctly closed internal firewall looks like here.Outbound Connectivity
The workload ships with an empty outbound firewall (outboundAllowCIDR: []), and there is no value to change it.
Resources and Storage
resources.cpu/resources.memory— CPU and memory allocated to the CloudBeaver workload.volumeset.capacity— persistent volume size in GiB for workspace data, saved connections, and user accounts (minimum 10).
Connecting
Add database connections from the UI after logging in, pointing them at in-GVC hosts over internal DNS.
Upgrading From 1.2.1 or Earlier
What to do before upgrading:
1
Create the admin password secret
Even though it will not change the account you already log in with, the workload will not start without it. Use the same password your install currently uses so nothing is ambiguous later:Then set
admin.passwordSecretName to that name, and remove admin.password from your values — it no longer exists in the chart.2
Decide whether you still want public access
If you were relying on the internet-facing URL, set
publicAccess.enabled: true explicitly. If you were not, do nothing and the console becomes internal-only. Either way, allow a couple of minutes for the firewall change to propagate.3
Expect your old login name and password to keep working
The account already exists in the workspace database, so the upgrade does not re-bootstrap it — neither
admin.name nor the password secret is applied to a workspace that is already initialized (see Admin Credentials). Keep signing in with the name and password the workspace was bootstrapped with — typically adminusername, not the new cbadmin default. If either is one you would rather not keep, change it in the CloudBeaver UI after the upgrade.Important Notes
- Create the admin-password secret before installing. A missing secret does not fail the install —
cpln helm installreports success and the workload then sits at zero replicas waiting on it, with no container logs to diagnose from. - The admin name and password are read only when the workspace is first initialized. Rotating the secret or changing
admin.nameafterwards changes what the container sees and changes nothing about who can log in. Change the password in the CloudBeaver UI instead. - Anyone who can read this workload’s logs can authenticate as the admin, because CloudBeaver logs the submitted password hash and its API accepts that hash as a credential.
publicAccess.enabled: trueputs a database administration console on the public internet. Anyone who reaches it needs only the admin password to query every connected database. Prefer leaving it off and reaching the UI from inside the GVC.- Egress is closed and there is no knob for it — only databases inside the same GVC can be connected. Managed services such as RDS, Cloud SQL, and Atlas are unreachable.
- Access changes take up to a couple of minutes to propagate. A
publicAccessorinternalAccesschange that appears to do nothing has usually just not settled yet. - The first
helm upgradeafter an install restarts the workload, taking the UI down for roughly 30 to 60 seconds even when nothing about the values changed. This template runs a single replica, so there is no other instance to serve during the restart. Later no-op upgrades do not restart it. - Saved connections and users live on the volume set and survive redeploys and upgrades.
cpln helm uninstalldeletes the volume set, taking every saved connection with it. - There is no scheduled-backup feature. The volume set takes no scheduled snapshots — the only one is the final snapshot taken when it is deleted, kept for 7 days. Export anything you cannot lose from the CloudBeaver UI before uninstalling.
- The prerequisite secret is not owned by the release — it survives
cpln helm uninstalland must be deleted manually if you no longer need it.
External References
CloudBeaver Documentation
Official DBeaver CloudBeaver documentation
Server Configuration
Reference for CloudBeaver server settings
Admin Password Recovery
Upstream procedure for regaining admin access
DBeaver GitHub
CloudBeaver open-source repository
DBeaver Template
View the source files, default values, and chart definition