Resources
Metabase
-
db
postgres
Ready
-
app
metabase/metabase:latest
Running
-
ingress
metabase.example.com
Live
Parameters
Deploy Metabase
App Name required
metabase
Domain required
metabase.example.com
Site name
Metabase
Anonymous usage tracking
Off
Report timezone
UTC
SMTP host
smtp.example.com
Outgoing mail for alerts and invites. Optional.
SMTP port
587
SMTP username
SMTP password
app password
From address
Enable HTTPS
On
Cancel Deploy
YAML
apiVersion: leaf/v1
kind: Template
metadata:
name: metabase
displayName: 'Metabase'
description: 'Dashboards and questions over any SQL database, with a UI non-engineers can use.'
icon: https://github.com/metabase.png?size=256
version: '1.0.0'
category: analytics
tags: ['bi', 'dashboards', 'sql', 'reporting']
keywords: ['business intelligence', 'looker', 'superset', 'charts', 'queries']
homepage: https://www.metabase.com
license: AGPL-3.0-only
parameters:
- name: appName
displayName: 'App Name'
type: string
default: 'metabase'
required: true
validation:
pattern: '^[a-z][a-z0-9-]{1,58}[a-z0-9]$'
message: 'Must be lowercase alphanumeric with hyphens, 3-60 chars'
- name: domain
displayName: 'Domain'
type: string
required: true
placeholder: 'metabase.example.com'
- name: siteName
displayName: 'Site name'
type: string
default: 'Metabase'
- name: anonTracking
displayName: 'Anonymous usage tracking'
type: boolean
default: false
- name: timezone
displayName: 'Report timezone'
type: string
default: 'UTC'
- name: smtpHost
displayName: 'SMTP host'
description: 'Outgoing mail for alerts and invites. Optional.'
type: string
default: ''
placeholder: 'smtp.example.com'
- name: smtpPort
displayName: 'SMTP port'
type: number
default: 587
- name: smtpUser
displayName: 'SMTP username'
type: string
default: ''
placeholder: '[email protected]'
- name: smtpPassword
displayName: 'SMTP password'
type: string
default: ''
placeholder: 'app password'
- name: mailFrom
displayName: 'From address'
type: string
default: ''
placeholder: '[email protected]'
- name: enableTls
displayName: 'Enable HTTPS'
type: boolean
default: true
resources:
- name: db
type: database
config:
name: '{{ params.appName }}-db'
- name: app
type: deployment
config:
name: '{{ params.appName }}'
image: metabase/metabase:latest
replicas: 1
ports:
- name: http
containerPort: 3000
servicePort: 3000
protocol: TCP
env:
- key: MB_DB_TYPE
value: postgres
- key: MB_DB_HOST
value: '{{ resources.db.host }}'
- key: MB_DB_PORT
value: '{{ resources.db.port }}'
- key: MB_DB_DBNAME
value: '{{ resources.db.dbName }}'
- key: MB_DB_USER
value: '{{ resources.db.dbUser }}'
- key: MB_DB_PASS
value: '{{ resources.db.dbPassword }}'
secret: true
- key: MB_SITE_URL
value: 'https://{{ params.domain }}'
- key: MB_SITE_NAME
value: '{{ params.siteName }}'
- key: MB_ANON_TRACKING_ENABLED
value: '{{ params.anonTracking }}'
- key: JAVA_TIMEZONE
value: '{{ params.timezone }}'
- key: MB_EMAIL_SMTP_SECURITY
value: starttls
- key: MB_EMAIL_SMTP_HOST
value: '{{ params.smtpHost }}'
- key: MB_EMAIL_SMTP_PORT
value: '{{ params.smtpPort }}'
- key: MB_EMAIL_SMTP_USERNAME
value: '{{ params.smtpUser }}'
- key: MB_EMAIL_SMTP_PASSWORD
value: '{{ params.smtpPassword }}'
secret: true
- key: MB_EMAIL_FROM_ADDRESS
value: '{{ params.mailFrom }}'
- name: ingress
type: ingress
config:
host: '{{ params.domain }}'
tlsEnabled: '{{ params.enableTls }}'
routes:
- path: /
serviceName: '{{ resources.app.serviceName }}'
servicePort: 3000