Skip to content

Commit 8d094b5

Browse files
authored
Feature/helm chart embeddings service (baserow#4257)
1 parent aee3aed commit 8d094b5

File tree

10 files changed

+537
-73
lines changed

10 files changed

+537
-73
lines changed

deploy/helm/baserow/Chart.lock

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,28 @@
11
dependencies:
22
- name: baserow
33
repository: file://charts/baserow-common
4-
version: 1.0.35
4+
version: 1.0.36
55
- name: baserow
66
repository: file://charts/baserow-common
7-
version: 1.0.35
7+
version: 1.0.36
88
- name: baserow
99
repository: file://charts/baserow-common
10-
version: 1.0.35
10+
version: 1.0.36
1111
- name: baserow
1212
repository: file://charts/baserow-common
13-
version: 1.0.35
13+
version: 1.0.36
1414
- name: baserow
1515
repository: file://charts/baserow-common
16-
version: 1.0.35
16+
version: 1.0.36
1717
- name: baserow
1818
repository: file://charts/baserow-common
19-
version: 1.0.35
19+
version: 1.0.36
2020
- name: baserow
2121
repository: file://charts/baserow-common
22-
version: 1.0.35
22+
version: 1.0.36
23+
- name: baserow
24+
repository: file://charts/baserow-common
25+
version: 1.0.36
2326
- name: redis
2427
repository: https://charts.bitnami.com/bitnami
2528
version: 19.5.5
@@ -32,5 +35,5 @@ dependencies:
3235
- name: caddy-ingress-controller
3336
repository: https://caddyserver.github.io/ingress
3437
version: 1.1.0
35-
digest: sha256:d0bd922613ee89c3472f6c3bae1c8195b470af2590d2d83307cbd15fb36a5dca
36-
generated: "2025-10-08T14:18:40.864014+02:00"
38+
digest: sha256:482eebfe24d9ce5182fe40b83b0251a14316f1f64e0199e6ae87ce724a7d29ed
39+
generated: "2025-11-04T11:22:44.737069+01:00"

deploy/helm/baserow/Chart.yaml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: v2
22
name: baserow
33
description: The open platform to create scalable databases and applications—without coding.
44
type: application
5-
version: 1.0.35
5+
version: 1.0.36
66
appVersion: "1.35.3"
77
home: https://github.com/baserow/baserow/blob/develop/deploy/helm/baserow?ref_type=heads
88
icon: https://baserow.io/img/favicon_192.png
@@ -13,40 +13,46 @@ sources:
1313
dependencies:
1414
- name: baserow
1515
alias: baserow-backend-asgi
16-
version: "1.0.35"
16+
version: "1.0.36"
1717
repository: "file://charts/baserow-common"
1818

1919
- name: baserow
2020
alias: baserow-backend-wsgi
21-
version: "1.0.35"
21+
version: "1.0.36"
2222
repository: "file://charts/baserow-common"
2323

2424
- name: baserow
2525
alias: baserow-frontend
26-
version: "1.0.35"
26+
version: "1.0.36"
2727
repository: "file://charts/baserow-common"
2828

2929
- name: baserow
3030
alias: baserow-celery-beat-worker
31-
version: "1.0.35"
31+
version: "1.0.36"
3232
repository: "file://charts/baserow-common"
3333

3434
- name: baserow
3535
alias: baserow-celery-export-worker
36-
version: "1.0.35"
36+
version: "1.0.36"
3737
repository: "file://charts/baserow-common"
3838

3939
- name: baserow
4040
alias: baserow-celery-worker
41-
version: "1.0.35"
41+
version: "1.0.36"
4242
repository: "file://charts/baserow-common"
4343

4444
- name: baserow
4545
alias: baserow-celery-flower
46-
version: "1.0.35"
46+
version: "1.0.36"
4747
repository: "file://charts/baserow-common"
4848
condition: baserow-celery-flower.enabled
4949

50+
- name: baserow
51+
alias: baserow-embeddings
52+
version: "1.0.36"
53+
repository: "file://charts/baserow-common"
54+
condition: baserow-embeddings.enabled
55+
5056
- name: redis
5157
version: 19.5.x
5258
repository: https://charts.bitnami.com/bitnami

deploy/helm/baserow/README.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,36 @@ baserow-backend-wsgi:
9292
onDemandAsk: "http://my-baserow-baserow-backend-wsgi/api/builder/domains/ask-public-domain-exists/"
9393
```
9494

95+
## AI and Embeddings Configuration
96+
97+
Baserow supports multiple AI providers for generative AI features and the AI assistant. The embeddings service powers semantic search for the AI assistant's documentation lookup feature. For more documentation check the [Baserow AI documentation](/docs/installation/ai-assistant.md).
98+
99+
### Enable AI Assistant
100+
101+
To enable the AI assistant, you need to configure the LLM model and provide the necessary API keys for the chosen provider.
102+
103+
```yaml
104+
global:
105+
baserow:
106+
assistantLLMModel: "groq/openai/gpt-oss-120b"
107+
108+
backendSecrets:
109+
GROQ_API_KEY: "your-groq-api-key"
110+
```
111+
112+
More information about the available providers can be found here: https://baserow.io/docs/installation%2Fai-assistant
113+
114+
### Enable Embeddings Service
115+
116+
The AI assistant uses the embeddings service and requires the LLM model to be configured. You need to enable this next to the global ai configuration.
117+
118+
#### Basic Configuration
119+
120+
```yaml
121+
baserow-embeddings:
122+
enabled: true
123+
```
124+
95125
## Different Cloud Providers
96126

97127
On different cloud providers, you may need to configure the Object storage, ingress and Load Balancer differently. Below are some examples of how to configure them.
@@ -425,6 +455,29 @@ caddy:
425455
| `baserow-celery-flower.args` | Arguments passed to the Celery Flower monitoring tool. | `["celery-flower"]` |
426456
| `baserow-celery-flower.replicaCount` | Number of replicas for the Celery Flower monitoring tool. | `1` |
427457

458+
### Baserow Embeddings Configuration
459+
460+
| Name | Description | Value |
461+
| --------------------------------------------------------------- | --------------------------------------------------------------- | -------------------------- |
462+
| `baserow-embeddings.enabled` | Set to true to enable the Baserow Embeddings service. | `false` |
463+
| `baserow-embeddings.assistantLLMModel` | The LLM model to use for the Embeddings service. | `groq/openai/gpt-oss-120b` |
464+
| `baserow-embeddings.image.repository` | Docker image repository for the Embeddings service. | `embeddings` |
465+
| `baserow-embeddings.resources` | Resource requests and limits for the Embeddings service. | |
466+
| `baserow-embeddings.autoscaling.enabled` | Enable autoscaling for the Embeddings service. | `false` |
467+
| `baserow-embeddings.autoscaling.minReplicas` | Minimum number of replicas for autoscaling. | `1` |
468+
| `baserow-embeddings.autoscaling.maxReplicas` | Maximum number of replicas for autoscaling. | `3` |
469+
| `baserow-embeddings.autoscaling.targetCPUUtilizationPercentage` | Target CPU utilization percentage for autoscaling. | `80` |
470+
| `baserow-embeddings.service.port` | Service port for the Embeddings service. | `80` |
471+
| `baserow-embeddings.service.targetPort` | Target port for the Embeddings service. | `80` |
472+
| `baserow-embeddings.readinessProbe.initialDelaySeconds` | Initial delay for readiness probe. | `10` |
473+
| `baserow-embeddings.readinessProbe.periodSeconds` | Period for readiness probe. | `10` |
474+
| `baserow-embeddings.readinessProbe.timeoutSeconds` | Timeout for readiness probe. | `5` |
475+
| `baserow-embeddings.livenessProbe.initialDelaySeconds` | Initial delay for liveness probe. | `10` |
476+
| `baserow-embeddings.livenessProbe.periodSeconds` | Period for liveness probe. | `10` |
477+
| `baserow-embeddings.livenessProbe.timeoutSeconds` | Timeout for liveness probe. | `5` |
478+
| `baserow-embeddings.pdb.create` | Enable/disable a Pod Disruption Budget creation. | `false` |
479+
| `baserow-embeddings.pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled. | `75%` |
480+
428481
### Ingress Configuration
429482

430483
| Name | Description | Value |

deploy/helm/baserow/charts/baserow-common/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: baserow
3-
description: A Helm chart for Kubernetes
3+
description: Internal common chart for baserow components
44

55
# A chart can be either an 'application' or a 'library' chart.
66
#
@@ -15,7 +15,7 @@ type: application
1515
# This is the chart version. This version number should be incremented each time you make changes
1616
# to the chart and its templates, including the app version.
1717
# Versions are expected to follow Semantic Versioning (https://semver.org/)
18-
version: 1.0.35
18+
version: 1.0.36
1919

2020
# This is the version number of the application being deployed. This version number should be
2121
# incremented each time you make changes to the application. Versions are not expected to

deploy/helm/baserow/charts/baserow-common/templates/_helpers.tpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ Common labels
5555
{{- define "baserow.labels" -}}
5656
helm.sh/chart: {{ include "baserow.chart" . }}
5757
{{ include "baserow.selectorLabels" . }}
58-
{{ include "baserow.additionalLabels" . }}
58+
{{- include "baserow.additionalLabels" . }}
5959
{{- if .Chart.AppVersion }}
6060
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
6161
{{- end }}
@@ -68,7 +68,7 @@ Selector labels
6868
{{- define "baserow.selectorLabels" -}}
6969
app.kubernetes.io/name: {{ include "baserow.name" . }}
7070
app.kubernetes.io/instance: {{ .Release.Name }}
71-
{{ include "baserow.additionalSelectorLabels" . }}
71+
{{- include "baserow.additionalSelectorLabels" . }}
7272
{{- end }}
7373

7474
{{/*

deploy/helm/baserow/templates/backend-configmap.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ data:
1919
AWS_S3_CUSTOM_DOMAIN: {{ .Values.global.baserow.objectsDomain }}/{{ (index .Values.minio.provisioning.buckets 0).name }}
2020
AWS_S3_REGION_NAME: "us-east-1"
2121
{{- end }}
22+
{{- if .Values.global.baserow.assistantLLMModel -}}
23+
BASEROW_ENTERPRISE_ASSISTANT_LLM_MODEL: "{{ .Values.baserow.assistantLLMModel }}"
24+
{{- end }}
25+
{{- if (index .Values "baserow-embeddings").enabled }}
26+
BASEROW_EMBEDDINGS_API_URL: http://{{ include "baserow.fullname" (index .Subcharts "baserow-embeddings") }}
27+
{{- end }}
2228
{{- range $key, $val := .Values.backendConfigMap }}
2329
{{ $key }}: {{ $val | quote }}
2430
{{- end }}

deploy/helm/baserow/values.yaml

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ global:
5959
domain: cluster.local
6060
backendDomain: api.cluster.local
6161
objectsDomain: objects.cluster.local
62+
assistantLLMModel: "groq/openai/gpt-oss-120b"
6263

6364
securityContext:
6465
enabled: false
@@ -545,6 +546,64 @@ baserow-celery-flower:
545546
- celery-flower
546547
replicaCount: 1
547548

549+
## Configuration for the Baserow Embeddings service
550+
## @param baserow-embeddings.enabled Set to true to enable the Baserow Embeddings service.
551+
## @param baserow-embeddings.assistantLLMModel The LLM model to use for the AI assistant (e.g., "groq/openai/gpt-oss-120b").
552+
## @param baserow-embeddings.image.repository Docker image repository for the Embeddings service.
553+
## @param baserow-embeddings.resources Resource requests and limits for the Embeddings service.
554+
## @param baserow-embeddings.autoscaling.enabled Enable autoscaling for the Embeddings service.
555+
## @param baserow-embeddings.autoscaling.minReplicas Minimum number of replicas for autoscaling.
556+
## @param baserow-embeddings.autoscaling.maxReplicas Maximum number of replicas for autoscaling.
557+
## @param baserow-embeddings.autoscaling.targetCPUUtilizationPercentage Target CPU utilization percentage for autoscaling.
558+
## @param baserow-embeddings.service.port Service port for the Embeddings service.
559+
## @param baserow-embeddings.service.targetPort Target port for the Embeddings service.
560+
## @param baserow-embeddings.readinessProbe.initialDelaySeconds Initial delay for readiness probe.
561+
## @param baserow-embeddings.readinessProbe.periodSeconds Period for readiness probe.
562+
## @param baserow-embeddings.readinessProbe.timeoutSeconds Timeout for readiness probe.
563+
## @param baserow-embeddings.livenessProbe.initialDelaySeconds Initial delay for liveness probe.
564+
## @param baserow-embeddings.livenessProbe.periodSeconds Period for liveness probe.
565+
## @param baserow-embeddings.livenessProbe.timeoutSeconds Timeout for liveness probe.
566+
baserow-embeddings:
567+
enabled: false
568+
image:
569+
repository: embeddings
570+
resources:
571+
requests:
572+
cpu: 800m
573+
memory: 256Mi
574+
limits:
575+
cpu: 1000m
576+
memory: 512Mi
577+
readinessProbe:
578+
enabled: true
579+
httpGet:
580+
path: /health
581+
port: 80
582+
initialDelaySeconds: 10
583+
periodSeconds: 10
584+
timeoutSeconds: 5
585+
successThreshold: 1
586+
failureThreshold: 3
587+
livenessProbe:
588+
enabled: true
589+
httpGet:
590+
path: /health
591+
port: 80
592+
initialDelaySeconds: 10
593+
periodSeconds: 10
594+
timeoutSeconds: 5
595+
successThreshold: 1
596+
failureThreshold: 3
597+
autoscaling:
598+
enabled: false
599+
minReplicas: 1
600+
maxReplicas: 3
601+
targetCPUUtilizationPercentage: 80
602+
service:
603+
type: ClusterIP
604+
port: 80
605+
targetPort: 80
606+
548607
## @section Ingress Configuration
549608
## Configuration for the Ingress resource
550609
## @param ingress.enabled Enable the Ingress resource

docs/installation/install-on-aws.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Baserow can be deployed to AWS in the following ways:
1717
file or our [sample K8S configuration](./install-with-k8s.md) as a starting point to
1818
configure ECS/Fargate tasks for more advanced, production ready, one service per
1919
container model. **See below for a detailed guide**
20-
3. Using the [Baserow community maintained helm chart](./install-with-helm.md) and EKS.
20+
3. Using the [Official Baserow helm chart](./install-with-helm.md) and EKS.
2121
4. Customizing our [sample K8S configuration](./install-with-k8s.md) and using that with
2222
EKS.
2323
5. Installing and using docker/docker-compose on an EC2 instance with
@@ -209,7 +209,7 @@ with 2vCPUs and 4 GB of RAM each to start with. In short, you will want to:
209209
> found [here](./configuration.md).
210210
211211
| Env variable | Description |
212-
|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
212+
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
213213
| `DISABLE_VOLUME_CHECK=true` | *Must be set to true*. Needed to disable the check designed to help non-technical users who are not configuring an external Postgres and S3. Because we are configuring external services we do not need any volume mounted into the container. |
214214
| `BASEROW_PUBLIC_URL` | The public URL or IP that will be used to access baserow in your user's browser. Always should start with http:// https:// even if accessing via an IP address. |
215215
| `DATABASE_HOST` | The hostname of the Postgres database Baserow will use to store its data in. |
@@ -371,7 +371,7 @@ in-tool settings, active enterprise licenses, promote other users to being staff
371371
The `baserow/backend:1.35.3` and `baserow/web-frontend:1.35.3` images allow you to run
372372
Baserow's various services as separate containers.
373373

374-
These images are used by the community Helm chart, our various docker-compose.yml
374+
These images are used by the Official Helm chart, our various docker-compose.yml
375375
example setups and are best for production environments where you want full control and
376376
flexibility managing Baserow.
377377

@@ -456,7 +456,7 @@ This service is our HTTP REST API service. When creating the task definition you
456456
file to share these is also a good idea.
457457

458458
| Env variable | Description |
459-
|-------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
459+
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
460460
| `BASEROW_PUBLIC_URL` | The public URL or IP that will be used to access baserow in your user's browser. Always should start with http:// https:// even if accessing via an IP address. |
461461
| `DATABASE_HOST` | The hostname of the Postgres database Baserow will use to store its data in. |
462462
| `DATABASE_USER` | The username of the database user Baserow will use to connect to the database at `DATABASE_HOST`. |

0 commit comments

Comments
 (0)