diff --git a/charts/budibase/README.md b/charts/budibase/README.md
index efa78ba75c..961776b977 100644
--- a/charts/budibase/README.md
+++ b/charts/budibase/README.md
@@ -1,39 +1,193 @@
-# Budibase
+# budibase
-[Budibase](https://budibase.com/) Budibase is an open source low-code platform, helping thousands of teams build apps for their workplace in minutes.
-
-## TL;DR;
-```console
-$ cd chart
-$ helm install budibase .
-```
-
-## Introduction
-
-This chart bootstraps a [Budibase](https://budibase.com/) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager.
+Budibase is an open source low-code platform, helping thousands of teams build apps for their workplace in minutes.
## Prerequisites
-- helm v3 or above
+- `helm` v3 or above
- Kubernetes 1.4+
-- PV provisioner support in the underlying infrastructure (with persistence storage enabled)
+- A storage controller (for `PersistentVolume` creation, if you want to ensure your data does not get lost when pods restart)
## Installing the Chart
-To install the chart with the release name `budi-release`:
+To install the chart from our repository:
```console
-$ helm install budi-release .
+$ helm repo add budibase https://budibase.github.io/budibase/
+$ helm repo update
+$ helm install --create-namespace --namespace budibase budibase budibase/budibase
```
-The command deploys Budibase on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation.
+To install the chart from this repo:
-> **Tip**: List all releases using `helm list`
+```console
+$ git clone git@github.com:budibase/budibase.git
+$ cd budibase/charts/budibase
+$ helm install --create-namespace --namespace budibase budibase .
+```
+
+## Example minimal configuration
+
+Here's an example `values.yaml` that would get a Budibase instance running in a home
+cluster using an nginx ingress controller and NFS as cluster storage (basically one of our
+staff's homelabs).
+
+
+
+```yaml
+ingress:
+ enabled: true
+ annotations:
+ nginx.ingress.kubernetes.io/client-max-body-size: 150M
+ nginx.ingress.kubernetes.io/proxy-body-size: 50m
+ className: "nginx"
+ hosts:
+ - host: budibase.local # set this to whatever DNS name you'd use
+ paths:
+ - backend:
+ service:
+ name: proxy-service
+ port:
+ number: 10000
+ path: /
+ pathType: Prefix
+
+couchdb:
+ persistentVolume:
+ enabled: true
+ storageClass: "nfs-client"
+ adminPassword: admin
+
+ image:
+ repository: samwho/test
+ tag: latest
+ pullPolicy: Always
+
+ objectStore:
+ storageClass: "nfs-client"
+ redis:
+ storageClass: "nfs-client"
+```
+
+If you wanted to use this when bringing up Budibase in your own cluster, you could save it
+to your hard disk and run the following:
+
+```console
+$ helm install --create-namespace --namespace budibase budibase . -f values.yaml
+```
+
+
+
+## Configuration reference
+
+| Key | Type | Default | Description |
+|-----|------|---------|-------------|
+| affinity | object | `{}` | Sets the affinity for all pods created by this chart. Should not ordinarily need to be changed. See for more information on affinity. |
+| awsAlbIngress.certificateArn | string | `""` | If you're wanting to use HTTPS, you'll need to create an ACM certificate and specify the ARN here. |
+| awsAlbIngress.enabled | bool | `false` | Whether to create an ALB Ingress resource pointing to the Budibase proxy. Requires the AWS ALB Ingress Controller. |
+| couchdb.clusterSize | int | `1` | The number of replicas to run in the CouchDB cluster. We set this to 1 by default to make things simpler, but you can set it to 3 if you need a high-availability CouchDB cluster. |
+| couchdb.couchdbConfig.couchdb.uuid | string | `"budibase-couchdb"` | Unique identifier for this CouchDB server instance. You shouldn't need to change this. |
+| couchdb.image | object | `{}` | We use a custom CouchDB image for running Budibase and we don't support using any other CouchDB image. You shouldn't change this, and if you do we can't guarantee that Budibase will work. |
+| globals.apiEncryptionKey | string | `""` | Used for encrypting API keys and environment variables when stored in the database. You don't need to set this if `createSecrets` is true. |
+| globals.appVersion | string | `""` | The version of Budibase to deploy. Defaults to what's specified by {{ .Chart.AppVersion }}. Ends up being used as the image version tag for the apps, proxy, and worker images. |
+| globals.automationMaxIterations | string | `"200"` | The maximum number of iterations allows for an automation loop step. You can read more about looping here: . |
+| globals.budibaseEnv | string | `"PRODUCTION"` | Sets the environment variable BUDIBASE_ENVIRONMENT for the apps and worker pods. Should not ordinarily need to be changed. |
+| globals.cookieDomain | string | `""` | Sets the domain attribute of the cookie that Budibase uses to store session information. See for details on why you might want to set this. |
+| globals.createSecrets | bool | `true` | Create an internal API key, JWT secret, object store access key and secret, and store them in a Kubernetes `Secret`. |
+| globals.enableAnalytics | string | `"1"` | Whether to enable analytics or not. You can read more about our analytics here: . |
+| globals.google | object | `{"clientId":"","secret":""}` | Google OAuth settings. These can also be set in the Budibase UI, see for details. |
+| globals.google.clientId | string | `""` | Client ID of your Google OAuth app. |
+| globals.google.secret | string | `""` | Client secret of your Google OAuth app. |
+| globals.httpMigrations | string | `"0"` | Whether or not to enable doing data migrations over the HTTP API. If this is set to "0", migrations are run on startup. You shouldn't ordinarily need to change this. |
+| globals.internalApiKey | string | `""` | API key used for internal Budibase API calls. You don't need to set this if `createSecrets` is true. |
+| globals.internalApiKeyFallback | string | `""` | A fallback value for `internalApiKey`. If you're rotating your encryption key, you can set this to the old value for the duration of the rotation. |
+| globals.jwtSecret | string | `""` | Secret used for signing JWTs. You don't need to set this if `createSecrets` is true. |
+| globals.jwtSecretFallback | string | `""` | A fallback value for `jwtSecret`. If you're rotating your JWT secret, you can set this to the old value for the duration of the rotation. |
+| globals.multiTenancy | string | `"0"` | Whether to enable the multi-tenancy feature or not. "0" means an installation can only have one tenant. "1" allows multiple tenants. |
+| globals.platformUrl | string | `""` | Set the `platformUrl` binding. You can also do this in Settings > Organisation if you are self-hosting. |
+| globals.smtp.enabled | bool | `false` | Whether to enable SMTP or not. |
+| globals.smtp.from | string | `""` | The email address to use in the "From:" field of emails sent by Budibase. |
+| globals.smtp.host | string | `""` | The hostname of your SMTP server. |
+| globals.smtp.password | string | `""` | The password to use when authenticating with your SMTP server. |
+| globals.smtp.port | string | `"587"` | The port of your SMTP server. |
+| globals.smtp.user | string | `""` | The username to use when authenticating with your SMTP server. |
+| globals.tenantFeatureFlags | string | `"*:LICENSING,*:USER_GROUPS,*:ONBOARDING_TOUR"` | Sets what feature flags are enabled and for which tenants. Should not ordinarily need to be changed. |
+| imagePullSecrets | list | `[]` | Passed to all pods created by this chart. Should not ordinarily need to be changed. |
+| ingress.className | string | `""` | What ingress class to use. |
+| ingress.enabled | bool | `true` | Whether to create an Ingress resource pointing to the Budibase proxy. |
+| ingress.hosts | list | `[]` | Standard hosts block for the Ingress resource. Defaults to pointing to the Budibase proxy. |
+| nameOverride | string | `""` | Override the name of the deploymen. Defaults to {{ .Chart.Name }}. |
+| service.port | int | `10000` | Port to expose on the service. |
+| service.type | string | `"ClusterIP"` | Service type for the service that points to the main Budibase proxy pod. |
+| serviceAccount.annotations | object | `{}` | Annotations to add to the service account |
+| serviceAccount.create | bool | `true` | Specifies whether a service account should be created |
+| serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template |
+| services.apps.autoscaling.enabled | bool | `false` | Whether to enable horizontal pod autoscaling for the apps service. |
+| services.apps.autoscaling.maxReplicas | int | `10` | |
+| services.apps.autoscaling.minReplicas | int | `1` | |
+| services.apps.autoscaling.targetCPUUtilizationPercentage | int | `80` | Target CPU utilization percentage for the apps service. Note that for autoscaling to work, you will need to have metrics-server configured, and resources set for the apps pods. |
+| services.apps.httpLogging | int | `1` | Whether or not to log HTTP requests to the apps service. |
+| services.apps.livenessProbe | object | HTTP health checks. | Liveness probe configuration for apps pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.apps.logLevel | string | `"info"` | The log level for the apps service. |
+| services.apps.readinessProbe | object | HTTP health checks. | Readiness probe configuration for apps pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.apps.replicaCount | int | `1` | The number of apps replicas to run. |
+| services.apps.resources | object | `{}` | The resources to use for apps pods. See for more information on how to set these. |
+| services.apps.startupProbe | object | HTTP health checks. | Startup probe configuration for apps pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.couchdb.backup.enabled | bool | `false` | Whether or not to enable periodic CouchDB backups. This works by replicating to another CouchDB instance. |
+| services.couchdb.backup.interval | string | `""` | Backup interval in seconds |
+| services.couchdb.backup.resources | object | `{}` | The resources to use for CouchDB backup pods. See for more information on how to set these. |
+| services.couchdb.backup.target | string | `""` | Target couchDB instance to back up to, either a hostname or an IP address. |
+| services.couchdb.enabled | bool | `true` | Whether or not to spin up a CouchDB instance in your cluster. True by default, and the configuration for the CouchDB instance is under the `couchdb` key at the root of this file. You can see what options are available to you by looking at the official CouchDB Helm chart: . |
+| services.couchdb.port | int | `5984` | |
+| services.dns | string | `"cluster.local"` | The DNS suffix to use for service discovery. You only need to change this if you've configured your cluster to use a different DNS suffix. |
+| services.objectStore.accessKey | string | `""` | AWS_ACCESS_KEY if using S3 |
+| services.objectStore.browser | bool | `true` | Whether to enable the Minio web console or not. If you're exposing Minio to the Internet (via a custom Ingress record, for example), you should set this to false. If you're only exposing Minio to your cluster, you can leave this as true. |
+| services.objectStore.cloudfront.cdn | string | `""` | Set the url of a distribution to enable cloudfront. |
+| services.objectStore.cloudfront.privateKey64 | string | `""` | Base64 encoded private key for the above public key. |
+| services.objectStore.cloudfront.publicKeyId | string | `""` | ID of public key stored in cloudfront. |
+| services.objectStore.minio | bool | `true` | Set to false if using another object store, such as S3. You will need to set `services.objectStore.url` to point to your bucket if you do this. |
+| services.objectStore.region | string | `""` | AWS_REGION if using S3 |
+| services.objectStore.resources | object | `{}` | The resources to use for Minio pods. See for more information on how to set these. |
+| services.objectStore.secretKey | string | `""` | AWS_SECRET_ACCESS_KEY if using S3 |
+| services.objectStore.storage | string | `"100Mi"` | How much storage to give Minio in its PersistentVolumeClaim. |
+| services.objectStore.storageClass | string | `""` | If defined, storageClassName: If set to "-", storageClassName: "", which disables dynamic provisioning If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. |
+| services.objectStore.url | string | `"http://minio-service:9000"` | URL to use for object storage. Only change this if you're using an external object store, such as S3. Remember to set `minio: false` if you do this. |
+| services.proxy.autoscaling.enabled | bool | `false` | Whether to enable horizontal pod autoscaling for the proxy service. |
+| services.proxy.autoscaling.maxReplicas | int | `10` | |
+| services.proxy.autoscaling.minReplicas | int | `1` | |
+| services.proxy.autoscaling.targetCPUUtilizationPercentage | int | `80` | Target CPU utilization percentage for the proxy service. Note that for autoscaling to work, you will need to have metrics-server configured, and resources set for the proxy pods. |
+| services.proxy.livenessProbe | object | HTTP health checks. | Liveness probe configuration for proxy pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.proxy.readinessProbe | object | HTTP health checks. | Readiness probe configuration for proxy pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.proxy.replicaCount | int | `1` | The number of proxy replicas to run. |
+| services.proxy.resources | object | `{}` | The resources to use for proxy pods. See for more information on how to set these. |
+| services.proxy.startupProbe | object | HTTP health checks. | Startup probe configuration for proxy pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.redis.enabled | bool | `true` | Whether or not to deploy a Redis pod into your cluster. |
+| services.redis.password | string | `"budibase"` | The password to use when connecting to Redis. It's recommended that you change this from the default if you're running Redis in-cluster. |
+| services.redis.port | int | `6379` | Port to expose Redis on. |
+| services.redis.resources | object | `{}` | The resources to use for Redis pods. See for more information on how to set these. |
+| services.redis.storage | string | `"100Mi"` | How much persistent storage to allocate to Redis. |
+| services.redis.storageClass | string | `""` | If defined, storageClassName: If set to "-", storageClassName: "", which disables dynamic provisioning If undefined (the default) or set to null, no storageClassName spec is set, choosing the default provisioner. |
+| services.redis.url | string | `""` | If you choose to run Redis externally to this chart, you can specify the connection details here. |
+| services.worker.autoscaling.enabled | bool | `false` | Whether to enable horizontal pod autoscaling for the worker service. |
+| services.worker.autoscaling.maxReplicas | int | `10` | |
+| services.worker.autoscaling.minReplicas | int | `1` | |
+| services.worker.autoscaling.targetCPUUtilizationPercentage | int | `80` | Target CPU utilization percentage for the worker service. Note that for autoscaling to work, you will need to have metrics-server configured, and resources set for the worker pods. |
+| services.worker.httpLogging | int | `1` | Whether or not to log HTTP requests to the worker service. |
+| services.worker.livenessProbe | object | HTTP health checks. | Liveness probe configuration for worker pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.worker.logLevel | string | `"info"` | The log level for the worker service. |
+| services.worker.readinessProbe | object | HTTP health checks. | Readiness probe configuration for worker pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| services.worker.replicaCount | int | `1` | The number of worker replicas to run. |
+| services.worker.resources | object | `{}` | The resources to use for worker pods. See for more information on how to set these. |
+| services.worker.startupProbe | object | HTTP health checks. | Startup probe configuration for worker pods. You shouldn't need to change this, but if you want to you can find more information here: |
+| tolerations | list | `[]` | Sets the tolerations for all pods created by this chart. Should not ordinarily need to be changed. See for more information on tolerations. |
## Uninstalling the Chart
-To uninstall/delete the `my-release` deployment:
+To uninstall the chart, assuming you named the release `budibase` (both commands in the installation section do so):
```console
-$ helm delete my-release
+$ helm uninstall --namespace budibase budibase
```
+
+----------------------------------------------
+Autogenerated from chart metadata using [helm-docs v1.11.3](https://github.com/norwoodj/helm-docs/releases/v1.11.3)
diff --git a/charts/budibase/README.md.gotmpl b/charts/budibase/README.md.gotmpl
new file mode 100644
index 0000000000..eacd832e74
--- /dev/null
+++ b/charts/budibase/README.md.gotmpl
@@ -0,0 +1,92 @@
+{{ template "chart.header" . }}
+{{ template "chart.description" . }}
+
+## Prerequisites
+
+- `helm` v3 or above
+- Kubernetes 1.4+
+- A storage controller (for `PersistentVolume` creation, if you want to ensure your data does not get lost when pods restart)
+
+## Installing the Chart
+
+To install the chart from our repository:
+
+```console
+$ helm repo add budibase https://budibase.github.io/budibase/
+$ helm repo update
+$ helm install --create-namespace --namespace budibase budibase budibase/budibase
+```
+
+To install the chart from this repo:
+
+```console
+$ git clone git@github.com:budibase/budibase.git
+$ cd budibase/charts/budibase
+$ helm install --create-namespace --namespace budibase budibase .
+```
+
+## Example minimal configuration
+
+Here's an example `values.yaml` that would get a Budibase instance running in a home
+cluster using an nginx ingress controller and NFS as cluster storage (basically one of our
+staff's homelabs).
+
+
+
+```yaml
+ingress:
+ enabled: true
+ annotations:
+ nginx.ingress.kubernetes.io/client-max-body-size: 150M
+ nginx.ingress.kubernetes.io/proxy-body-size: 50m
+ className: "nginx"
+ hosts:
+ - host: budibase.local # set this to whatever DNS name you'd use
+ paths:
+ - backend:
+ service:
+ name: proxy-service
+ port:
+ number: 10000
+ path: /
+ pathType: Prefix
+
+couchdb:
+ persistentVolume:
+ enabled: true
+ storageClass: "nfs-client"
+ adminPassword: admin
+
+ image:
+ repository: samwho/test
+ tag: latest
+ pullPolicy: Always
+
+ objectStore:
+ storageClass: "nfs-client"
+ redis:
+ storageClass: "nfs-client"
+```
+
+If you wanted to use this when bringing up Budibase in your own cluster, you could save it
+to your hard disk and run the following:
+
+```console
+$ helm install --create-namespace --namespace budibase budibase . -f values.yaml
+```
+
+
+
+## Configuration reference
+
+{{ template "chart.valuesTable" . }}
+
+## Uninstalling the Chart
+
+To uninstall the chart, assuming you named the release `budibase` (both commands in the installation section do so):
+
+```console
+$ helm uninstall --namespace budibase budibase
+```
+
+{{ template "helm-docs.versionFooter" . }}
diff --git a/charts/budibase/templates/app-service-hpa.yaml b/charts/budibase/templates/app-service-hpa.yaml
new file mode 100644
index 0000000000..e819ecb9e3
--- /dev/null
+++ b/charts/budibase/templates/app-service-hpa.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.services.apps.autoscaling.enabled }}
+apiVersion: {{ ternary "autoscaling/v2" "autoscaling/v2beta2" (.Capabilities.APIVersions.Has "autoscaling/v2") }}
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "budibase.fullname" . }}-apps
+ labels:
+ {{- include "budibase.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: app-service
+ minReplicas: {{ .Values.services.apps.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.services.apps.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.services.apps.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.services.apps.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.services.apps.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.services.apps.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/charts/budibase/templates/hpa.yaml b/charts/budibase/templates/hpa.yaml
deleted file mode 100644
index 2f901b4664..0000000000
--- a/charts/budibase/templates/hpa.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-{{- if .Values.autoscaling.enabled }}
-apiVersion: autoscaling/v2beta1
-kind: HorizontalPodAutoscaler
-metadata:
- name: {{ include "budibase.fullname" . }}
- labels:
- {{- include "budibase.labels" . | nindent 4 }}
-spec:
- scaleTargetRef:
- apiVersion: apps/v1
- kind: Deployment
- name: {{ include "budibase.fullname" . }}
- minReplicas: {{ .Values.autoscaling.minReplicas }}
- maxReplicas: {{ .Values.autoscaling.maxReplicas }}
- metrics:
- {{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
- - type: Resource
- resource:
- name: cpu
- targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
- {{- end }}
- {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
- - type: Resource
- resource:
- name: memory
- targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
- {{- end }}
-{{- end }}
diff --git a/charts/budibase/templates/proxy-service-hpa.yaml b/charts/budibase/templates/proxy-service-hpa.yaml
new file mode 100644
index 0000000000..b6c6022008
--- /dev/null
+++ b/charts/budibase/templates/proxy-service-hpa.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.services.proxy.autoscaling.enabled }}
+apiVersion: {{ ternary "autoscaling/v2" "autoscaling/v2beta2" (.Capabilities.APIVersions.Has "autoscaling/v2") }}
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "budibase.fullname" . }}-proxy
+ labels:
+ {{- include "budibase.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: proxy-service
+ minReplicas: {{ .Values.services.proxy.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.services.proxy.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.services.proxy.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.services.proxy.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.services.proxy.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.services.proxy.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/charts/budibase/templates/worker-service-hpa.yaml b/charts/budibase/templates/worker-service-hpa.yaml
new file mode 100644
index 0000000000..a04cc259a0
--- /dev/null
+++ b/charts/budibase/templates/worker-service-hpa.yaml
@@ -0,0 +1,32 @@
+{{- if .Values.services.worker.autoscaling.enabled }}
+apiVersion: {{ ternary "autoscaling/v2" "autoscaling/v2beta2" (.Capabilities.APIVersions.Has "autoscaling/v2") }}
+kind: HorizontalPodAutoscaler
+metadata:
+ name: {{ include "budibase.fullname" . }}-worker
+ labels:
+ {{- include "budibase.labels" . | nindent 4 }}
+spec:
+ scaleTargetRef:
+ apiVersion: apps/v1
+ kind: Deployment
+ name: worker-service
+ minReplicas: {{ .Values.services.worker.autoscaling.minReplicas }}
+ maxReplicas: {{ .Values.services.worker.autoscaling.maxReplicas }}
+ metrics:
+ {{- if .Values.services.worker.autoscaling.targetCPUUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.services.worker.autoscaling.targetCPUUtilizationPercentage }}
+ {{- end }}
+ {{- if .Values.services.worker.autoscaling.targetMemoryUtilizationPercentage }}
+ - type: Resource
+ resource:
+ name: memory
+ target:
+ type: Utilization
+ averageUtilization: {{ .Values.services.worker.autoscaling.targetMemoryUtilizationPercentage }}
+ {{- end }}
+{{- end }}
diff --git a/charts/budibase/values.yaml b/charts/budibase/values.yaml
index 5df6e980f0..0b693a4df3 100644
--- a/charts/budibase/values.yaml
+++ b/charts/budibase/values.yaml
@@ -1,47 +1,32 @@
-# Default values for budibase.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
-
+# -- Passed to all pods created by this chart. Should not ordinarily need to be changed.
imagePullSecrets: []
+# -- Override the name of the deploymen. Defaults to {{ .Chart.Name }}.
nameOverride: ""
-# fullnameOverride: ""
serviceAccount:
- # Specifies whether a service account should be created
+ # -- Specifies whether a service account should be created
create: true
- # Annotations to add to the service account
+ # -- Annotations to add to the service account
annotations: {}
- # The name of the service account to use.
+ # -- The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
-podAnnotations: {}
-
-podSecurityContext:
- {}
- # fsGroup: 2000
-
-securityContext:
- {}
- # capabilities:
- # drop:
- # - ALL
- # readOnlyRootFilesystem: true
- # runAsNonRoot: true
- # runAsUser: 1000
-
service:
+ # -- Service type for the service that points to the main Budibase proxy pod.
type: ClusterIP
+ # -- Port to expose on the service.
port: 10000
ingress:
+ # -- Whether to create an Ingress resource pointing to the Budibase proxy.
enabled: true
+ # -- What ingress class to use.
className: ""
- annotations:
- # nginx.ingress.kubernetes.io/client-max-body-size: 150M
- # nginx.ingress.kubernetes.io/proxy-body-size: 50m
+ # -- Standard hosts block for the Ingress resource. Defaults to pointing to the Budibase proxy.
hosts:
- - host: # change if using custom domain
+ # @ignore
+ - host:
paths:
- path: /
pathType: Prefix
@@ -52,473 +37,426 @@ ingress:
number: 10000
awsAlbIngress:
+ # -- Whether to create an ALB Ingress resource pointing to the Budibase proxy. Requires the AWS ALB Ingress Controller.
enabled: false
+ # -- If you're wanting to use HTTPS, you'll need to create an ACM certificate and specify the ARN here.
certificateArn: ""
-autoscaling:
- enabled: false
- minReplicas: 1
- maxReplicas: 100
- targetCPUUtilizationPercentage: 80
- # targetMemoryUtilizationPercentage: 80
-
-nodeSelector: {}
-
+# -- Sets the tolerations for all pods created by this chart. Should not ordinarily need to be changed.
+# See for more information
+# on tolerations.
tolerations: []
+# -- Sets the affinity for all pods created by this chart. Should not ordinarily
+# need to be changed. See
+#
+# for more information on affinity.
affinity: {}
globals:
- appVersion: "" # Use as an override to .Chart.AppVersion
+ # -- The version of Budibase to deploy. Defaults to what's specified by {{ .Chart.AppVersion }}.
+ # Ends up being used as the image version tag for the apps, proxy, and worker images.
+ appVersion: ""
+ # -- Sets the environment variable BUDIBASE_ENVIRONMENT for the apps and worker pods. Should not
+ # ordinarily need to be changed.
budibaseEnv: PRODUCTION
+ # -- Sets what feature flags are enabled and for which tenants. Should not ordinarily need to be
+ # changed.
tenantFeatureFlags: "*:LICENSING,*:USER_GROUPS,*:ONBOARDING_TOUR"
+ # -- Whether to enable analytics or not. You can read more about our analytics here:
+ # .
enableAnalytics: "1"
+ # @ignore (only used if enableAnalytics is set to 1)
posthogToken: "phc_bIjZL7oh2GEUd2vqvTBH8WvrX0fWTFQMs6H5KQxiUxU"
- selfHosted: "1" # set to 0 for budibase cloud environment, set to 1 for self-hosted setup
- multiTenancy: "0" # set to 0 to disable multiple orgs, set to 1 to enable multiple orgs
- offlineMode: "0" # set to 1 to enable offline mode
+ # @ignore (should not normally need to be changed, we only set this to "0"
+ # when deploying to our Cloud environment)
+ selfHosted: "1"
+ # -- Whether to enable the multi-tenancy feature or not. "0" means an installation can only
+ # have one tenant. "1" allows multiple tenants.
+ multiTenancy: "0"
+ # @ignore (only currently used to determine whether to fetch licenses offline or not, should
+ # not normally need to be changed)
+ offlineMode: "0"
+ # @ignore (only needs to be set in our cloud environment)
accountPortalUrl: ""
+ # @ignore (only needs to be set in our cloud environment)
accountPortalApiKey: ""
+ # -- Sets the domain attribute of the cookie that Budibase uses to store session information.
+ # See
+ # for details on why you might want to set this.
cookieDomain: ""
+ # -- Set the `platformUrl` binding. You can also do this in Settings > Organisation if you are
+ # self-hosting.
platformUrl: ""
+ # -- Whether or not to enable doing data migrations over the HTTP API. If this is set to "0",
+ # migrations are run on startup. You shouldn't ordinarily need to change this.
httpMigrations: "0"
+ # -- Google OAuth settings. These can also be set in the Budibase UI, see
+ # for details.
google:
+ # -- Client ID of your Google OAuth app.
clientId: ""
+ # -- Client secret of your Google OAuth app.
secret: ""
+ # -- The maximum number of iterations allows for an automation loop step. You can read more about
+ # looping here: .
automationMaxIterations: "200"
- createSecrets: true # creates an internal API key, JWT secrets and redis password for you
+ # -- Create an internal API key, JWT secret, object store access key and
+ # secret, and store them in a Kubernetes `Secret`.
+ createSecrets: true
- # if createSecrets is set to false, you can hard-code your secrets here
+ # -- Used for encrypting API keys and environment variables when stored in the database.
+ # You don't need to set this if `createSecrets` is true.
apiEncryptionKey: ""
+ # -- API key used for internal Budibase API calls. You don't need to set this
+ # if `createSecrets` is true.
internalApiKey: ""
+ # -- Secret used for signing JWTs. You don't need to set this if `createSecrets` is true.
jwtSecret: ""
- cdnUrl: ""
- # fallback values used during live rotation
+
+ # -- A fallback value for `internalApiKey`. If you're rotating your encryption key, you can
+ # set this to the old value for the duration of the rotation.
internalApiKeyFallback: ""
+ # -- A fallback value for `jwtSecret`. If you're rotating your JWT secret, you can set this
+ # to the old value for the duration of the rotation.
jwtSecretFallback: ""
smtp:
+ # -- Whether to enable SMTP or not.
enabled: false
-
-# globalAgentHttpProxy:
-# globalAgentHttpsProxy:
-# globalAgentNoProxy:
+ # -- The hostname of your SMTP server.
+ host: ""
+ # -- The port of your SMTP server.
+ port: "587"
+ # -- The email address to use in the "From:" field of emails sent by Budibase.
+ from: ""
+ # -- The username to use when authenticating with your SMTP server.
+ user: ""
+ # -- The password to use when authenticating with your SMTP server.
+ password: ""
services:
+ # -- The DNS suffix to use for service discovery. You only need to change this
+ # if you've configured your cluster to use a different DNS suffix.
dns: cluster.local
- # tlsRejectUnauthorized: 0
proxy:
+ # @ignore (you shouldn't need to change this)
port: 10000
+ # -- The number of proxy replicas to run.
replicaCount: 1
+ # @ignore (you should never need to change this)
upstreams:
apps: "http://app-service.{{ .Release.Namespace }}.svc.{{ .Values.services.dns }}:{{ .Values.services.apps.port }}"
worker: "http://worker-service.{{ .Release.Namespace }}.svc.{{ .Values.services.dns }}:{{ .Values.services.worker.port }}"
minio: "http://minio-service.{{ .Release.Namespace }}.svc.{{ .Values.services.dns }}:{{ .Values.services.objectStore.port }}"
couchdb: "http://{{ .Release.Name }}-svc-couchdb:{{ .Values.services.couchdb.port }}"
+ # -- The resources to use for proxy pods. See
+ #
+ # for more information on how to set these.
resources: {}
+ # -- Startup probe configuration for proxy pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
startupProbe:
+ # @ignore
httpGet:
path: /health
port: 10000
scheme: HTTP
+ # @ignore
failureThreshold: 30
+ # @ignore
periodSeconds: 3
+ # -- Readiness probe configuration for proxy pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
readinessProbe:
+ # @ignore
httpGet:
path: /health
port: 10000
scheme: HTTP
+ # @ignore
periodSeconds: 3
+ # @ignore
failureThreshold: 1
+ # -- Liveness probe configuration for proxy pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
livenessProbe:
+ # @ignore
httpGet:
path: /health
port: 10000
scheme: HTTP
+ # @ignore
failureThreshold: 3
+ # @ignore
periodSeconds: 5
+ autoscaling:
+ # -- Whether to enable horizontal pod autoscaling for the proxy service.
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 10
+ # -- Target CPU utilization percentage for the proxy service. Note that
+ # for autoscaling to work, you will need to have metrics-server
+ # configured, and resources set for the proxy pods.
+ targetCPUUtilizationPercentage: 80
apps:
+ # @ignore (you shouldn't need to change this)
port: 4002
+ # -- The number of apps replicas to run.
replicaCount: 1
+ # -- The log level for the apps service.
logLevel: info
+ # -- Whether or not to log HTTP requests to the apps service.
httpLogging: 1
+ # -- The resources to use for apps pods. See
+ #
+ # for more information on how to set these.
resources: {}
+ # -- Startup probe configuration for apps pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
startupProbe:
+ # @ignore
httpGet:
path: /health
port: 4002
scheme: HTTP
+ # @ignore
failureThreshold: 30
+ # @ignore
periodSeconds: 3
+ # -- Readiness probe configuration for apps pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
readinessProbe:
+ # @ignore
httpGet:
path: /health
port: 4002
scheme: HTTP
+ # @ignore
periodSeconds: 3
+ # @ignore
failureThreshold: 1
+ # -- Liveness probe configuration for apps pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
livenessProbe:
+ # @ignore
httpGet:
path: /health
port: 4002
scheme: HTTP
+ # @ignore
failureThreshold: 3
+ # @ignore
periodSeconds: 5
- # nodeDebug: "" # set the value of NODE_DEBUG
- # annotations:
- # co.elastic.logs/multiline.type: pattern
- # co.elastic.logs/multiline.pattern: '^[[:space:]]'
- # co.elastic.logs/multiline.negate: false
- # co.elastic.logs/multiline.match: after
+ autoscaling:
+ # -- Whether to enable horizontal pod autoscaling for the apps service.
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 10
+ # -- Target CPU utilization percentage for the apps service. Note that for
+ # autoscaling to work, you will need to have metrics-server configured,
+ # and resources set for the apps pods.
+ targetCPUUtilizationPercentage: 80
+
worker:
+ # @ignore (you shouldn't need to change this)
port: 4003
+ # -- The number of worker replicas to run.
replicaCount: 1
+ # -- The log level for the worker service.
logLevel: info
+ # -- Whether or not to log HTTP requests to the worker service.
httpLogging: 1
+ # -- The resources to use for worker pods. See
+ #
+ # for more information on how to set these.
resources: {}
+ # -- Startup probe configuration for worker pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
startupProbe:
+ # @ignore
httpGet:
path: /health
port: 4003
scheme: HTTP
+ # @ignore
failureThreshold: 30
+ # @ignore
periodSeconds: 3
+ # -- Readiness probe configuration for worker pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
readinessProbe:
+ # @ignore
httpGet:
path: /health
port: 4003
scheme: HTTP
+ # @ignore
periodSeconds: 3
+ # @ignore
failureThreshold: 1
+ # -- Liveness probe configuration for worker pods. You shouldn't need to
+ # change this, but if you want to you can find more information here:
+ #
+ # @default -- HTTP health checks.
livenessProbe:
+ # @ignore
httpGet:
path: /health
port: 4003
scheme: HTTP
+ # @ignore
failureThreshold: 3
+ # @ignore
periodSeconds: 5
- # annotations:
- # co.elastic.logs/multiline.type: pattern
- # co.elastic.logs/multiline.pattern: '^[[:space:]]'
- # co.elastic.logs/multiline.negate: false
- # co.elastic.logs/multiline.match: after
+ autoscaling:
+ # -- Whether to enable horizontal pod autoscaling for the worker service.
+ enabled: false
+ minReplicas: 1
+ maxReplicas: 10
+ # -- Target CPU utilization percentage for the worker service. Note that
+ # for autoscaling to work, you will need to have metrics-server
+ # configured, and resources set for the worker pods.
+ targetCPUUtilizationPercentage: 80
couchdb:
+ # -- Whether or not to spin up a CouchDB instance in your cluster. True by
+ # default, and the configuration for the CouchDB instance is under the
+ # `couchdb` key at the root of this file. You can see what options are
+ # available to you by looking at the official CouchDB Helm chart:
+ # .
enabled: true
# url: "" # only change if pointing to existing couch server
# user: "" # only change if pointing to existing couch server
# password: "" # only change if pointing to existing couch server
port: 5984
backup:
+ # -- Whether or not to enable periodic CouchDB backups. This works by replicating
+ # to another CouchDB instance.
enabled: false
- # target couchDB instance to back up to
+ # -- Target couchDB instance to back up to, either a hostname or an IP address.
target: ""
- # backup interval in seconds
+ # -- Backup interval in seconds
interval: ""
+ # -- The resources to use for CouchDB backup pods. See
+ #
+ # for more information on how to set these.
resources: {}
redis:
- enabled: true # disable if using external redis
+ # -- Whether or not to deploy a Redis pod into your cluster.
+ enabled: true
+ # -- Port to expose Redis on.
port: 6379
+ # @ignore (you should leave this as 1, we don't support clustering Redis)
replicaCount: 1
- url: "" # only change if pointing to existing redis cluster and enabled: false
- password: "budibase" # recommended to override if using built-in redis
+ # -- If you choose to run Redis externally to this chart, you can specify the
+ # connection details here.
+ url: ""
+ # -- The password to use when connecting to Redis. It's recommended that you change
+ # this from the default if you're running Redis in-cluster.
+ password: "budibase"
+ # -- How much persistent storage to allocate to Redis.
storage: 100Mi
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner.
+ # -- If defined, storageClassName: If set to "-",
+ # storageClassName: "", which disables dynamic provisioning If undefined
+ # (the default) or set to null, no storageClassName spec is set, choosing
+ # the default provisioner.
storageClass: ""
+ # -- The resources to use for Redis pods. See
+ #
+ # for more information on how to set these.
resources: {}
objectStore:
- # Set to false if using another object store such as S3
+ # -- Set to false if using another object store, such as S3. You will need
+ # to set `services.objectStore.url` to point to your bucket if you do this.
minio: true
+ # -- Whether to enable the Minio web console or not. If you're exposing
+ # Minio to the Internet (via a custom Ingress record, for example), you
+ # should set this to false. If you're only exposing Minio to your cluster,
+ # you can leave this as true.
browser: true
+ # @ignore
port: 9000
+ # @ignore (you should leave this as 1, we don't support clustering Minio)
replicaCount: 1
- accessKey: "" # AWS_ACCESS_KEY if using S3 or existing minio access key
- secretKey: "" # AWS_SECRET_ACCESS_KEY if using S3 or existing minio secret
- region: "" # AWS_REGION if using S3 or existing minio secret
- url: "http://minio-service:9000" # only change if pointing to existing minio cluster or S3 and minio: false
+ # -- AWS_ACCESS_KEY if using S3
+ accessKey: ""
+ # -- AWS_SECRET_ACCESS_KEY if using S3
+ secretKey: ""
+ # -- AWS_REGION if using S3
+ region: ""
+ # -- URL to use for object storage. Only change this if you're using an
+ # external object store, such as S3. Remember to set `minio: false` if you
+ # do this.
+ url: "http://minio-service:9000"
+ # -- How much storage to give Minio in its PersistentVolumeClaim.
storage: 100Mi
- ## If defined, storageClassName:
- ## If set to "-", storageClassName: "", which disables dynamic provisioning
- ## If undefined (the default) or set to null, no storageClassName spec is
- ## set, choosing the default provisioner.
+ # -- If defined, storageClassName: If set to "-",
+ # storageClassName: "", which disables dynamic provisioning If undefined
+ # (the default) or set to null, no storageClassName spec is set, choosing
+ # the default provisioner.
storageClass: ""
+ # -- The resources to use for Minio pods. See
+ #
+ # for more information on how to set these.
resources: {}
cloudfront:
- # Set the url of a distribution to enable cloudfront
+ # -- Set the url of a distribution to enable cloudfront.
cdn: ""
- # ID of public key stored in cloudfront
+ # -- ID of public key stored in cloudfront.
publicKeyId: ""
- # Base64 encoded private key for the above public key
+ # -- Base64 encoded private key for the above public key.
privateKey64: ""
-# Override values in couchDB subchart
+# Override values in couchDB subchart. We're only specifying the values we're changing.
+# If you want to see all of the available values, see:
+# https://github.com/apache/couchdb-helm/tree/couchdb-4.3.0/couchdb
couchdb:
- # -- the initial number of nodes in the CouchDB cluster.
+ # -- The number of replicas to run in the CouchDB cluster. We set this to
+ # 1 by default to make things simpler, but you can set it to 3 if you need
+ # a high-availability CouchDB cluster.
clusterSize: 1
- # -- If allowAdminParty is enabled the cluster will start up without any database
- # administrator account; i.e., all users will be granted administrative
- # access. Otherwise, the system will look for a Secret called
- # -couchdb containing `adminUsername`, `adminPassword` and
- # `cookieAuthSecret` keys. See the `createAdminSecret` flag.
- # ref: https://kubernetes.io/docs/concepts/configuration/secret/
- allowAdminParty: false
-
- # -- If createAdminSecret is enabled a Secret called -couchdb will
- # be created containing auto-generated credentials. Users who prefer to set
- # these values themselves have a couple of options:
- #
- # 1) The `adminUsername`, `adminPassword`, `adminHash`, and `cookieAuthSecret`
- # can be defined directly in the chart's values. Note that all of a chart's
- # values are currently stored in plaintext in a ConfigMap in the tiller
- # namespace.
- #
- # 2) This flag can be disabled and a Secret with the required keys can be
- # created ahead of time.
- createAdminSecret: true
-
- adminUsername: admin
- # adminPassword: this_is_not_secure
- # adminHash: -pbkdf2-this_is_not_necessarily_secure_either
- # cookieAuthSecret: neither_is_this
-
- ## When enabled, will deploy a networkpolicy that allows CouchDB pods to
- ## communicate with each other for clustering and ingress on port 5984
- networkPolicy:
- enabled: true
-
- ## Use an alternate scheduler, e.g. "stork".
- ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
- ##
- # schedulerName:
-
- # Use a service account
- serviceAccount:
- enabled: true
- create: true
- # name:
- # imagePullSecrets:
- # - name: myimagepullsecret
-
- # -- The storage volume used by each Pod in the StatefulSet. If a
- # persistentVolume is not enabled, the Pods will use `emptyDir` ephemeral
- # local storage. Setting the storageClass attribute to "-" disables dynamic
- # provisioning of Persistent Volumes; leaving it unset will invoke the default
- # provisioner.
- persistentVolume:
- enabled: false
- # NOTE: the number of existing claims must match the cluster size
- existingClaims: []
- annotations: {}
- accessModes:
- - ReadWriteOnce
- size: 10Gi
- # storageClass: "-"
-
- ## The CouchDB image
+ # -- We use a custom CouchDB image for running Budibase and we don't support
+ # using any other CouchDB image. You shouldn't change this, and if you do we
+ # can't guarantee that Budibase will work.
image:
+ # @ignore
repository: budibase/couchdb
+ # @ignore
tag: v3.2.1
- pullPolicy: IfNotPresent
+ # @ignore
+ pullPolicy: Always
+ # @ignore
# This should remain false. We ship Clouseau ourselves as part of the
# budibase/couchdb image, and it's not possible to disable it because it's a
# core part of the Budibase experience.
enableSearch: false
- initImage:
- repository: busybox
- tag: latest
- pullPolicy: Always
-
- ## CouchDB is happy to spin up cluster nodes in parallel, but if you encounter
- ## problems you can try setting podManagementPolicy to the StatefulSet default
- ## `OrderedReady`
- podManagementPolicy: Parallel
-
- ## To better tolerate Node failures, we can prevent Kubernetes scheduler from
- ## assigning more than one Pod of CouchDB StatefulSet per Node using podAntiAffinity.
- affinity:
- {}
- # podAntiAffinity:
- # requiredDuringSchedulingIgnoredDuringExecution:
- # - labelSelector:
- # matchExpressions:
- # - key: "app"
- # operator: In
- # values:
- # - couchdb
- # topologyKey: "kubernetes.io/hostname"
-
- ## To control how Pods are spread across your cluster among failure-domains such as regions,
- ## zones, nodes, and other user-defined topology domains use topologySpreadConstraints.
- topologySpreadConstraints:
- {}
- # topologySpreadConstraints:
- # - maxSkew: 1
- # topologyKey: "topology.kubernetes.io/zone"
- # whenUnsatisfiable: ScheduleAnyway
- # labelSelector:
- # matchLabels:
- # app: couchdb
-
- ## Optional pod labels
- labels: {}
-
- ## Optional pod annotations
- annotations: {}
-
- ## Optional tolerations
- tolerations: []
-
- ## A StatefulSet requires a headless Service to establish the stable network
- ## identities of the Pods, and that Service is created automatically by this
- ## chart without any additional configuration. The Service block below refers
- ## to a second Service that governs how clients connect to the CouchDB cluster.
- service:
- annotations: {}
- enabled: true
- type: ClusterIP
- externalPort: 5984
- targetPort: 5984
- labels: {}
-
- ## An Ingress resource can provide name-based virtual hosting and TLS
- ## termination among other things for CouchDB deployments which are accessed
- ## from outside the Kubernetes cluster.
- ## ref: https://kubernetes.io/docs/concepts/services-networking/ingress/
- ingress:
- enabled: false
- # className: nginx
- hosts:
- - chart-example.local
- path: /
- annotations:
- {}
- # kubernetes.io/ingress.class: nginx
- # kubernetes.io/tls-acme: "true"
- tls:
- # Secrets must be manually created in the namespace.
- # - secretName: chart-example-tls
- # hosts:
- # - chart-example.local
-
- ## Optional resource requests and limits for the CouchDB container
- ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
- resources:
- {}
- # requests:
- # cpu: 100m
- # memory: 128Mi
- # limits:
- # cpu: 56
- # memory: 256Gi
-
- ## Optional resource requests and limits for the CouchDB init container
- ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
- initResources:
- {}
- # requests:
- # cpu: 100m
- # memory: 128Mi
- # limits:
- # cpu: 500m
- # memory: 128Mi
-
- # -- erlangFlags is a map that is passed to the Erlang VM as flags using the
- # ERL_FLAGS env. The `name` flag is required to establish connectivity
- # between cluster nodes.
- # ref: http://erlang.org/doc/man/erl.html#init_flags
- erlangFlags:
- name: couchdb
- # Older versions of the official CouchDB image (anything prior to 3.2.1)
- # do not act on the COUCHDB_ERLANG_COOKIE environment variable, so if you
- # want to cluster these deployments it's necessary to pass in a cookie here
- # setcookie: make-something-up
-
- # -- couchdbConfig will override default CouchDB configuration settings.
- # The contents of this map are reformatted into a .ini file laid down
- # by a ConfigMap object.
- # ref: http://docs.couchdb.org/en/latest/config/index.html
couchdbConfig:
couchdb:
- uuid: budibase-couchdb # Unique identifier for this CouchDB server instance
- # cluster:
- # q: 8 # Create 8 shards for each database
- chttpd:
- bind_address: any
- # chttpd.require_valid_user disables all the anonymous requests to the port
- # 5984 when is set to true.
- require_valid_user: false
- # required to use Fauxton if chttpd.require_valid_user is set to true
- # httpd:
- # WWW-Authenticate: "Basic realm=\"administrator\""
-
- # Kubernetes local cluster domain.
- # This is used to generate FQDNs for peers when joining the CouchDB cluster.
- dns:
- clusterDomainSuffix: cluster.local
-
- ## Configure liveness and readiness probe values
- ## Ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes
- livenessProbe:
- enabled: true
- failureThreshold: 3
- initialDelaySeconds: 0
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
- readinessProbe:
- enabled: true
- failureThreshold: 3
- initialDelaySeconds: 0
- periodSeconds: 10
- successThreshold: 1
- timeoutSeconds: 1
-
- # Control an optional pod disruption budget
- podDisruptionBudget:
- # toggle creation of pod disruption budget, disabled by default
- enabled: false
- # minAvailable: 1
- maxUnavailable: 1
-
- # CouchDB 3.2.0 adds in a metrics endpoint on the path `/_node/_local/_prometheus`.
- # Optionally, a standalone, unauthenticated port can be exposed for these metrics.
- prometheusPort:
- enabled: false
- bind_address: "0.0.0.0"
- port: 17986
-
- # Configure arbitrary sidecar containers for CouchDB pods created by the
- # StatefulSet
- sidecars:
- {}
- # - name: foo
- # image: "busybox"
- # imagePullPolicy: IfNotPresent
- # resources:
- # requests:
- # cpu: "0.1"
- # memory: 10Mi
- # command: ['echo "foo";']
- # volumeMounts:
- # - name: database-storage
- # mountPath: /opt/couchdb/data/
-
- # Placement manager to annotate each document in the nodes DB with "zone" attribute
- # recording the zone where node has been scheduled
- # Ref: https://docs.couchdb.org/en/stable/cluster/sharding.html#specifying-database-placement
- placementConfig:
- enabled: false
- image:
- repository: caligrafix/couchdb-autoscaler-placement-manager
- tag: 0.1.0
+ # -- Unique identifier for this CouchDB server instance. You shouldn't need
+ # to change this.
+ uuid: budibase-couchdb