Deploy and Operate Metabase
Metabase is open-source business intelligence: dashboards, questions, and SQL exploration. Edka deploys it as a managed app in your Kubernetes cluster and connects it to a managed PostgreSQL database for its own metadata instead of the embedded H2 database.
Architecture
Section titled “Architecture”| Component | Purpose | How Edka connects it |
|---|---|---|
| Metabase | Dashboards, questions, and SQL exploration UI | Installed from the Edka Metabase chart, single replica on port 3000 |
| PostgreSQL | Metabase’s own metadata: questions, dashboards, users, and saved database credentials | Select an installation, database, and user from the Databases workspace |
| Envoy Gateway | HTTPS access on one hostname | Select a traffic class and hostname |
Prerequisites
Section titled “Prerequisites”Before installing Metabase, prepare:
- an Edka cluster with an Envoy Gateway traffic class and managed TLS
- a DNS hostname for the Metabase dashboard
- a managed PostgreSQL installation with a database and login user for Metabase to use as its application database
Create the database and user in the Databases workspace first.
Install Metabase
Section titled “Install Metabase”- Open your cluster and select Apps.
- Find Metabase and select Install.
- In General, choose the Namespace and decide whether Edka may automatically apply compatible chart and image updates.
- In Database, select the PostgreSQL Installation, PostgreSQL Database, and PostgreSQL User Metabase should use for its own metadata. Edka resolves the connection host, port, schema, and SSL settings from the selected installation, and the password from the selected user’s Kubernetes Secret.
- In Configuration, decide whether to enable Anonymous Tracking.
- Review resources, placement, and access.
- Select Install App and follow the operation progress until Metabase is ready.
Secrets Handling
Section titled “Secrets Handling”| Secret | Purpose | Handling |
|---|---|---|
| Encryption Secret Key | Encrypts the credentials of databases Metabase connects to, at rest | Generated at install (32 characters, minimum 16), kept stable for the app’s lifetime, not editable after install |
| PostgreSQL Password | Authenticates Metabase to its application database | Resolved from the selected PostgreSQL user’s Secret and kept in sync on updates |
The Encryption Secret Key cannot be revealed from the app configuration view after installation.
Resources, Placement, and Access
Section titled “Resources, Placement, and Access”| Setting | Default |
|---|---|
| CPU request | 500m |
| Memory request | 1Gi |
| CPU limit | 2000m |
| Memory limit | 2Gi |
Metabase runs as a single replica. You can pin pods to a node pool and have Edka automatically add tolerations for that pool’s taints.
Metabase always publishes through an Envoy Gateway traffic class. Select a
Traffic Class and a Hostname for the dashboard; Edka publishes it
through an HTTPRoute and sets the Metabase site URL to that hostname.
Updates
Section titled “Updates”Auto-update is disabled by default. When Auto-update App is enabled,
choose an Auto-update Policy of patch, minor, major, all, or a custom tag
pattern (using a glob: or regexp: prefix), and an Auto-update Check
interval of every 5 minutes, every 30 minutes, every hour, every 6 hours, or
daily. Edka tracks the Metabase Helm chart version and the metabase/metabase
image tag as separate auto-update targets.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Check |
|---|---|
| Install fails validating PostgreSQL settings | Confirm the selected PostgreSQL installation, database, and user resolve a host, port, database name, and user; Edka validates these before installing |
| Pod stays unready | Verify the selected PostgreSQL installation, database, and user are reachable and the password Secret exists |
| Dashboard unreachable externally | Confirm the selected Traffic Class and Hostname resolve through the Gateway |