|
| 1 | +# Metabase |
| 2 | + |
| 3 | +[Metabase](http://metabase.com) is the easy, open source way for everyone in your company to ask questions and learn from data. |
| 4 | + |
| 5 | +## TL;DR; |
| 6 | + |
| 7 | +```bash |
| 8 | +helm repo add ameier38 https://ameier38.github.io/charts |
| 9 | +helm repo update |
| 10 | +helm install -n metabase ameier38/metabase |
| 11 | +``` |
| 12 | + |
| 13 | +## Introduction |
| 14 | + |
| 15 | +This chart bootstraps a [Metabase](https://github.com/metabase/metabase) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. |
| 16 | + |
| 17 | +## Prerequisites |
| 18 | + |
| 19 | +- Kubernetes 1.4+ with Beta APIs enabled |
| 20 | + |
| 21 | +## Installing the Chart |
| 22 | + |
| 23 | +To install the chart with the release name `my-release`: |
| 24 | + |
| 25 | +```bash |
| 26 | +helm install -n my-release ameier38/metabase |
| 27 | +``` |
| 28 | + |
| 29 | +The command deploys Metabase on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. |
| 30 | + |
| 31 | +> **Tip**: List all releases using `helm list` |
| 32 | +
|
| 33 | +## Uninstalling the Chart |
| 34 | + |
| 35 | +To uninstall/delete the `my-release` deployment: |
| 36 | + |
| 37 | +```bash |
| 38 | +helm delete my-release |
| 39 | +``` |
| 40 | + |
| 41 | +The command removes all the Kubernetes components associated with the chart and deletes the release. |
| 42 | + |
| 43 | +## Configuration |
| 44 | + |
| 45 | +The following table lists the configurable parameters of the Metabase chart and their default values. |
| 46 | + |
| 47 | +| Parameter | Description | Default | |
| 48 | +| ------------------------------- | ----------------------------------------------------------- | ----------------- | |
| 49 | +| replicaCount | desired number of controller pods | 1 | |
| 50 | +| podAnnotations | controller pods annotations | {} | |
| 51 | +| podLabels | extra pods labels | {} | |
| 52 | +| image.repository | controller container image repository | metabase/metabase | |
| 53 | +| image.tag | controller container image tag | v0.36.3 | |
| 54 | +| image.pullPolicy | controller container image pull policy | IfNotPresent | |
| 55 | +| fullnameOverride | String to fully override metabase.fullname template | null | |
| 56 | +| listen.host | Listening on a specific network host | 0.0.0.0 | |
| 57 | +| listen.port | Listening on a specific network port | 3000 | |
| 58 | +| ssl.enabled | Enable SSL to run over HTTPS | false | |
| 59 | +| ssl.port | SSL port | null | |
| 60 | +| ssl.keyStore | The key store in JKS format | null | |
| 61 | +| ssl.keyStorePassword | The password for key Store | null | |
| 62 | +| database.type | Backend database type | h2 | |
| 63 | +| database.encryptionKey | Secret key for encrypt sensitive information into database | null | |
| 64 | +| database.connectionURI | Database connection URI (alternative to the below settings) | null | |
| 65 | +| database.host | Database host | null | |
| 66 | +| database.port | Database port | null | |
| 67 | +| database.dbname | Database name | null | |
| 68 | +| database.username | Database username | null | |
| 69 | +| database.password | Database password | null | |
| 70 | +| database.existingSecret | Exising secret for database credentials | null | |
| 71 | +| database.existingSecretUsernameKey | Username key for exising secret | null | |
| 72 | +| database.existingSecretPasswordKey | Password key for exising secret | null | |
| 73 | +| database.existingSecretConnectionURIKey | ConnectionURI key for exising secret | null | |
| 74 | +| password.complexity | Complexity requirement for Metabase account's password | normal | |
| 75 | +| password.length | Minimum length required for Metabase account's password | 6 | |
| 76 | +| timeZone | Service time zone | UTC | |
| 77 | +| emojiLogging | Get a funny emoji in service log | true | |
| 78 | +| javaOpts | JVM options | null | |
| 79 | +| pluginsDirectory | A directory with Metabase plugins | null | |
| 80 | +| livenessProbe.initialDelaySeconds | Delay before liveness probe is initiated | 120 | |
| 81 | +| livenessProbe.timeoutSeconds | When the probe times out | 30 | |
| 82 | +| livenessProbe.failureThreshold | Minimum consecutive failures for the probe | 6 | |
| 83 | +| readinessProbe.initialDelaySeconds | Delay before readiness probe is initiated | 30 | |
| 84 | +| readinessProbe.timeoutSeconds | When the probe times out | 3 | |
| 85 | +| readinessProbe.periodSeconds | How often to perform the probe | 5 | |
| 86 | +| service.type | ClusterIP, NodePort, or LoadBalancer | ClusterIP | |
| 87 | +| service.loadBalancerSourceRanges | Array of Source Ranges | null | |
| 88 | +| service.externalPort | Service external port | 80 | |
| 89 | +| service.internalPort | Service internal port, should be the same as `listen.port` | 3000 | |
| 90 | +| service.nodePort | Service node port | null | |
| 91 | +| service.annotations | Service annotations | {} | |
| 92 | +| ingress.enabled | Enable ingress controller resource | false | |
| 93 | +| ingress.hosts | Ingress resource hostnames | null | |
| 94 | +| ingress.path | Ingress path | / | |
| 95 | +| ingress.labels | Ingress labels configuration | null | |
| 96 | +| ingress.annotations | Ingress annotations configuration | {} | |
| 97 | +| ingress.tls | Ingress TLS configuration | null | |
| 98 | +| log4jProperties | Custom `log4j.properties` file | null | |
| 99 | +| resources | Server resource requests and limits | {} | |
| 100 | +| nodeSelector | Node labels for pod assignment | {} | |
| 101 | +| tolerations | Toleration labels for pod assignment | [] | |
| 102 | +| affinity | Affinity settings for pod assignment | {} | |
| 103 | +| jetty.maxThreads | Jetty max number of threads | null | |
| 104 | +| jetty.minThreads | Jetty min number of threads | null | |
| 105 | +| jetty.maxQueued | Jetty max queue size | null | |
| 106 | +| jetty.maxIdleTime | Jetty max idle time | null | |
| 107 | +| siteUrl | Base URL, useful for serving behind a reverse proxy | null | |
| 108 | +| session.maxSessionAge | Session expiration defined in minutes | 20160 | |
| 109 | +| session.sessionCookies | When browser is closed, user login session will expire | null | |
| 110 | + |
| 111 | +The above parameters map to the env variables defined in [metabase](http://github.com/metabase/metabase). For more information please refer to the [metabase documentations](http://www.metabase.com/docs/v0.36.3/). |
| 112 | + |
| 113 | +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, |
| 114 | + |
| 115 | +```bash |
| 116 | +helm install --name my-release \ |
| 117 | + --set timeZone=US/Pacific,password.complexity=strong,password.length=10 \ |
| 118 | + ameier38/metabase |
| 119 | +``` |
| 120 | + |
| 121 | +The above command sets the time zone to `US/Pacific`, `strong` user password complexity and minimum length at `10` |
| 122 | + |
| 123 | +Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, |
| 124 | + |
| 125 | +```bash |
| 126 | +helm install --name my-release -f values.yaml ameier38/metabase |
| 127 | +``` |
| 128 | + |
| 129 | +> **Tip**: You can use the default [values.yaml](values.yaml) |
0 commit comments