mirror of
https://gitlab.com/bramw/baserow.git
synced 2025-04-14 17:18:33 +00:00
Added the v1.0.0 version of the helm chart.
This commit is contained in:
parent
4bd8300995
commit
a5ec6022c3
27 changed files with 2295 additions and 0 deletions
changelog/entries/unreleased/feature
deploy/helm/baserow
.editorconfig.gitignore.helmignoreChart.lockChart.yamlREADME.md
charts/baserow-common
templates
.gitignore_helpers.tplbackend-configmap.yamlfrontend-configmap.yamlingress.yamlmigrate-hook.yamlsecret.yamlservice-account.yamlshared-configmap.yaml
values.yaml
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"type": "feature",
|
||||
"message": "Introduced official Helm chart.",
|
||||
"issue_number": 1728,
|
||||
"bullet_points": [],
|
||||
"created_at": "2024-07-18"
|
||||
}
|
10
deploy/helm/baserow/.editorconfig
Normal file
10
deploy/helm/baserow/.editorconfig
Normal file
|
@ -0,0 +1,10 @@
|
|||
[*]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
0
deploy/helm/baserow/.gitignore
vendored
Normal file
0
deploy/helm/baserow/.gitignore
vendored
Normal file
24
deploy/helm/baserow/.helmignore
Normal file
24
deploy/helm/baserow/.helmignore
Normal file
|
@ -0,0 +1,24 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
|
36
deploy/helm/baserow/Chart.lock
Normal file
36
deploy/helm/baserow/Chart.lock
Normal file
|
@ -0,0 +1,36 @@
|
|||
dependencies:
|
||||
- name: baserow
|
||||
repository: file://charts/baserow-common
|
||||
version: 1.0.0
|
||||
- name: baserow
|
||||
repository: file://charts/baserow-common
|
||||
version: 1.0.0
|
||||
- name: baserow
|
||||
repository: file://charts/baserow-common
|
||||
version: 1.0.0
|
||||
- name: baserow
|
||||
repository: file://charts/baserow-common
|
||||
version: 1.0.0
|
||||
- name: baserow
|
||||
repository: file://charts/baserow-common
|
||||
version: 1.0.0
|
||||
- name: baserow
|
||||
repository: file://charts/baserow-common
|
||||
version: 1.0.0
|
||||
- name: baserow
|
||||
repository: file://charts/baserow-common
|
||||
version: 1.0.0
|
||||
- name: redis
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 19.5.5
|
||||
- name: postgresql
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 15.5.17
|
||||
- name: minio
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
version: 14.6.18
|
||||
- name: caddy-ingress-controller
|
||||
repository: https://caddyserver.github.io/ingress
|
||||
version: 1.1.0
|
||||
digest: sha256:486be04f6ac9eeab61faa95481728081b0bf25c96b7e47b61be38f11d42b53d1
|
||||
generated: "2024-07-17T14:23:08.882736+02:00"
|
81
deploy/helm/baserow/Chart.yaml
Normal file
81
deploy/helm/baserow/Chart.yaml
Normal file
|
@ -0,0 +1,81 @@
|
|||
apiVersion: v2
|
||||
name: baserow
|
||||
description: The open platform to create scalable databases and applications—without coding.
|
||||
type: application
|
||||
version: 1.0.0
|
||||
appVersion: "1.26.1"
|
||||
home: https://gitlab.com/baserow/baserow/-/tree/develop/deploy/helm/baserow?ref_type=heads
|
||||
icon: https://baserow.io/img/favicon_192.png
|
||||
sources:
|
||||
- https://gitlab.com/baserow/baserow
|
||||
- https://baserow.io
|
||||
|
||||
dependencies:
|
||||
- name: baserow
|
||||
alias: baserow-backend-asgi
|
||||
version: "1.0.0"
|
||||
repository: "file://charts/baserow-common"
|
||||
|
||||
- name: baserow
|
||||
alias: baserow-backend-wsgi
|
||||
version: "1.0.0"
|
||||
repository: "file://charts/baserow-common"
|
||||
|
||||
- name: baserow
|
||||
alias: baserow-frontend
|
||||
version: "1.0.0"
|
||||
repository: "file://charts/baserow-common"
|
||||
|
||||
- name: baserow
|
||||
alias: baserow-celery-beat-worker
|
||||
version: "1.0.0"
|
||||
repository: "file://charts/baserow-common"
|
||||
|
||||
- name: baserow
|
||||
alias: baserow-celery-export-worker
|
||||
version: "1.0.0"
|
||||
repository: "file://charts/baserow-common"
|
||||
|
||||
- name: baserow
|
||||
alias: baserow-celery-worker
|
||||
version: "1.0.0"
|
||||
repository: "file://charts/baserow-common"
|
||||
|
||||
- name: baserow
|
||||
alias: baserow-celery-flower
|
||||
version: "1.0.0"
|
||||
repository: "file://charts/baserow-common"
|
||||
condition: baserow-celery-flower.enabled
|
||||
|
||||
- name: redis
|
||||
version: 19.5.x
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: redis.enabled
|
||||
|
||||
- name: postgresql
|
||||
version: 15.5.x
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: postgresql.enabled
|
||||
|
||||
- name: minio
|
||||
version: 14.6.18
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: minio.enabled
|
||||
|
||||
- name: caddy-ingress-controller
|
||||
alias: caddy
|
||||
version: 1.1.0
|
||||
repository: https://caddyserver.github.io/ingress
|
||||
condition: caddy.enabled
|
||||
|
||||
annotations:
|
||||
artifacthub.io/category: database
|
||||
artifacthub.io/keywords: baserow, database, application, scalable, open-source
|
||||
artifacthub.io/links: |
|
||||
- name: website
|
||||
url: https://baserow.io
|
||||
- name: source
|
||||
url: https://gitlab.com/baserow/baserow
|
||||
- name: helm
|
||||
url: https://gitlab.com/baserow/baserow/-/tree/develop/deploy/helm/baserow?ref_type=heads
|
||||
artifacthub.io/quality: production
|
415
deploy/helm/baserow/README.md
Normal file
415
deploy/helm/baserow/README.md
Normal file
|
@ -0,0 +1,415 @@
|
|||
# Baserow Helm Chart
|
||||
|
||||
Baserow is an open-source no-code database tool and Airtable alternative. It is a modern database tool that allows you to create a database, web-based application, and API without code. It is built on top of Django and Vue.js and is designed to be easily deployed to a platform like Kubernetes.
|
||||
|
||||
This chart can have dependencies on other charts, such as PostgreSQL, Redis, Minio, and Caddy. The chart can be configured to use an existing instance of these services or deploy them as part of the Baserow deployment.
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
To install the chart with the release name `my-baserow` run the following commands:
|
||||
|
||||
From repo
|
||||
```bash
|
||||
helm repo add baserow https://gitlab.com/baserow/baserow-charts
|
||||
helm install my-baserow baserow/baserow --namespace baserow --create-namespace --values config.yaml
|
||||
```
|
||||
|
||||
From source code
|
||||
```bash
|
||||
helm dependency update
|
||||
helm install my-baserow . --namespace baserow --create-namespace
|
||||
helm upgrade my-baserow . --namespace baserow
|
||||
```
|
||||
|
||||
## Minimal configuration
|
||||
|
||||
Make the following changes to the values file to deploy the Baserow application with the default configuration.
|
||||
|
||||
```yaml
|
||||
global:
|
||||
baserow:
|
||||
domain: "your-baserow-domain.com"
|
||||
backendDomain: "api.your-baserow-domain.com"
|
||||
objectsDomain: "objects.your-baserow-domain.com"
|
||||
```
|
||||
|
||||
## Using existing Postgres and Redis
|
||||
|
||||
You can use the following configuration to use an existing Postgres database and Redis cluster.
|
||||
|
||||
```yaml
|
||||
redis:
|
||||
enabled: false
|
||||
|
||||
postgres:
|
||||
enabled: false
|
||||
```
|
||||
|
||||
Add the following configuration to the backendSecrets to use an existing managed database and Redis cluster.
|
||||
```yaml
|
||||
backendSecrets:
|
||||
DATABASE_HOST: "my-baserow-baserow-backend-postgresql"
|
||||
DATABASE_PORT: "5432"
|
||||
DATABASE_NAME: "baserow"
|
||||
DATABASE_USER: "baserow"
|
||||
DATABASE_PASSWORD: "password"
|
||||
REDIS_HOST: "my-baserow-baserow-backend-redis"
|
||||
REDIS_PORT: "6379"
|
||||
REDIS_PASSWORD: "password"
|
||||
```
|
||||
|
||||
## Caddy Ingress Configuration
|
||||
|
||||
Caddy is a web server that can be used as an ingress controller. When using Caddy, set the ingress configuration to use Caddy as the ingress controller. Make note of the `onDemandAsk` configuration, which is used to trigger on-demand TLS certificates. Pointed here to the health check endpoint of caddy itself to always create new certificates. On production workloads set it to the backend api endpoint to check if the domain exists in the database.
|
||||
|
||||
```yaml
|
||||
caddy:
|
||||
enabled: true
|
||||
ingressController:
|
||||
className: caddy
|
||||
config:
|
||||
email: "my@email.com"
|
||||
proxyProtocol: true
|
||||
experimentalSmartSort: false
|
||||
onDemandTLS: true
|
||||
onDemandAsk: http://:9765/healthz
|
||||
```
|
||||
|
||||
```yaml
|
||||
onDemandAsk: "http://my-baserow-baserow-backend-wsgi/api/builder/domains/ask-public-domain-exists/"
|
||||
```
|
||||
|
||||
## Different Cloud Providers
|
||||
|
||||
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.
|
||||
|
||||
### AWS
|
||||
|
||||
#### S3 Config
|
||||
When deploying to AWS, you can use the following configuration to use S3 for object storage. Make sure to disable minio as it is not needed.
|
||||
|
||||
```yaml
|
||||
minio:
|
||||
enabled: false
|
||||
|
||||
backendConfigMap:
|
||||
AWS_STORAGE_BUCKET_NAME: "my-baserow-baserow-backend-bucket"
|
||||
AWS_S3_CUSTOM_DOMAIN: "my-baserow-baserow-backend-bucket"
|
||||
AWS_S3_REGION_NAME: "us-east-1"
|
||||
AWS_S3_ENDPOINT_URL: "https://s3.us-east-1.amazonaws.com/my-baserow-baserow-backend-bucket"
|
||||
```
|
||||
|
||||
#### AWS Authentication
|
||||
AWS authentication can be set by service account or environment variables. Below is an example of setting the AWS credentials using the environment variables.
|
||||
|
||||
```yaml
|
||||
backendSecrets:
|
||||
AWS_ACCESS_KEY_ID: "my-access-key"
|
||||
AWS_SECRET_ACCESS_KEY: "my-secret-key"
|
||||
```
|
||||
|
||||
When running on EKS you can also use a service account with an IAM role and permissions. For the service account, you can use the following configuration. To create the corresponding IAM role, refer to the AWS documentation. https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html
|
||||
|
||||
```yaml
|
||||
global:
|
||||
baserow:
|
||||
serviceAccount:
|
||||
shared: true
|
||||
create: true
|
||||
name: baserow
|
||||
annotations: {}
|
||||
```
|
||||
|
||||
#### Ingress
|
||||
|
||||
When deploying to AWS, you can use the following configuration to create a Network Load Balancer. For more information about the annotations, refer to the AWS documentation. https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html
|
||||
|
||||
```yaml
|
||||
ingress:
|
||||
enabled: true
|
||||
|
||||
caddy:
|
||||
enabled: true
|
||||
ingressController:
|
||||
className: caddy
|
||||
config:
|
||||
email: "my@email.com"
|
||||
proxyProtocol: true
|
||||
experimentalSmartSort: false
|
||||
onDemandTLS: true
|
||||
onDemandAsk: http://:9765/healthz
|
||||
loadBalancer:
|
||||
externalTrafficPolicy: "Local"
|
||||
annotations:
|
||||
service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
|
||||
service.beta.kubernetes.io/aws-load-balancer-scheme: "internet-facing"
|
||||
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
|
||||
service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: "TCP"
|
||||
service.beta.kubernetes.io/aws-load-balancer-alpn-policy: "HTTP2Preferred"
|
||||
```
|
||||
|
||||
### Digital ocean
|
||||
|
||||
#### Ingress
|
||||
|
||||
When deploying to Digital Ocean, you can use the following configuration to create a Load Balancer. For more information about the annotations, refer to the Digital Ocean documentation. https://docs.digitalocean.com/products/kubernetes/how-to/add-load-balancers/
|
||||
|
||||
```yaml
|
||||
ingress:
|
||||
enabled: true
|
||||
|
||||
caddy:
|
||||
enabled: true
|
||||
ingressController:
|
||||
config:
|
||||
email: "my@email.com"
|
||||
proxyProtocol: true
|
||||
experimentalSmartSort: false
|
||||
onDemandTLS: true
|
||||
onDemandRateLimitInterval: "2m"
|
||||
onDemandRateLimitBurst: 5
|
||||
onDemandAsk: http://:9765/healthz
|
||||
loadBalancer:
|
||||
externalTrafficPolicy: "Local"
|
||||
annotations:
|
||||
service.beta.kubernetes.io/do-loadbalancer-protocol: "http"
|
||||
service.beta.kubernetes.io/do-loadbalancer-algorithm: "round_robin"
|
||||
service.beta.kubernetes.io/do-loadbalancer-tls-ports: "443"
|
||||
service.beta.kubernetes.io/do-loadbalancer-tls-passthrough: "true"
|
||||
service.beta.kubernetes.io/do-loadbalancer-redirect-http-to-https: "true"
|
||||
service.beta.kubernetes.io/do-loadbalancer-enable-proxy-protocol: "true"
|
||||
```
|
||||
|
||||
|
||||
## Parameters
|
||||
|
||||
### Global parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------- | ----------------------- |
|
||||
| `global.baserow.imageRegistry` | Global Docker image registry | `baserow` |
|
||||
| `global.baserow.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
|
||||
| `global.baserow.image.tag` | Global Docker image tag | `1.26.1` |
|
||||
| `global.baserow.serviceAccount.shared` | Set to true to share the service account between all application components. | `true` |
|
||||
| `global.baserow.serviceAccount.create` | Set to true to create a service account to share between all application components. | `true` |
|
||||
| `global.baserow.serviceAccount.name` | Configure a name for service account to share between all application components. | `baserow` |
|
||||
| `global.baserow.serviceAccount.annotations` | Configure annotations for the shared service account. | `{}` |
|
||||
| `global.baserow.serviceAccount.automountServiceAccountToken` | Automount the service account token to the pods. | `false` |
|
||||
| `global.baserow.backendConfigMap` | Configure a name for the backend configmap. | `backend-config` |
|
||||
| `global.baserow.backendSecret` | Configure a name for the backend secret. | `backend-secret` |
|
||||
| `global.baserow.frontendConfigMap` | Configure a name for the frontend configmap. | `frontend-config` |
|
||||
| `global.baserow.sharedConfigMap` | Configure a name for the shared configmap. | `shared-config` |
|
||||
| `global.baserow.envFrom` | Configure secrets or configMaps to be used as environment variables for all components. | `[]` |
|
||||
| `global.baserow.domain` | Configure the domain for the frontend application. | `cluster.local` |
|
||||
| `global.baserow.backendDomain` | Configure the domain for the backend application. | `api.cluster.local` |
|
||||
| `global.baserow.objectsDomain` | Configure the domain for the external facing minio api. | `objects.cluster.local` |
|
||||
|
||||
### Baserow Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------- | ------------------------- | ------ |
|
||||
| `generateJwtSecret` | Generate a new JWT secret | `true` |
|
||||
|
||||
### Shared ConfigMap Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------- | ----------------------------------------------------------------- | ----- |
|
||||
| `sharedConfigMap` | Additional configuration for the shared ConfigMap, key value map. | `{}` |
|
||||
|
||||
### Frontend ConfigMap Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------------------- | ------------------------------------ | ----- |
|
||||
| `frontendConfigMap.DOWNLOAD_FILE_VIA_XHR` | Set to "1" to download files via XHR | `1` |
|
||||
|
||||
### backend Secrets Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ---------------- | ---------------------------------------------------------------- | ----- |
|
||||
| `backendSecrets` | Additional configuration for the backend Secrets, key value map. | `{}` |
|
||||
|
||||
### backend ConfigMap Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------------------------------------------- | ---------------------------------------------------------- | ------- |
|
||||
| `backendConfigMap.DONT_UPDATE_FORMULAS_AFTER_MIGRATION` | Set to "yes" to disable updating formulas after migration | `yes` |
|
||||
| `backendConfigMap.SYNC_TEMPLATES_ON_STARTUP` | Set to "false" to disable syncing templates on startup | `false` |
|
||||
| `backendConfigMap.MIGRATE_ON_STARTUP` | Set to "false" to disable migration on startup | `false` |
|
||||
| `backendConfigMap.BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION` | Set to "true" to trigger syncing templates after migration | `true` |
|
||||
|
||||
### Migration Job Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------- | --------------------------------------------------------- | --------- |
|
||||
| `migration.enabled` | Enabled the migration job | `true` |
|
||||
| `migration.image.repository` | Migration job Docker image repository | `backend` |
|
||||
| `migration.priorityClassName` | Kubernetes priority class name for the migration job | `""` |
|
||||
| `migration.nodeSelector` | Node labels for pod assignment | `{}` |
|
||||
| `migration.tolerations` | Tolerations for pod assignment | `[]` |
|
||||
| `migration.affinity` | Affinity settings for pod assignment | `[]` |
|
||||
| `migration.extraEnv` | Extra environment variables for the migration job | `[]` |
|
||||
| `migration.envFrom` | ConfigMaps or Secrets to be used as environment variables | `[]` |
|
||||
| `migration.volumes` | Volumes for the migration job | `[]` |
|
||||
| `migration.volumeMounts` | Volume mounts for the migration job | `[]` |
|
||||
|
||||
### Baserow Backend ASGI Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `baserow-backend-asgi.image.repository` | Docker image repository for the ASGI server. | `backend` |
|
||||
| `baserow-backend-asgi.args` | Arguments passed to the ASGI server. | `["gunicorn"]` |
|
||||
| `baserow-backend-asgi.livenessProbe.exec.command` | The command used to check the liveness of the ASGI server. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh backend-healthcheck"]` |
|
||||
| `baserow-backend-asgi.livenessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-backend-asgi.livenessProbe.initialDelaySeconds` | Delay before the liveness probe is initiated after the container starts. | `120` |
|
||||
| `baserow-backend-asgi.livenessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-backend-asgi.livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-backend-asgi.livenessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `5` |
|
||||
| `baserow-backend-asgi.readinessProbe.exec.command` | The command used to check the readiness of the ASGI server. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh backend-healthcheck"]` |
|
||||
| `baserow-backend-asgi.readinessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-backend-asgi.readinessProbe.initialDelaySeconds` | Delay before the readiness probe is initiated after the container starts. | `120` |
|
||||
| `baserow-backend-asgi.readinessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-backend-asgi.readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-backend-asgi.readinessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `5` |
|
||||
|
||||
### Baserow Backend WSGI Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- |
|
||||
| `baserow-backend-wsgi.image.repository` | Docker image repository for the WSGI server. | `backend` |
|
||||
| `baserow-backend-wsgi.args` | Arguments passed to the WSGI server. | `["gunicorn-wsgi","--timeout","120"]` |
|
||||
| `baserow-backend-wsgi.livenessProbe.exec.command` | The command used to check the liveness of the WSGI server. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh backend-healthcheck"]` |
|
||||
| `baserow-backend-wsgi.livenessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-backend-wsgi.livenessProbe.initialDelaySeconds` | Delay before the liveness probe is initiated after the container starts. | `120` |
|
||||
| `baserow-backend-wsgi.livenessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-backend-wsgi.livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-backend-wsgi.livenessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `5` |
|
||||
| `baserow-backend-wsgi.readinessProbe.exec.command` | The command used to check the readiness of the wsgi server. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh backend-healthcheck"]` |
|
||||
| `baserow-backend-wsgi.readinessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-backend-wsgi.readinessProbe.initialDelaySeconds` | Delay before the readiness probe is initiated after the container starts. | `120` |
|
||||
| `baserow-backend-wsgi.readinessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-backend-wsgi.readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-backend-wsgi.readinessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `5` |
|
||||
|
||||
### Baserow Web Frontend Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------- |
|
||||
| `baserow-frontend.image.repository` | Docker image repository for the Web Frontend server. | `web-frontend` |
|
||||
| `baserow-frontend.args` | Arguments passed to the Web Frontend server. | `["nuxt"]` |
|
||||
| `baserow-frontend.workingDir` | Working Directory for the container. | `""` |
|
||||
| `baserow-frontend.livenessProbe.httpGet.path` | The path to check for the liveness probe. | `/_health` |
|
||||
| `baserow-frontend.livenessProbe.httpGet.port` | The port to check for the liveness probe. | `3000` |
|
||||
| `baserow-frontend.livenessProbe.httpGet.scheme` | The scheme to use for the liveness probe. | `HTTP` |
|
||||
| `baserow-frontend.livenessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-frontend.livenessProbe.initialDelaySeconds` | Delay before the liveness probe is initiated after the container starts. | `5` |
|
||||
| `baserow-frontend.livenessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-frontend.livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-frontend.livenessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `5` |
|
||||
| `baserow-frontend.readinessProbe.httpGet.path` | The path to check for the readiness probe. | `/_health` |
|
||||
| `baserow-frontend.readinessProbe.httpGet.port` | The port to check for the readiness probe. | `3000` |
|
||||
| `baserow-frontend.readinessProbe.httpGet.scheme` | The scheme to use for the readiness probe. | `HTTP` |
|
||||
| `baserow-frontend.readinessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-frontend.readinessProbe.initialDelaySeconds` | Delay before the readiness probe is initiated after the container starts. | `5` |
|
||||
| `baserow-frontend.readinessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-frontend.readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-frontend.readinessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `5` |
|
||||
| `baserow-frontend.mountConfiguration.backend` | If enabled, all the backend service configurations and secrets will be mounted. | `false` |
|
||||
| `baserow-frontend.mountConfiguration.frontend` | If enabled, all the frontend service configurations and secrets will be mounted. | `true` |
|
||||
| `baserow-frontend.service.targetPort` | The port the Web Frontend server listens on. | `3000` |
|
||||
|
||||
### Baserow Celery beat Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------------------------- | ---------------------------------------------------------------------- | ----------------- |
|
||||
| `baserow-celery-beat-worker.image.repository` | Docker image repository for the Celery beat worker. | `backend` |
|
||||
| `baserow-celery-beat-worker.args` | Arguments passed to the Celery beat worker. | `["celery-beat"]` |
|
||||
| `baserow-celery-beat-worker.service.create` | Set to false to disable creating a service for the Celery beat worker. | `false` |
|
||||
|
||||
### Baserow Celery export worker Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ----------------------------------------------- | ---------------------------------------------------------------------- | ------------------------- |
|
||||
| `baserow-celery-export-worker.image.repository` | Docker image repository for the Celery export worker. | `backend` |
|
||||
| `baserow-celery-export-worker.args` | Arguments passed to the Celery export worker. | `["celery-exportworker"]` |
|
||||
| `baserow-celery-export-worker.service.create` | Set to false to disable creating a service for the Celery beat worker. | `false` |
|
||||
|
||||
### Baserow Celery worker Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ---------------------------------------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
||||
| `baserow-celery-worker.image.repository` | Docker image repository for the Celery worker. | `backend` |
|
||||
| `baserow-celery-worker.args` | Arguments passed to the Celery worker. | `["celery-worker"]` |
|
||||
| `baserow-celery-worker.service.create` | Set to false to disable creating a service for the Celery beat worker. | `false` |
|
||||
| `baserow-celery-worker.livenessProbe.exec.command` | The command used to check the liveness of the WSGI server. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh celery-worker-healthcheck"]` |
|
||||
| `baserow-celery-worker.livenessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-celery-worker.livenessProbe.initialDelaySeconds` | Delay before the liveness probe is initiated after the container starts. | `10` |
|
||||
| `baserow-celery-worker.livenessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-celery-worker.livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-celery-worker.livenessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `10` |
|
||||
| `baserow-celery-worker.readinessProbe.exec.command` | The command used to check the readiness of the wsgi server. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh celery-worker-healthcheck"]` |
|
||||
| `baserow-celery-worker.readinessProbe.failureThreshold` | Number of times the probe can fail before the container is restarted. | `3` |
|
||||
| `baserow-celery-worker.readinessProbe.initialDelaySeconds` | Delay before the readiness probe is initiated after the container starts. | `10` |
|
||||
| `baserow-celery-worker.readinessProbe.periodSeconds` | How often (in seconds) to perform the probe. | `30` |
|
||||
| `baserow-celery-worker.readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed. | `1` |
|
||||
| `baserow-celery-worker.readinessProbe.timeoutSeconds` | Number of seconds after which the probe times out. | `10` |
|
||||
|
||||
### Baserow Celery Flower Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ---------------------------------------- | -------------------------------------------------------------- | ------------------- |
|
||||
| `baserow-celery-flower.enabled` | Set to true to enable the Celery Flower monitoring tool. | `false` |
|
||||
| `baserow-celery-flower.image.repository` | Docker image repository for the Celery Flower monitoring tool. | `backend` |
|
||||
| `baserow-celery-flower.args` | Arguments passed to the Celery Flower monitoring tool. | `["celery-flower"]` |
|
||||
|
||||
### Ingress Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------------- | ------------------------------------------ | ----------------------------------------- |
|
||||
| `ingress.enabled` | Enable the Ingress resource | `true` |
|
||||
| `ingress.annotations.kubernetes.io/ingress.class` | Ingress class annotation | `{"kubernetes.io/ingress.class":"caddy"}` |
|
||||
| `ingress.tls` | TLS configuration for the Ingress resource | `[]` |
|
||||
|
||||
### Redis Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| --------------------------- | --------------------------------------------------------------- | ------------ |
|
||||
| `redis.enabled` | Enable the Redis database | `true` |
|
||||
| `redis.architecture` | The Redis architecture | `standalone` |
|
||||
| `redis.auth.enabled` | Enable Redis authentication | `true` |
|
||||
| `redis.auth.password` | The password for the Redis database | `baserow` |
|
||||
| `redis.auth.existingSecret` | The name of an existing secret containing the database password | `""` |
|
||||
|
||||
### PostgreSQL Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| -------------------------------- | --------------------------------------------------------------- | --------- |
|
||||
| `postgresql.enabled` | Enable the PostgreSQL database | `true` |
|
||||
| `postgresql.auth.database` | The name of the database | `baserow` |
|
||||
| `postgresql.auth.existingSecret` | The name of an existing secret containing the database password | `""` |
|
||||
| `postgresql.auth.password` | The password for the database | `baserow` |
|
||||
| `postgresql.auth.username` | The username for the database | `baserow` |
|
||||
|
||||
### Minio Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------ | ------------------------------------------------ | ------------------------------------------------ |
|
||||
| `minio.enabled` | Enable the Minio object storage service | `true` |
|
||||
| `minio.networkPolicy.enabled` | Enable the Minio network policy | `false` |
|
||||
| `minio.disableWebUI` | Disable the Minio web UI | `true` |
|
||||
| `minio.provisioning.enabled` | Enable the Minio provisioning service | `true` |
|
||||
| `minio.provisioning.buckets[0].name` | Name of the bucket to create | `baserow` |
|
||||
| `minio.provisioning.extraCommands` | List of extra commands to run after provisioning | `mc anonymous set download provisioning/baserow` |
|
||||
|
||||
### Caddy Configuration
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------------------ | -------------------------------------------------------------------- | ---------------------- |
|
||||
| `caddy.enabled` | Enable the Caddy ingress controller | `true` |
|
||||
| `caddy.ingressController.className` | Ingress class name which caddy will look for on ingress annotations. | `caddy` |
|
||||
| `caddy.ingressController.config.email` | Email address to use for Let's Encrypt certificates | `my@email.com` |
|
||||
| `caddy.ingressController.config.proxyProtocol` | Enable the PROXY protocol | `true` |
|
||||
| `caddy.ingressController.config.experimentalSmartSort` | Enable experimental smart sorting | `false` |
|
||||
| `caddy.ingressController.config.onDemandTLS` | Enable on-demand TLS | `true` |
|
||||
| `caddy.ingressController.config.onDemandAsk` | URL to check for on-demand TLS | `http://:9765/healthz` |
|
||||
| `caddy.loadBalancer.externalTrafficPolicy` | External traffic policy for the load balancer | `Local` |
|
||||
| `caddy.loadBalancer.annotations` | Annotations for the load balancer | `{}` |
|
23
deploy/helm/baserow/charts/baserow-common/.helmignore
Normal file
23
deploy/helm/baserow/charts/baserow-common/.helmignore
Normal file
|
@ -0,0 +1,23 @@
|
|||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
24
deploy/helm/baserow/charts/baserow-common/Chart.yaml
Normal file
24
deploy/helm/baserow/charts/baserow-common/Chart.yaml
Normal file
|
@ -0,0 +1,24 @@
|
|||
apiVersion: v2
|
||||
name: baserow
|
||||
description: A Helm chart for Kubernetes
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: application
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 1.0.0
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
appVersion: "1.26.1"
|
83
deploy/helm/baserow/charts/baserow-common/README.md
Normal file
83
deploy/helm/baserow/charts/baserow-common/README.md
Normal file
|
@ -0,0 +1,83 @@
|
|||
## Parameters
|
||||
|
||||
### Global parameters
|
||||
|
||||
| Name | Description | Value |
|
||||
| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |-----------------------------------------------------------------------------------------|
|
||||
| `global.baserow.imageRegistry` | Global Docker image registry | `baserow` |
|
||||
| `global.baserow.imagePullSecrets` | Global Docker registry secret names as an array | `[]` |
|
||||
| `global.baserow.image.tag` | Global Docker image tag | `1.26.1` |
|
||||
| `global.baserow.serviceAccount.shared` | Set to true to share the service account between all application components. | `true` |
|
||||
| `global.baserow.serviceAccount.create` | Set to true to create a service account to share between all application components. | `true` |
|
||||
| `global.baserow.serviceAccount.name` | Configure a name for service account to share between all application components. | `baserow` |
|
||||
| `global.baserow.serviceAccount.annotations` | Configure annotations for the shared service account. | `{}` |
|
||||
| `global.baserow.serviceAccount.automountServiceAccountToken` | Allows auto mount of ServiceAccountToken on the serviceAccount | `false` |
|
||||
| `global.baserow.backendConfigMap` | Configure a name for the backend configmap. | `backend-config` |
|
||||
| `global.baserow.backendSecret` | Configure a name for the backend secret. | `backend-secret` |
|
||||
| `global.baserow.frontendConfigMap` | Configure a name for the frontend configmap. | `frontend-config` |
|
||||
| `global.baserow.envFrom` | Configure secrets or configMaps to be used as environment variables for all components. | `[]` |
|
||||
| `global.baserow.domain` | Configure the domain for the application. | `cluster.local` |
|
||||
| `image.repository` | Baserow image repository | `baserow/baserow` |
|
||||
| `image.pullPolicy` | Baserow image pull policy | `IfNotPresent` |
|
||||
| `workingDir` | Application container working directory | `/baserow-saas` |
|
||||
| `args` | Application container extra arguments | `[]` |
|
||||
| `imagePullSecrets` | Container image pull secrets | `[]` |
|
||||
| `podAnnotations` | Map of annotations to add to the pods | `{}` |
|
||||
| `additionalLabels` | Map of extra labels to add | `{}` |
|
||||
| `additionalSelectorLabels` | Map of extra selector labels to add to the deployment | `{}` |
|
||||
| `securityContext.enabled` | Enable security context | `false` |
|
||||
| `securityContext.fsGroupChangePolicy` | Set filesystem group change policy | `""` |
|
||||
| `securityContext.sysctls` | Set kernel settings using the sysctl interface | `""` |
|
||||
| `securityContext.supplementalGroups` | Set filesystem extra groups | `""` |
|
||||
| `securityContext.fsGroup` | Group ID for the pod | `""` |
|
||||
| `containerSecurityContext.enabled` | Enabled containers' Security Context | `false` |
|
||||
| `containerSecurityContext.seLinuxOptions` | Set SELinux options in container | `""` |
|
||||
| `containerSecurityContext.runAsUser` | Set containers' Security Context runAsUser | `""` |
|
||||
| `containerSecurityContext.runAsGroup` | Set containers' Security Context runAsGroup | `""` |
|
||||
| `containerSecurityContext.runAsNonRoot` | Set container's Security Context runAsNonRoot | `""` |
|
||||
| `containerSecurityContext.privileged` | Set container's Security Context privileged | `false` |
|
||||
| `containerSecurityContext.readOnlyRootFilesystem` | Set container's Security Context readOnlyRootFilesystem | `false` |
|
||||
| `containerSecurityContext.allowPrivilegeEscalation` | Set container's Security Context allowPrivilegeEscalation | `false` |
|
||||
| `containerSecurityContext.capabilities.drop` | List of capabilities to be dropped | `[]` |
|
||||
| `containerSecurityContext.seccompProfile.type` | Set container's Security Context seccomp profile | `""` |
|
||||
| `replicaCount` | Number of application pods, ignored when enabling autoscaling. | `1` |
|
||||
| `revisionHistoryLimit` | Number of old ReplicaSets to retain for rollback | `10` |
|
||||
| `resources` | Set container requests and limits for different resources like CPU or memory (essential for production workloads) | `{}` |
|
||||
| `readinessProbe.enabled` | Enable readinessProbe on the application container | `false` |
|
||||
| `readinessProbe.initialDelaySeconds` | Initial delay seconds for readinessProbe | `120` |
|
||||
| `readinessProbe.periodSeconds` | Period seconds for readinessProbe | `5` |
|
||||
| `readinessProbe.timeoutSeconds` | Timeout seconds for readinessProbe | `5` |
|
||||
| `readinessProbe.failureThreshold` | Failure threshold for readinessProbe | `3` |
|
||||
| `readinessProbe.successThreshold` | Success threshold for readinessProbe | `1` |
|
||||
| `readinessProbe.exec.command` | Defines the command to run in the container to determine if the container is running. The command is simply executed, and if it exits with a status code of 0, the container is considered to be alive and functioning. If the command exits with a non-zero status code, the container is considered to have failed. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh backend-healthcheck"]` |
|
||||
| `livenessProbe.enabled` | Enable livenessProbe on the application container | `false` |
|
||||
| `livenessProbe.initialDelaySeconds` | Initial delay seconds for livenessProbe | `120` |
|
||||
| `livenessProbe.periodSeconds` | Period seconds for livenessProbe | `5` |
|
||||
| `livenessProbe.timeoutSeconds` | Timeout seconds for livenessProbe | `5` |
|
||||
| `livenessProbe.failureThreshold` | Failure threshold for livenessProbe | `3` |
|
||||
| `livenessProbe.successThreshold` | Success threshold for livenessProbe | `1` |
|
||||
| `livenessProbe.exec.command` | Defines the command to run in the container to determine if the container is running. The command is simply executed, and if it exits with a status code of 0, the container is considered to be alive and functioning. If the command exits with a non-zero status code, the container is considered to have failed. | `["/bin/bash","-c","/baserow/backend/docker/docker-entrypoint.sh backend-healthcheck"]` |
|
||||
| `priorityClassName` | Priority Class to use for each pod | `""` |
|
||||
| `affinity` | Affinity for the baserow application pods assignment | `{}` |
|
||||
| `nodeSelector` | Node labels for application pods assignment | `{}` |
|
||||
| `tolerations` | Tolerations for application pods assignment | `[]` |
|
||||
| `extraEnv` | Extra environment variables to add to the baserow application container | `[]` |
|
||||
| `envFrom` | Extra environments variables to add to the baserow application container from configmaps or secrets. | `[]` |
|
||||
| `serviceAccount.create` | Enable creation of ServiceAccount for the pod | `true` |
|
||||
| `serviceAccount.name` | The name of the ServiceAccount to use. | `""` |
|
||||
| `serviceAccount.automountServiceAccountToken` | Allows auto mount of ServiceAccountToken on the serviceAccount | `false` |
|
||||
| `serviceAccount.annotations` | Additional custom annotations for the ServiceAccount | `{}` |
|
||||
| `autoscaling.enabled` | Enable autoscaling for the application | `false` |
|
||||
| `autoscaling.minReplicas` | Minimum number of application replicas | `2` |
|
||||
| `autoscaling.maxReplicas` | Maximum number of application replicas | `10` |
|
||||
| `autoscaling.targetCPUUtilizationPercentage` | Target CPU utilization percentage | `80` |
|
||||
| `autoscaling.targetMemoryUtilizationPercentage` | Target Memory utilization percentage | `80` |
|
||||
| `service.create` | Set to true to create a Kubernetes service | `true` |
|
||||
| `service.type` | Kubernetes service type | `ClusterIP` |
|
||||
| `service.port` | Port to expose for the application | `80` |
|
||||
| `service.targetPort` | Port to expose for the application | `8000` |
|
||||
| `pdb.create` | Enable/disable a Pod Disruption Budget creation | `false` |
|
||||
| `pdb.minAvailable` | Minimum number/percentage of pods that should remain scheduled | `50%` |
|
||||
| `pdb.maxUnavailable` | Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `readReplicas.pdb.minAvailable` and `readReplicas.pdb.maxUnavailable` are empty. | `50%` |
|
||||
| `mountConfiguration.backend` | Mount backend configmaps and secrets. | `true` |
|
||||
| `mountConfiguration.frontend` | Mount frontend configmaps and secrets. | `false` |
|
203
deploy/helm/baserow/charts/baserow-common/templates/_helpers.tpl
Normal file
203
deploy/helm/baserow/charts/baserow-common/templates/_helpers.tpl
Normal file
|
@ -0,0 +1,203 @@
|
|||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "baserow.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Expand the namespace of the chart.
|
||||
*/}}
|
||||
{{- define "baserow.namespace" -}}
|
||||
{{- default .Release.Namespace .Values.namespace }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "baserow.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "baserow.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "baserow.additionalLabels" }}
|
||||
{{- range $key, $val := .Values.additionalLabels }}
|
||||
{{ $key }}: {{ $val }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{- define "baserow.additionalSelectorLabels" }}
|
||||
{{- range $key, $val := .Values.additionalSelectorLabels }}
|
||||
{{ $key }}: {{ $val }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "baserow.labels" -}}
|
||||
helm.sh/chart: {{ include "baserow.chart" . }}
|
||||
{{ include "baserow.selectorLabels" . }}
|
||||
{{ include "baserow.additionalLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "baserow.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "baserow.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{ include "baserow.additionalSelectorLabels" . }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "baserow.serviceAccountName" -}}
|
||||
{{- if not .Values.global.baserow.serviceAccount.shared -}}
|
||||
{{- if .Values.serviceAccount.create }}
|
||||
{{- default (include "baserow.fullname" .) .Values.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{ else }}
|
||||
{{- default "default" .Values.global.baserow.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{/*
|
||||
Create command for readiness probe
|
||||
*/}}
|
||||
{{- define "baserow.readinessProbeCommand" -}}
|
||||
{{- $command := .Values.readinessProbe.command }}
|
||||
{{- if $command }}
|
||||
{{- printf "command:" | nindent 4 -}}
|
||||
{{- toYaml $command | nindent 6 -}}
|
||||
{{ else }}
|
||||
{{- printf "command:" | nindent 4 -}}
|
||||
{{- printf "- /bin/bash" | nindent 6 -}}
|
||||
{{- printf "- -c" | nindent 6 -}}
|
||||
{{- printf "- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck" | nindent 6 -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create full readinessProbe
|
||||
*/}}
|
||||
{{- define "baserow.readinessProbe" -}}
|
||||
{{- if .Values.readinessProbe }}
|
||||
readinessProbe:
|
||||
exec: {{ include "baserow.readinessProbeCommand" . }}
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create command for liveness probe
|
||||
*/}}
|
||||
{{- define "baserow.livenessProbeCommand" -}}
|
||||
{{- $command := .Values.livenessProbe.command }}
|
||||
{{- if $command }}
|
||||
{{- printf "command:" | nindent 4 -}}
|
||||
{{- toYaml $command | nindent 6 -}}
|
||||
{{ else }}
|
||||
{{- printf "command:" | nindent 4 -}}
|
||||
{{- printf "- /bin/bash" | nindent 6 -}}
|
||||
{{- printf "- -c" | nindent 6 -}}
|
||||
{{- printf "- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck" | nindent 6 -}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create full livenessProbe
|
||||
*/}}
|
||||
{{- define "baserow.livenessProbe" -}}
|
||||
{{- if .Values.livenessProbe }}
|
||||
livenessProbe:
|
||||
exec: {{ include "baserow.livenessProbeCommand" . }}
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Image Pull secrets combine the global and local imagePullSecrets
|
||||
*/}}
|
||||
{{- define "baserow.imagePullSecrets" -}}
|
||||
{{- $global := .Values.global.baserow.imagePullSecrets }}
|
||||
{{- $local := .Values.imagePullSecrets }}
|
||||
{{- if and $global $local }}
|
||||
{{- $all := concat $global $local -}}
|
||||
{{- toYaml $all | nindent 8}}
|
||||
{{- else if $global }}
|
||||
{{- toYaml $global | nindent 8}}
|
||||
{{- else if $local }}
|
||||
{{- toYaml $local | nindent 8}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create image url to use
|
||||
*/}}
|
||||
{{- define "baserow.image" -}}
|
||||
{{- if and .Values.global.baserow.imageRegistry .Values.global.baserow.image.tag -}}
|
||||
{{- printf "%s/%s:%s" .Values.global.baserow.imageRegistry .Values.image.repository .Values.global.baserow.image.tag }}
|
||||
{{- else -}}
|
||||
{{- printf "%s:%s" .Values.image.repository .Values.image.tag }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create envFrom options
|
||||
*/}}
|
||||
{{- define "baserow.envFrom" -}}
|
||||
{{- if .Values.mountConfiguration.backend }}
|
||||
- configMapRef:
|
||||
name: {{ .Values.global.baserow.sharedConfigMap }}
|
||||
- configMapRef:
|
||||
name: {{ .Values.global.baserow.backendConfigMap }}
|
||||
- secretRef:
|
||||
name: {{ .Values.global.baserow.backendSecret }}
|
||||
{{ end }}
|
||||
{{- if .Values.mountConfiguration.frontend }}
|
||||
- configMapRef:
|
||||
name: {{ .Values.global.baserow.sharedConfigMap }}
|
||||
- configMapRef:
|
||||
name: {{ .Values.global.baserow.frontendConfigMap }}
|
||||
{{ end }}
|
||||
{{- if .Values.global.baserow.envFrom }}
|
||||
{{ toYaml .Values.global.baserow.envFrom }}
|
||||
{{- end }}
|
||||
{{- if .Values.envFrom }}
|
||||
{{ toYaml .Values.envFrom }}
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -0,0 +1,127 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "baserow.fullname" . }}
|
||||
namespace: {{ include "baserow.namespace" . }}
|
||||
labels:
|
||||
{{- include "baserow.labels" . | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.autoscaling.enabled }}
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- end }}
|
||||
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "baserow.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
rollme: {{ randAlphaNum 5 | quote }}
|
||||
{{- with .Values.podAnnotations }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{- include "baserow.selectorLabels" . | nindent 8 }}
|
||||
{{- if .Values.securityContext.enabled }}
|
||||
{{- with .Values.securityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
spec:
|
||||
serviceAccountName: {{ include "baserow.serviceAccountName" . }}
|
||||
{{- if .Values.priorityClassName }}
|
||||
priorityClassName: {{ .Values.priorityClassName }}
|
||||
{{- end -}}
|
||||
{{- if or .Values.imagePullSecrets .Values.global.baserow.imagePullSecrets }}
|
||||
imagePullSecrets: {{ include "baserow.imagePullSecrets" . }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
containers:
|
||||
- name: {{ include "baserow.fullname" . }}
|
||||
image: {{ include "baserow.image" . }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
workingDir: {{ .Values.workingDir }}
|
||||
{{- with .Values.args }}
|
||||
args:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- if .Values.service.create }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: {{ .Values.service.targetPort }}
|
||||
protocol: TCP
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
{{- with .Values.livenessProbe }}
|
||||
livenessProbe:
|
||||
{{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
{{- with .Values.readinessProbe }}
|
||||
readinessProbe:
|
||||
{{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if .Values.containerSecurityContext.enabled }}
|
||||
{{- with .Values.containerSecurityContext }}
|
||||
securityContext:
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.resources }}
|
||||
resources: {{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
{{- with .Values.volumeMounts }}
|
||||
volumeMounts:
|
||||
{{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
envFrom:
|
||||
{{ include "baserow.envFrom" . | nindent 12 }}
|
||||
env:
|
||||
- name: K8S_NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: K8S_POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: K8S_POD_UID
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
- name: K8S_POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: OTEL_RESOURCE_ATTRIBUTES
|
||||
value: "k8s.container.name=$(K8S_POD_NAME),k8s.node.name=$(K8S_NODE_NAME),k8s.pod.name=$(K8S_POD_NAME),k8s.pod.uid=$(K8S_POD_UID),k8s.namespace.name=$(K8S_POD_NAMESPACE),k8s.resource.type=container"
|
||||
- name: HOST_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.hostIP
|
||||
- name: OTEL_EXPORTER_OTLP_ENDPOINT
|
||||
value: "http://$(HOST_IP):4318"
|
||||
{{- range .Values.extraEnv }}
|
||||
{{- if and (.name) (.value) }}
|
||||
- name: {{ .name | quote }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
33
deploy/helm/baserow/charts/baserow-common/templates/hpa.yaml
Normal file
33
deploy/helm/baserow/charts/baserow-common/templates/hpa.yaml
Normal file
|
@ -0,0 +1,33 @@
|
|||
{{- if .Values.autoscaling.enabled }}
|
||||
apiVersion: autoscaling/v2
|
||||
kind: HorizontalPodAutoscaler
|
||||
metadata:
|
||||
name: {{ include "baserow.fullname" . }}
|
||||
namespace: {{ include "baserow.namespace" . }}
|
||||
labels:
|
||||
{{- include "baserow.labels" . | nindent 4 }}
|
||||
spec:
|
||||
scaleTargetRef:
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
name: {{ include "baserow.fullname" . }}
|
||||
minReplicas: {{ .Values.autoscaling.minReplicas }}
|
||||
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
|
||||
metrics:
|
||||
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: cpu
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
- type: Resource
|
||||
resource:
|
||||
name: memory
|
||||
target:
|
||||
type: Utilization
|
||||
averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
|
||||
{{- end }}
|
||||
{{- end }}
|
19
deploy/helm/baserow/charts/baserow-common/templates/pdb.yaml
Normal file
19
deploy/helm/baserow/charts/baserow-common/templates/pdb.yaml
Normal file
|
@ -0,0 +1,19 @@
|
|||
{{- if .Values.pdb.create }}
|
||||
apiVersion: policy/v1
|
||||
kind: PodDisruptionBudget
|
||||
metadata:
|
||||
name: {{ include "baserow.fullname" . }}
|
||||
namespace: {{ include "baserow.namespace" . }}
|
||||
labels:
|
||||
{{- include "baserow.labels" . | nindent 4 }}
|
||||
spec:
|
||||
{{- if .Values.pdb.minAvailable }}
|
||||
minAvailable: {{ .Values.pdb.minAvailable }}
|
||||
{{- end }}
|
||||
{{- if and .Values.pdb.maxUnavailable (not .Values.pdb.minAvailable)}}
|
||||
maxUnavailable: {{ .Values.pdb.maxUnavailable | default 1 }}
|
||||
{{- end }}
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "baserow.selectorLabels" . | nindent 6 }}
|
||||
{{- end }}
|
|
@ -0,0 +1,16 @@
|
|||
{{- if not .Values.global.baserow.serviceAccount.shared -}}
|
||||
{{- if .Values.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "baserow.serviceAccountName" . }}
|
||||
namespace: {{ include "baserow.namespace" . }}
|
||||
labels:
|
||||
{{- include "baserow.labels" . | nindent 4 }}
|
||||
{{- with .Values.serviceAccount.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}z
|
||||
automountServiceAccountToken: {{ .Values.serviceAccount.automountServiceAccountToken }}
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -0,0 +1,18 @@
|
|||
{{- if .Values.service.create }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "baserow.fullname" . }}
|
||||
namespace: {{ include "baserow.namespace" . }}
|
||||
labels:
|
||||
{{- include "baserow.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.port }}
|
||||
targetPort: {{ .Values.service.targetPort }}
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
{{- include "baserow.selectorLabels" . | nindent 4 }}
|
||||
{{- end }}
|
292
deploy/helm/baserow/charts/baserow-common/values.yaml
Normal file
292
deploy/helm/baserow/charts/baserow-common/values.yaml
Normal file
|
@ -0,0 +1,292 @@
|
|||
## @section Global parameters
|
||||
## Global Docker image parameters
|
||||
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
|
||||
## Current available global Docker image parameters, serviceAccount, backendConfigMap, backendSecret, frontendConfigMap, envFrom, domain, backendDomain.
|
||||
##
|
||||
|
||||
## @param global.baserow.imageRegistry Global Docker image registry
|
||||
## @param global.baserow.imagePullSecrets Global Docker registry secret names as an array
|
||||
## @param global.baserow.image.tag Global Docker image tag
|
||||
## @param global.baserow.serviceAccount.shared Set to true to share the service account between all application components.
|
||||
## @param global.baserow.serviceAccount.create Set to true to create a service account to share between all application components.
|
||||
## @param global.baserow.serviceAccount.name Configure a name for service account to share between all application components.
|
||||
## @param global.baserow.serviceAccount.annotations Configure annotations for the shared service account.
|
||||
## @param global.baserow.serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount
|
||||
## @param global.baserow.backendConfigMap Configure a name for the backend configmap.
|
||||
## @param global.baserow.backendSecret Configure a name for the backend secret.
|
||||
## @param global.baserow.frontendConfigMap Configure a name for the frontend configmap.
|
||||
## @param global.baserow.envFrom Configure secrets or configMaps to be used as environment variables for all components.
|
||||
## @param global.baserow.domain Configure the domain for the application.
|
||||
##
|
||||
global:
|
||||
baserow:
|
||||
imageRegistry: baserow
|
||||
image:
|
||||
tag: 1.26.1
|
||||
imagePullSecrets: []
|
||||
serviceAccount:
|
||||
shared: true
|
||||
create: true
|
||||
name: baserow
|
||||
annotations: {}
|
||||
automountServiceAccountToken: false
|
||||
backendConfigMap: backend-config
|
||||
backendSecret: backend-secret
|
||||
frontendConfigMap: frontend-config
|
||||
envFrom: []
|
||||
domain: cluster.local
|
||||
|
||||
## Baserow application image version
|
||||
## ref: https://hub.docker.com/r/baserow/baserow/tags/
|
||||
## @param image.repository [default: baserow/baserow] Baserow image repository
|
||||
## @skip image.tag Baserow image tag (immutable tags are recommended)
|
||||
## @param image.pullPolicy Baserow image pull policy
|
||||
##
|
||||
image:
|
||||
repository: baserow/baserow # Docker image repository
|
||||
tag: 1.26.1 # Docker image tag
|
||||
pullPolicy: IfNotPresent # Image pull policy
|
||||
|
||||
## @param workingDir Application container working directory
|
||||
##
|
||||
workingDir: /baserow-saas
|
||||
|
||||
## @param args Application container extra arguments
|
||||
##
|
||||
args: []
|
||||
## @param imagePullSecrets Container image pull secrets
|
||||
## Optionally specify an array of imagePullSecrets.
|
||||
## Secrets must be manually created in the namespace.
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
||||
## Example:
|
||||
## pullSecrets:
|
||||
## - myRegistryKeySecretName
|
||||
##
|
||||
imagePullSecrets: []
|
||||
|
||||
## @param podAnnotations Map of annotations to add to the pods
|
||||
##
|
||||
podAnnotations: {}
|
||||
|
||||
## @param additionalLabels Map of extra labels to add
|
||||
##
|
||||
additionalLabels: {}
|
||||
|
||||
## @param additionalSelectorLabels Map of extra selector labels to add to the deployment
|
||||
##
|
||||
additionalSelectorLabels: {}
|
||||
|
||||
## Security Context
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
||||
## @param securityContext.enabled Enable security context
|
||||
## @param securityContext.fsGroupChangePolicy Set filesystem group change policy
|
||||
## @param securityContext.sysctls Set kernel settings using the sysctl interface
|
||||
## @param securityContext.supplementalGroups Set filesystem extra groups
|
||||
## @param securityContext.fsGroup Group ID for the pod
|
||||
##
|
||||
securityContext:
|
||||
enabled: false
|
||||
fsGroupChangePolicy: ""
|
||||
sysctls: ""
|
||||
supplementalGroups: ""
|
||||
fsGroup: ""
|
||||
## Container Security Context
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
||||
## @param containerSecurityContext.enabled Enabled containers' Security Context
|
||||
## @param containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
|
||||
## @param containerSecurityContext.runAsUser Set containers' Security Context runAsUser
|
||||
## @param containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
|
||||
## @param containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
|
||||
## @param containerSecurityContext.privileged Set container's Security Context privileged
|
||||
## @param containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
|
||||
## @param containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
|
||||
## @param containerSecurityContext.capabilities.drop List of capabilities to be dropped
|
||||
## @param containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
|
||||
##
|
||||
containerSecurityContext:
|
||||
enabled: false
|
||||
seLinuxOptions: ""
|
||||
runAsUser: ""
|
||||
runAsGroup: ""
|
||||
runAsNonRoot: ""
|
||||
privileged: false
|
||||
readOnlyRootFilesystem: false
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop: []
|
||||
seccompProfile:
|
||||
type: ""
|
||||
|
||||
## @param replicaCount Number of application pods, ignored when enabling autoscaling.
|
||||
##
|
||||
replicaCount: 1
|
||||
|
||||
## @param revisionHistoryLimit Number of old ReplicaSets to retain for rollback
|
||||
##
|
||||
revisionHistoryLimit: 10
|
||||
|
||||
## @param resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
|
||||
## Example:
|
||||
## resources:
|
||||
## requests:
|
||||
## cpu: 2
|
||||
## memory: 512Mi
|
||||
## limits:
|
||||
## cpu: 3
|
||||
## memory: 1024Mi
|
||||
##
|
||||
resources: {}
|
||||
|
||||
## Configure extra options for Application containers' liveness, readiness and startup probes
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
|
||||
## @param readinessProbe.enabled Enable readinessProbe on the application container
|
||||
## @param readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
|
||||
## @param readinessProbe.periodSeconds Period seconds for readinessProbe
|
||||
## @param readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
|
||||
## @param readinessProbe.failureThreshold Failure threshold for readinessProbe
|
||||
## @param readinessProbe.successThreshold Success threshold for readinessProbe
|
||||
## @param readinessProbe.exec.command Defines the command to run in the container to determine if the container is running. The command is simply executed, and if it exits with a status code of 0, the container is considered to be alive and functioning. If the command exits with a non-zero status code, the container is considered to have failed.
|
||||
##
|
||||
readinessProbe:
|
||||
enabled: false
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
|
||||
## Configure extra options for Application containers' liveness, readiness and startup probes
|
||||
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
|
||||
## @param livenessProbe.enabled Enable livenessProbe on the application container
|
||||
## @param livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
|
||||
## @param livenessProbe.periodSeconds Period seconds for livenessProbe
|
||||
## @param livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
|
||||
## @param livenessProbe.failureThreshold Failure threshold for livenessProbe
|
||||
## @param livenessProbe.successThreshold Success threshold for livenessProbe
|
||||
## @param livenessProbe.exec.command Defines the command to run in the container to determine if the container is running. The command is simply executed, and if it exits with a status code of 0, the container is considered to be alive and functioning. If the command exits with a non-zero status code, the container is considered to have failed.
|
||||
##
|
||||
livenessProbe:
|
||||
enabled: false
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
|
||||
## @param priorityClassName Priority Class to use for each pod
|
||||
##
|
||||
priorityClassName: ""
|
||||
|
||||
## @param affinity Affinity for the baserow application pods assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
|
||||
##
|
||||
affinity: {}
|
||||
|
||||
## @param nodeSelector Node labels for application pods assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
|
||||
##
|
||||
nodeSelector: {}
|
||||
|
||||
## @param tolerations Tolerations for application pods assignment
|
||||
## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
|
||||
##
|
||||
tolerations: []
|
||||
|
||||
## @param extraEnv Extra environment variables to add to the baserow application container
|
||||
## see: https://baserow.io/docs/installation%2Fconfiguration#environment-variables
|
||||
## For example:
|
||||
## extraEnvVars:
|
||||
## - name: BASEROW_PUBLIC_URL
|
||||
## value: "https://baserow.mydomain.com"
|
||||
##
|
||||
extraEnv: []
|
||||
|
||||
## @param envFrom Extra environments variables to add to the baserow application container from configmaps or secrets.
|
||||
## see: https://baserow.io/docs/installation%2Fconfiguration#environment-variables
|
||||
## For example:
|
||||
## envFrom:
|
||||
## - configMapRef:
|
||||
## name: myconfigmap
|
||||
## - secretRef:
|
||||
## name: mysecret
|
||||
##
|
||||
envFrom: []
|
||||
|
||||
serviceAccount:
|
||||
## @param serviceAccount.create Enable creation of ServiceAccount for the pod
|
||||
##
|
||||
create: true
|
||||
## @param serviceAccount.name The name of the ServiceAccount to use.
|
||||
## If not set and create is true, a name is generated using the common.names.fullname template
|
||||
##
|
||||
name: ""
|
||||
## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount
|
||||
## Can be set to false if pods using this serviceAccount do not need to use K8s API
|
||||
##
|
||||
automountServiceAccountToken: false
|
||||
## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
|
||||
##
|
||||
annotations: {}
|
||||
|
||||
## Autoscaling configuration
|
||||
## ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/
|
||||
## @param autoscaling.enabled Enable autoscaling for the application
|
||||
## @param autoscaling.minReplicas Minimum number of application replicas
|
||||
## @param autoscaling.maxReplicas Maximum number of application replicas
|
||||
## @param autoscaling.targetCPUUtilizationPercentage Target CPU utilization percentage
|
||||
## @param autoscaling.targetMemoryUtilizationPercentage Target Memory utilization percentage
|
||||
##
|
||||
autoscaling:
|
||||
enabled: false # Whether autoscaling is enabled
|
||||
minReplicas: 2 # Minimum number of replicas
|
||||
maxReplicas: 10 # Maximum number of replicas
|
||||
targetCPUUtilizationPercentage: 80 # Target CPU utilization percentage for autoscaling
|
||||
targetMemoryUtilizationPercentage: 80 # Target memory utilization percentage for autoscaling
|
||||
|
||||
## Service configuration
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/
|
||||
service:
|
||||
## @param service.create Set to true to create a Kubernetes service
|
||||
##
|
||||
create: true
|
||||
## @param service.type Kubernetes service type
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types
|
||||
##
|
||||
type: ClusterIP
|
||||
## @param service.port Port to expose for the application
|
||||
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
|
||||
##
|
||||
port: 80 # Service port
|
||||
## @param service.targetPort Port to expose for the application
|
||||
## Note: A Service can map any incoming port to a targetPort. By default and for convenience, the targetPort is set to the same value as the port field.
|
||||
##
|
||||
targetPort: 8000 # Target port
|
||||
|
||||
## Pod Disruption Budget configuration
|
||||
## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
|
||||
## @param pdb.create Enable/disable a Pod Disruption Budget creation
|
||||
## @param pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
|
||||
## @param pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `readReplicas.pdb.minAvailable` and `readReplicas.pdb.maxUnavailable` are empty.
|
||||
##
|
||||
pdb:
|
||||
create: false
|
||||
minAvailable: 50%
|
||||
maxUnavailable: 50%
|
||||
|
||||
## Configuration mount settings
|
||||
## @param mountConfiguration.backend Mount backend configmaps and secrets.
|
||||
## @param mountConfiguration.frontend Mount frontend configmaps and secrets.
|
||||
##
|
||||
mountConfiguration:
|
||||
backend: true
|
||||
frontend: false
|
1
deploy/helm/baserow/templates/.gitignore
vendored
Normal file
1
deploy/helm/baserow/templates/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
*.tgz
|
161
deploy/helm/baserow/templates/_helpers.tpl
Normal file
161
deploy/helm/baserow/templates/_helpers.tpl
Normal file
|
@ -0,0 +1,161 @@
|
|||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "baserow.global.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "baserow.global.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "baserow.global.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "baserow.global.labels" -}}
|
||||
helm.sh/chart: {{ include "baserow.global.chart" . }}
|
||||
{{ include "baserow.global.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "baserow.global.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "baserow.global.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create image url to use
|
||||
*/}}
|
||||
{{- define "baserow.global.image" -}}
|
||||
{{- if and .Values.global.baserow.imageRegistry .Values.global.baserow.image.tag -}}
|
||||
{{- printf "%s/%s:%s" .Values.global.baserow.imageRegistry .Values.image.repository .Values.global.baserow.image.tag }}
|
||||
{{- else -}}
|
||||
{{- printf "%s:%s" .Values.image.repository .Values.image.tag }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create the name of the service account to use
|
||||
*/}}
|
||||
{{- define "baserow.global.serviceAccountName" -}}
|
||||
{{- if .Values.global.baserow.serviceAccount.create }}
|
||||
{{- default (include "baserow.global.fullname" .) .Values.global.baserow.serviceAccount.name }}
|
||||
{{- else }}
|
||||
{{- default "default" .Values.global.baserow.serviceAccount.name }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{/*
|
||||
Create image url to use
|
||||
*/}}
|
||||
{{- define "baserow.global.migration.image" -}}
|
||||
{{- if and .Values.global.baserow.imageRegistry .Values.global.baserow.image.tag -}}
|
||||
{{- printf "%s/%s:%s" .Values.global.baserow.imageRegistry .Values.migration.image.repository .Values.global.baserow.image.tag }}
|
||||
{{- else -}}
|
||||
{{- printf "%s:%s" .Values.migration.image.repository .Chart.AppVersion }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Returns the available value for certain key in an existing secret (if it exists),
|
||||
otherwise it generates a random value.
|
||||
*/}}
|
||||
{{- define "getValueFromSecret" }}
|
||||
{{- $len := (default 16 .Length) | int -}}
|
||||
{{- $obj := (lookup "v1" "Secret" .Namespace .Name).data -}}
|
||||
{{- if $obj }}
|
||||
{{- index $obj .Key | b64dec -}}
|
||||
{{- else -}}
|
||||
{{- randAlphaNum $len -}}
|
||||
{{- end -}}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Get jwt secret name
|
||||
*/}}
|
||||
{{- define "baserow.global.jwt.secret_name" -}}
|
||||
{{- printf "%s%s" (include "baserow.global.fullname" .) "-jwt" -}}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Get jwt secret key
|
||||
*/}}
|
||||
{{- define "baserow.global.jwt.secret_key" -}}
|
||||
{{- include "getValueFromSecret" (dict "Namespace" .Release.Namespace "Name" .Values.global.baserow.backendSecret "Length" 10 "Key" "SECRET_KEY") -}}
|
||||
{{- end }}
|
||||
|
||||
|
||||
{{/*
|
||||
Get jwt secret key
|
||||
*/}}
|
||||
{{- define "baserow.global.jwt.signing_key" -}}
|
||||
{{- include "getValueFromSecret" (dict "Namespace" .Release.Namespace "Name" .Values.global.baserow.backendSecret "Length" 10 "Key" "BASEROW_JWT_SIGNING_KEY") -}}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create envFrom options
|
||||
*/}}
|
||||
{{- define "baserow.global.migration.envFrom" -}}
|
||||
- configMapRef:
|
||||
name: {{ .Values.global.baserow.sharedConfigMap }}
|
||||
- configMapRef:
|
||||
name: {{ .Values.global.baserow.backendConfigMap }}
|
||||
- secretRef:
|
||||
name: {{ .Values.global.baserow.backendSecret }}
|
||||
{{- if .Values.global.baserow.envFrom }}
|
||||
{{ toYaml .Values.global.baserow.envFrom }}
|
||||
{{- end }}
|
||||
{{- if .Values.migration.envFrom }}
|
||||
{{ toYaml .Values.migration.envFrom }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Get the password for the postgresql user
|
||||
*/}}
|
||||
{{- define "baserow.global.postgresql.password" -}}
|
||||
{{- if .Values.postgresql.enabled -}}
|
||||
{{- if .Values.postgresql.auth.existingSecret -}}
|
||||
{{- include "getValueFromSecret" (dict "Namespace" (include "common.names.namespace" .Subcharts.postgresq) "Name" (include "postgresql.v1.secretName" .Subcharts.postgresq) "Length" 10 "Key" (include "postgresql.v1.userPasswordKey" .Subcharts.postgresq)) -}}
|
||||
{{- else if .Values.postgresql.auth.password -}}
|
||||
{{ .Values.postgresql.auth.password }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
||||
{{/*
|
||||
Return the username for the postgres user
|
||||
*/}}
|
||||
{{- define "baserow.global.postgresql.username" -}}
|
||||
{{- if .Values.postgresql.enabled -}}
|
||||
{{ include "postgresql.v1.username" .Subcharts.postgresql }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
24
deploy/helm/baserow/templates/backend-configmap.yaml
Normal file
24
deploy/helm/baserow/templates/backend-configmap.yaml
Normal file
|
@ -0,0 +1,24 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Values.global.baserow.backendConfigMap }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
helm.sh/hook: pre-install, pre-upgrade
|
||||
helm.sh/hook-weight: "2"
|
||||
labels:
|
||||
{{- include "baserow.global.labels" . | nindent 4 }}
|
||||
data:
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
DATABASE_USER: {{ include "baserow.global.postgresql.username" . | quote }}
|
||||
{{- end }}
|
||||
{{- if .Values.minio.enabled }}
|
||||
AWS_S3_VERIFY: "false"
|
||||
AWS_ENDPOINT_URL: {{ printf "http://%s:%.f" (include "common.names.fullname" .Subcharts.minio) .Values.minio.service.ports.api }}
|
||||
AWS_STORAGE_BUCKET_NAME: {{ (index .Values.minio.provisioning.buckets 0).name }}
|
||||
AWS_S3_CUSTOM_DOMAIN: {{ .Values.global.baserow.objectsDomain }}/{{ (index .Values.minio.provisioning.buckets 0).name }}
|
||||
AWS_S3_REGION_NAME: "us-east-1"
|
||||
{{- end }}
|
||||
{{- range $key, $val := .Values.backendConfigMap }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
8
deploy/helm/baserow/templates/frontend-configmap.yaml
Normal file
8
deploy/helm/baserow/templates/frontend-configmap.yaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Values.global.baserow.frontendConfigMap }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "baserow.global.labels" . | nindent 4 }}
|
||||
data: {{ toYaml .Values.frontendConfigMap | nindent 2 }}
|
66
deploy/helm/baserow/templates/ingress.yaml
Normal file
66
deploy/helm/baserow/templates/ingress.yaml
Normal file
|
@ -0,0 +1,66 @@
|
|||
{{ if .Values.ingress.enabled }}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ include "baserow.global.fullname" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
ingressClassName: {{ .Values.ingress.className }}
|
||||
rules:
|
||||
- host: {{ .Values.global.baserow.backendDomain | default (printf "api.%s" .Values.global.baserow.domain) }}
|
||||
http:
|
||||
paths:
|
||||
- path: /ws/
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "baserow.global.fullname" . }}-baserow-backend-asgi
|
||||
port:
|
||||
number: 80
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "baserow.global.fullname" . }}-baserow-backend-wsgi
|
||||
port:
|
||||
number: 80
|
||||
- host: {{ .Values.global.baserow.domain }}
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "baserow.global.fullname" . }}-baserow-frontend
|
||||
port:
|
||||
number: 80
|
||||
{{- if .Values.minio.enabled }}
|
||||
- host: {{ .Values.global.baserow.objectsDomain }}
|
||||
http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "common.names.fullname" .Subcharts.minio }}
|
||||
port:
|
||||
number: 9000
|
||||
{{- end }}
|
||||
- http:
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
backend:
|
||||
service:
|
||||
name: {{ include "baserow.global.fullname" . }}-baserow-frontend
|
||||
port:
|
||||
number: 80
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{ tpl (toYaml .Values.ingress.tls | indent 4) . }}
|
||||
{{- end -}}
|
||||
{{ end }}
|
56
deploy/helm/baserow/templates/migrate-hook.yaml
Normal file
56
deploy/helm/baserow/templates/migrate-hook.yaml
Normal file
|
@ -0,0 +1,56 @@
|
|||
{{ if .Values.migration.enabled }}
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: {{ include "baserow.global.fullname" .}}-migrate
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
helm.sh/hook: post-install, pre-upgrade
|
||||
helm.sh/hook-weight: "5"
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: migrate
|
||||
image: {{ include "baserow.global.migration.image" . }}
|
||||
args: ["setup"]
|
||||
imagePullPolicy: Always
|
||||
{{ if .Values.migration.extraEnv }}
|
||||
env:
|
||||
{{- range .Values.extraEnv }}
|
||||
{{- if and (.name) (.value) }}
|
||||
- name: {{ .name | quote }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
envFrom:
|
||||
{{ include "baserow.global.migration.envFrom" . | nindent 12 }}
|
||||
{{- if .Values.migration.priorityClassName }}
|
||||
priorityClassName: {{ .Values.migration.priorityClassName }}
|
||||
{{- end -}}
|
||||
{{- with .Values.migration.volumeMounts }}
|
||||
volumeMounts:
|
||||
{{ toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
restartPolicy: Never
|
||||
{{ if .Values.migration.priorityClassName }}
|
||||
priorityClassName: {{ .Values.migration.priorityClassName }}
|
||||
{{- end }}
|
||||
{{- with .Values.migration.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.migration.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.migration.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.migration.volumes }}
|
||||
volumes:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{ end }}
|
30
deploy/helm/baserow/templates/secret.yaml
Normal file
30
deploy/helm/baserow/templates/secret.yaml
Normal file
|
@ -0,0 +1,30 @@
|
|||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
annotations:
|
||||
helm.sh/hook: pre-install, pre-upgrade
|
||||
helm.sh/hook-weight: "2"
|
||||
name: {{ .Values.global.baserow.backendSecret }}
|
||||
data:
|
||||
{{- if .Values.minio.enabled }}
|
||||
AWS_ACCESS_KEY_ID: {{ include "minio.secret.userValue" .Subcharts.minio | b64enc }}
|
||||
AWS_SECRET_ACCESS_KEY: {{ include "minio.secret.passwordValue" .Subcharts.minio | b64enc }}
|
||||
{{- end }}
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
DATABASE_HOST: {{ include "postgresql.v1.primary.fullname" .Subcharts.postgresql | b64enc }}
|
||||
DATABASE_PORT: {{ include "postgresql.v1.service.port" .Subcharts.postgresql | b64enc }}
|
||||
DATABASE_NAME: {{ include "postgresql.v1.database" .Subcharts.postgresql | b64enc }}
|
||||
DATABASE_PASSWORD: {{ include "baserow.global.postgresql.password" . | b64enc }}
|
||||
{{- end }}
|
||||
{{- if .Values.redis.enabled }}
|
||||
REDIS_HOST: {{ printf "%s-master" (include "common.names.fullname" .Subcharts.redis) | b64enc }}
|
||||
REDIS_PORT: {{ printf "%s" (tpl (toString .Values.redis.master.service.ports.redis) $) | b64enc }}
|
||||
REDIS_PASSWORD: {{ include "redis.password" .Subcharts.redis | b64enc }}
|
||||
{{- end }}
|
||||
{{- if .Values.generateJwtSecret }}
|
||||
BASEROW_JWT_SIGNING_KEY: {{ include "baserow.global.jwt.signing_key" . | b64enc | quote }}
|
||||
SECRET_KEY: {{ include "baserow.global.jwt.secret_key" . | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- range $key, $val := .Values.backendSecrets }}
|
||||
{{ $key }}: {{ $val | b64enc | quote }}
|
||||
{{- end }}
|
18
deploy/helm/baserow/templates/service-account.yaml
Normal file
18
deploy/helm/baserow/templates/service-account.yaml
Normal file
|
@ -0,0 +1,18 @@
|
|||
{{- if .Values.global.baserow.serviceAccount.shared -}}
|
||||
{{- if .Values.global.baserow.serviceAccount.create -}}
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: {{ include "baserow.global.serviceAccountName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{- include "baserow.global.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
helm.sh/hook: pre-install, pre-upgrade
|
||||
helm.sh/hook-weight: "2"
|
||||
{{- with .Values.global.baserow.serviceAccount.annotations }}
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
automountServiceAccountToken: {{ .Values.global.baserow.serviceAccount.automountServiceAccountToken }}
|
||||
{{- end }}
|
||||
{{- end }}
|
17
deploy/helm/baserow/templates/shared-configmap.yaml
Normal file
17
deploy/helm/baserow/templates/shared-configmap.yaml
Normal file
|
@ -0,0 +1,17 @@
|
|||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: {{ .Values.global.baserow.sharedConfigMap }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
annotations:
|
||||
helm.sh/hook: pre-install, pre-upgrade
|
||||
helm.sh/hook-weight: "2"
|
||||
labels:
|
||||
{{- include "baserow.global.labels" . | nindent 4 }}
|
||||
data:
|
||||
PUBLIC_BACKEND_URL: https://{{ .Values.global.baserow.backendDomain }}
|
||||
PUBLIC_WEB_FRONTEND_URL: https://{{ .Values.global.baserow.domain }}
|
||||
PRIVATE_BACKEND_URL: http://{{ lower .Release.Name }}-baserow-backend-wsgi
|
||||
{{- range $key, $val := .Values.sharedConfigMap }}
|
||||
{{ $key }}: {{ $val | quote }}
|
||||
{{- end }}
|
503
deploy/helm/baserow/values.yaml
Normal file
503
deploy/helm/baserow/values.yaml
Normal file
|
@ -0,0 +1,503 @@
|
|||
# Copyright Baserow B.V. All Rights Reserved.
|
||||
|
||||
## @section Global parameters
|
||||
## Global Docker image parameters
|
||||
## Please, note that this will override the image parameters, including dependencies, configured to use the global value
|
||||
## Current available global Docker image parameters, serviceAccount, backendConfigMap, backendSecret, frontendConfigMap, envFrom, domain, backendDomain.
|
||||
##
|
||||
|
||||
## @param global.baserow.imageRegistry Global Docker image registry
|
||||
## @param global.baserow.imagePullSecrets Global Docker registry secret names as an array
|
||||
## @param global.baserow.image.tag Global Docker image tag
|
||||
## @param global.baserow.serviceAccount.shared Set to true to share the service account between all application components.
|
||||
## @param global.baserow.serviceAccount.create Set to true to create a service account to share between all application components.
|
||||
## @param global.baserow.serviceAccount.name Configure a name for service account to share between all application components.
|
||||
## @param global.baserow.serviceAccount.annotations Configure annotations for the shared service account.
|
||||
## @param global.baserow.serviceAccount.automountServiceAccountToken Automount the service account token to the pods.
|
||||
## @param global.baserow.backendConfigMap Configure a name for the backend configmap.
|
||||
## @param global.baserow.backendSecret Configure a name for the backend secret.
|
||||
## @param global.baserow.frontendConfigMap Configure a name for the frontend configmap.
|
||||
## @param global.baserow.sharedConfigMap Configure a name for the shared configmap.
|
||||
## @param global.baserow.envFrom Configure secrets or configMaps to be used as environment variables for all components.
|
||||
## @param global.baserow.domain Configure the domain for the frontend application.
|
||||
## @param global.baserow.backendDomain Configure the domain for the backend application.
|
||||
## @param global.baserow.objectsDomain Configure the domain for the external facing minio api.
|
||||
##
|
||||
global:
|
||||
baserow:
|
||||
imageRegistry: baserow
|
||||
image:
|
||||
tag: 1.26.1
|
||||
imagePullSecrets: []
|
||||
serviceAccount:
|
||||
shared: true
|
||||
create: true
|
||||
name: baserow
|
||||
annotations: {}
|
||||
automountServiceAccountToken: false
|
||||
sharedConfigMap: shared-config
|
||||
backendConfigMap: backend-config
|
||||
backendSecret: backend-secret
|
||||
frontendConfigMap: frontend-config
|
||||
envFrom: []
|
||||
domain: cluster.local
|
||||
backendDomain: api.cluster.local
|
||||
objectsDomain: objects.cluster.local
|
||||
|
||||
## @section Baserow Configuration
|
||||
## Configuration for the Baserow application
|
||||
## @param generateJwtSecret Generate a new JWT secret
|
||||
generateJwtSecret: true
|
||||
|
||||
## @section Shared ConfigMap Configuration
|
||||
## Configuration for the shared ConfigMap
|
||||
## @param sharedConfigMap Additional configuration for the shared ConfigMap, key value map.
|
||||
sharedConfigMap: {}
|
||||
|
||||
## @section Frontend ConfigMap Configuration
|
||||
## Configuration for the Frontend ConfigMap
|
||||
## @param frontendConfigMap.DOWNLOAD_FILE_VIA_XHR Set to "1" to download files via XHR
|
||||
frontendConfigMap:
|
||||
DOWNLOAD_FILE_VIA_XHR: "1"
|
||||
# frontendConfigMap:
|
||||
# ADDITIONAL_MODULES: ""
|
||||
# BASEROW_DISABLE_PUBLIC_URL_CHECK: "yes"
|
||||
# BASEROW_DISABLE_GOOGLE_DOCS_FILE_PREVIEW: ""
|
||||
# DOWNLOAD_FILE_VIA_XHR: "1"
|
||||
# BASEROW_MAX_IMPORT_FILE_SIZE_MB: "512"
|
||||
# BASEROW_MAX_SNAPSHOTS_PER_GROUP: "-1"
|
||||
|
||||
## @section backend Secrets Configuration
|
||||
## Configuration for the backend Secrets
|
||||
## @param backendSecrets Additional configuration for the backend Secrets, key value map.
|
||||
backendSecrets: {}
|
||||
|
||||
## @section backend ConfigMap Configuration
|
||||
## Configuration for the backend ConfigMap
|
||||
## @param backendConfigMap.DONT_UPDATE_FORMULAS_AFTER_MIGRATION Set to "yes" to disable updating formulas after migration
|
||||
## @param backendConfigMap.SYNC_TEMPLATES_ON_STARTUP Set to "false" to disable syncing templates on startup
|
||||
## @param backendConfigMap.MIGRATE_ON_STARTUP Set to "false" to disable migration on startup
|
||||
## @param backendConfigMap.BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION Set to "true" to trigger syncing templates after migration
|
||||
backendConfigMap:
|
||||
DONT_UPDATE_FORMULAS_AFTER_MIGRATION: "yes"
|
||||
SYNC_TEMPLATES_ON_STARTUP: "false"
|
||||
MIGRATE_ON_STARTUP: "false"
|
||||
BASEROW_TRIGGER_SYNC_TEMPLATES_AFTER_MIGRATION: "true"
|
||||
# backendConfigMap:
|
||||
# BASEROW_AMOUNT_OF_GUNICORN_WORKERS: "5"
|
||||
# BASEROW_BACKEND_LOG_LEVEL: DEBUG
|
||||
# BASEROW_COUNT_ROWS_ENABLED: "true"
|
||||
# BASEROW_DEFAULT_SEARCH_MODE: full-text-with-count
|
||||
# BASEROW_ENABLE_OTEL: "false"
|
||||
# BASEROW_EXTRA_ALLOWED_HOSTS: "*"
|
||||
# BASEROW_FILE_UPLOAD_SIZE_LIMIT_MB: "20"
|
||||
# BASEROW_GROUP_STORAGE_USAGE_ENABLED: "true"
|
||||
# DONT_UPDATE_FORMULAS_AFTER_MIGRATION: "yes"
|
||||
# ENABLE_SECURE_PROXY_SSL_HEADER: "yes"
|
||||
# MAILGUN_SENDER_DOMAIN: mail.mydomain.com
|
||||
# MIGRATE_ON_STARTUP: "false"
|
||||
# SYNC_TEMPLATES_ON_STARTUP: "false"
|
||||
|
||||
## @section Migration Job Configuration
|
||||
## Configuration for the database migration job
|
||||
## This job ensures that the database schema is up-to-date before the application starts
|
||||
|
||||
## @param migration.enabled Enabled the migration job
|
||||
## @param migration.image.repository Migration job Docker image repository
|
||||
## @param migration.priorityClassName Kubernetes priority class name for the migration job
|
||||
## @param migration.nodeSelector Node labels for pod assignment
|
||||
## @param migration.tolerations Tolerations for pod assignment
|
||||
## @param migration.affinity Affinity settings for pod assignment
|
||||
## @param migration.extraEnv Extra environment variables for the migration job
|
||||
## @param migration.envFrom ConfigMaps or Secrets to be used as environment variables
|
||||
## @param migration.volumes Volumes for the migration job
|
||||
## @param migration.volumeMounts Volume mounts for the migration job
|
||||
migration:
|
||||
enabled: true
|
||||
image:
|
||||
repository: backend
|
||||
priorityClassName: ""
|
||||
nodeSelector: {}
|
||||
tolerations: []
|
||||
affinity: []
|
||||
extraEnv: []
|
||||
envFrom: []
|
||||
volumes: []
|
||||
volumeMounts: []
|
||||
|
||||
## @section Baserow Backend ASGI Configuration
|
||||
## Configuration for the ASGI server that serves the Baserow backend application.
|
||||
## This section includes the Docker image repository and arguments for running the ASGI server,
|
||||
## as well as liveness and readiness probes to ensure the service is operating correctly.
|
||||
|
||||
## Docker Image Configuration
|
||||
## @param baserow-backend-asgi.image.repository Docker image repository for the ASGI server.
|
||||
## This specifies the location of the Docker image used to run the Baserow backend ASGI server.
|
||||
|
||||
## ASGI Server Arguments
|
||||
## @param baserow-backend-asgi.args Arguments passed to the ASGI server.
|
||||
## This typically includes the command to start the server, such as "gunicorn" for a Gunicorn-based ASGI server.
|
||||
|
||||
## Liveness Probe Configuration
|
||||
## Ensures the ASGI server is alive and can handle requests. If the liveness probe fails, Kubernetes restarts the container.
|
||||
## @param baserow-backend-asgi.livenessProbe.exec.command The command used to check the liveness of the ASGI server.
|
||||
## @param baserow-backend-asgi.livenessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-backend-asgi.livenessProbe.initialDelaySeconds Delay before the liveness probe is initiated after the container starts.
|
||||
## @param baserow-backend-asgi.livenessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-backend-asgi.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-backend-asgi.livenessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
|
||||
## Readiness Probe Configuration
|
||||
## Ensures the ASGI server is alive and can handle requests. If the readiness probe fails, new deployments are halted.
|
||||
## @param baserow-backend-asgi.readinessProbe.exec.command The command used to check the readiness of the ASGI server.
|
||||
## @param baserow-backend-asgi.readinessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-backend-asgi.readinessProbe.initialDelaySeconds Delay before the readiness probe is initiated after the container starts.
|
||||
## @param baserow-backend-asgi.readinessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-backend-asgi.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-backend-asgi.readinessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
baserow-backend-asgi:
|
||||
image:
|
||||
repository: backend
|
||||
args:
|
||||
- "gunicorn"
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
|
||||
## @section Baserow Backend WSGI Configuration
|
||||
## Configuration for the WSGI server that serves the Baserow backend application.
|
||||
## This section includes the Docker image repository and arguments for running the WSGI server,
|
||||
## as well as liveness and readiness probes to ensure the service is operating correctly.
|
||||
|
||||
## Docker Image Configuration
|
||||
## @param baserow-backend-wsgi.image.repository Docker image repository for the WSGI server.
|
||||
## This specifies the location of the Docker image used to run the Baserow backend WSGI server.
|
||||
|
||||
## WSGI Server Arguments
|
||||
## @param baserow-backend-wsgi.args Arguments passed to the WSGI server.
|
||||
## This typically includes the command to start the server, such as "gunicorn" for a Gunicorn-based WSGI server.
|
||||
|
||||
## Liveness Probe Configuration
|
||||
## Ensures the WSGI server is alive and can handle requests. If the liveness probe fails, Kubernetes restarts the container.
|
||||
## @param baserow-backend-wsgi.livenessProbe.exec.command The command used to check the liveness of the WSGI server.
|
||||
## @param baserow-backend-wsgi.livenessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-backend-wsgi.livenessProbe.initialDelaySeconds Delay before the liveness probe is initiated after the container starts.
|
||||
## @param baserow-backend-wsgi.livenessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-backend-wsgi.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-backend-wsgi.livenessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
|
||||
## Readiness Probe Configuration
|
||||
## Ensures the wsgi server is alive and can handle requests. If the readiness probe fails, new deployments are halted.
|
||||
## @param baserow-backend-wsgi.readinessProbe.exec.command The command used to check the readiness of the wsgi server.
|
||||
## @param baserow-backend-wsgi.readinessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-backend-wsgi.readinessProbe.initialDelaySeconds Delay before the readiness probe is initiated after the container starts.
|
||||
## @param baserow-backend-wsgi.readinessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-backend-wsgi.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-backend-wsgi.readinessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
baserow-backend-wsgi:
|
||||
image:
|
||||
repository: backend
|
||||
args:
|
||||
- gunicorn-wsgi
|
||||
- "--timeout"
|
||||
- "120"
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh backend-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
|
||||
## @section Baserow Web Frontend Configuration
|
||||
## Configuration for the Web Frontend server that serves the Baserow backend application.
|
||||
## This section includes the Docker image repository and arguments for running the Web Frontend server,
|
||||
## as well as liveness and readiness probes to ensure the service is operating correctly.
|
||||
|
||||
## Docker Image Configuration
|
||||
## @param baserow-frontend.image.repository Docker image repository for the Web Frontend server.
|
||||
## This specifies the location of the Docker image used to run the Baserow Web Frontend server.
|
||||
|
||||
## Web Frontend Server Arguments
|
||||
## @param baserow-frontend.args Arguments passed to the Web Frontend server.
|
||||
## This typically includes the command to start the server, such as "nuxt".
|
||||
|
||||
## Web Frontend Server Working Directory
|
||||
## @param baserow-frontend.workingDir Working Directory for the container.
|
||||
## This should be empty for the Web Frontend Server.
|
||||
|
||||
## Liveness Probe Configuration
|
||||
## Ensures the Web Frontend server is alive and can handle requests. If the liveness probe fails, Kubernetes restarts the container.
|
||||
## @param baserow-frontend.livenessProbe.httpGet.path The path to check for the liveness probe.
|
||||
## @param baserow-frontend.livenessProbe.httpGet.port The port to check for the liveness probe.
|
||||
## @param baserow-frontend.livenessProbe.httpGet.scheme The scheme to use for the liveness probe.
|
||||
## @param baserow-frontend.livenessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-frontend.livenessProbe.initialDelaySeconds Delay before the liveness probe is initiated after the container starts.
|
||||
## @param baserow-frontend.livenessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-frontend.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-frontend.livenessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
|
||||
## Readiness Probe Configuration
|
||||
## Ensures the wsgi server is alive and can handle requests. If the readiness probe fails, new deployments are halted.
|
||||
## @param baserow-frontend.readinessProbe.httpGet.path The path to check for the readiness probe.
|
||||
## @param baserow-frontend.readinessProbe.httpGet.port The port to check for the readiness probe.
|
||||
## @param baserow-frontend.readinessProbe.httpGet.scheme The scheme to use for the readiness probe.
|
||||
## @param baserow-frontend.readinessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-frontend.readinessProbe.initialDelaySeconds Delay before the readiness probe is initiated after the container starts.
|
||||
## @param baserow-frontend.readinessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-frontend.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-frontend.readinessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
|
||||
## Mount Configuration Configuration
|
||||
## Determines which configurations the Web Frontend server should mount.
|
||||
## @param baserow-frontend.mountConfiguration.backend If enabled, all the backend service configurations and secrets will be mounted.
|
||||
## @param baserow-frontend.mountConfiguration.frontend If enabled, all the frontend service configurations and secrets will be mounted.
|
||||
## @param baserow-frontend.service.targetPort The port the Web Frontend server listens on.
|
||||
baserow-frontend:
|
||||
image:
|
||||
repository: web-frontend
|
||||
workingDir: ""
|
||||
args:
|
||||
- nuxt
|
||||
mountConfiguration:
|
||||
backend: false
|
||||
frontend: true
|
||||
service:
|
||||
targetPort: 3000
|
||||
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /_health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /_health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
|
||||
## @section Baserow Celery beat Configuration
|
||||
## Configuration for the Celery beat workers that process background tasks for the Baserow application.
|
||||
## This section includes the Docker image repository and arguments for running the Celery beat workers,
|
||||
## @param baserow-celery-beat-worker.image.repository Docker image repository for the Celery beat worker.
|
||||
## @param baserow-celery-beat-worker.args Arguments passed to the Celery beat worker.
|
||||
## @param baserow-celery-beat-worker.service.create Set to false to disable creating a service for the Celery beat worker.
|
||||
baserow-celery-beat-worker:
|
||||
image:
|
||||
repository: backend
|
||||
args:
|
||||
- celery-beat
|
||||
service:
|
||||
create: false
|
||||
|
||||
## @section Baserow Celery export worker Configuration
|
||||
## Configuration for the Celery export worker that process background tasks for the Baserow application.
|
||||
## This section includes the Docker image repository and arguments for running the Celery export worker,
|
||||
## @param baserow-celery-export-worker.image.repository Docker image repository for the Celery export worker.
|
||||
## @param baserow-celery-export-worker.args Arguments passed to the Celery export worker.
|
||||
## @param baserow-celery-export-worker.service.create Set to false to disable creating a service for the Celery beat worker.
|
||||
baserow-celery-export-worker:
|
||||
image:
|
||||
repository: backend
|
||||
args:
|
||||
- celery-exportworker
|
||||
service:
|
||||
create: false
|
||||
|
||||
## @section Baserow Celery worker Configuration
|
||||
## Configuration for the Celery worker that process background tasks for the Baserow application.
|
||||
## This section includes the Docker image repository and arguments for running the Celery worker,
|
||||
## @param baserow-celery-worker.image.repository Docker image repository for the Celery worker.
|
||||
## @param baserow-celery-worker.args Arguments passed to the Celery worker.
|
||||
## @param baserow-celery-worker.service.create Set to false to disable creating a service for the Celery beat worker.
|
||||
## Liveness Probe Configuration
|
||||
## Ensures the Celery worker is alive and can handle requests. If the liveness probe fails, Kubernetes restarts the container.
|
||||
## @param baserow-celery-worker.livenessProbe.exec.command The command used to check the liveness of the WSGI server.
|
||||
## @param baserow-celery-worker.livenessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-celery-worker.livenessProbe.initialDelaySeconds Delay before the liveness probe is initiated after the container starts.
|
||||
## @param baserow-celery-worker.livenessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-celery-worker.livenessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-celery-worker.livenessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
|
||||
## Readiness Probe Configuration
|
||||
## Ensures the wsgi server is alive and can handle requests. If the readiness probe fails, new deployments are halted.
|
||||
## @param baserow-celery-worker.readinessProbe.exec.command The command used to check the readiness of the wsgi server.
|
||||
## @param baserow-celery-worker.readinessProbe.failureThreshold Number of times the probe can fail before the container is restarted.
|
||||
## @param baserow-celery-worker.readinessProbe.initialDelaySeconds Delay before the readiness probe is initiated after the container starts.
|
||||
## @param baserow-celery-worker.readinessProbe.periodSeconds How often (in seconds) to perform the probe.
|
||||
## @param baserow-celery-worker.readinessProbe.successThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
|
||||
## @param baserow-celery-worker.readinessProbe.timeoutSeconds Number of seconds after which the probe times out.
|
||||
baserow-celery-worker:
|
||||
image:
|
||||
repository: backend
|
||||
args:
|
||||
- celery-worker
|
||||
service:
|
||||
create: false
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh celery-worker-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
|
||||
readinessProbe:
|
||||
exec:
|
||||
command:
|
||||
- /bin/bash
|
||||
- -c
|
||||
- /baserow/backend/docker/docker-entrypoint.sh celery-worker-healthcheck
|
||||
failureThreshold: 3
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
|
||||
## @section Baserow Celery Flower Configuration
|
||||
## Configuration for the Celery Flower monitoring tool that provides a web-based interface for monitoring Celery workers.
|
||||
## @param baserow-celery-flower.enabled Set to true to enable the Celery Flower monitoring tool.
|
||||
## @param baserow-celery-flower.image.repository Docker image repository for the Celery Flower monitoring tool.
|
||||
## @param baserow-celery-flower.args Arguments passed to the Celery Flower monitoring tool.
|
||||
baserow-celery-flower:
|
||||
enabled: false
|
||||
image:
|
||||
repository: backend
|
||||
args:
|
||||
- celery-flower
|
||||
|
||||
## @section Ingress Configuration
|
||||
## Configuration for the Ingress resource
|
||||
## @param ingress.enabled Enable the Ingress resource
|
||||
## @param ingress.annotations.kubernetes.io/ingress.class Ingress class annotation
|
||||
## @param ingress.tls TLS configuration for the Ingress resource
|
||||
ingress:
|
||||
enabled: true
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: caddy
|
||||
tls: []
|
||||
|
||||
## @section Redis Configuration
|
||||
## Configuration for the Redis database
|
||||
## @param redis.enabled Enable the Redis database
|
||||
## @param redis.architecture The Redis architecture
|
||||
## @param redis.auth.enabled Enable Redis authentication
|
||||
## @param redis.auth.password The password for the Redis database
|
||||
## @param redis.auth.existingSecret The name of an existing secret containing the database password
|
||||
redis:
|
||||
enabled: true
|
||||
architecture: standalone
|
||||
auth:
|
||||
enabled: true
|
||||
existingSecret: ""
|
||||
password: baserow
|
||||
|
||||
## @section PostgreSQL Configuration
|
||||
## Configuration for the PostgreSQL database
|
||||
## @param postgresql.enabled Enable the PostgreSQL database
|
||||
## @param postgresql.auth.database The name of the database
|
||||
## @param postgresql.auth.existingSecret The name of an existing secret containing the database password
|
||||
## @param postgresql.auth.password The password for the database
|
||||
## @param postgresql.auth.username The username for the database
|
||||
postgresql:
|
||||
enabled: true
|
||||
auth:
|
||||
database: baserow
|
||||
existingSecret: ""
|
||||
password: baserow
|
||||
username: baserow
|
||||
|
||||
## @section Minio Configuration
|
||||
## Configuration for the Minio object storage service
|
||||
## @param minio.enabled Enable the Minio object storage service
|
||||
## @param minio.networkPolicy.enabled Enable the Minio network policy
|
||||
## @param minio.disableWebUI Disable the Minio web UI
|
||||
## @param minio.provisioning.enabled Enable the Minio provisioning service
|
||||
## @param minio.provisioning.buckets[0].name Name of the bucket to create
|
||||
## @param minio.provisioning.extraCommands List of extra commands to run after provisioning
|
||||
minio:
|
||||
enabled: true
|
||||
networkPolicy:
|
||||
enabled: false
|
||||
disableWebUI: true
|
||||
|
||||
provisioning:
|
||||
enabled: true
|
||||
buckets:
|
||||
- name: baserow
|
||||
extraCommands: mc anonymous set download provisioning/baserow
|
||||
|
||||
## @section Caddy Configuration
|
||||
## Configuration for the Caddy ingress controller
|
||||
## @param caddy.enabled Enable the Caddy ingress controller
|
||||
## @param caddy.ingressController.className Ingress class name which caddy will look for on ingress annotations.
|
||||
## @param caddy.ingressController.config.email Email address to use for Let's Encrypt certificates
|
||||
## @param caddy.ingressController.config.proxyProtocol Enable the PROXY protocol
|
||||
## @param caddy.ingressController.config.experimentalSmartSort Enable experimental smart sorting
|
||||
## @param caddy.ingressController.config.onDemandTLS Enable on-demand TLS
|
||||
## @param caddy.ingressController.config.onDemandAsk URL to check for on-demand TLS
|
||||
## @param caddy.loadBalancer.externalTrafficPolicy External traffic policy for the load balancer
|
||||
## @param caddy.loadBalancer.annotations Annotations for the load balancer
|
||||
caddy:
|
||||
enabled: true
|
||||
ingressController:
|
||||
className: caddy
|
||||
config:
|
||||
email: "my@email.com"
|
||||
proxyProtocol: true
|
||||
experimentalSmartSort: false
|
||||
onDemandTLS: true
|
||||
onDemandAsk: http://:9765/healthz
|
||||
loadBalancer:
|
||||
externalTrafficPolicy: "Local"
|
||||
annotations: {}
|
Loading…
Add table
Reference in a new issue