Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion charts/plane-enterprise/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Meet Plane. An Enterprise software development tool to manage issue

type: application

version: 3.0.0
version: 3.1.0
appVersion: "3.0.0"

home: https://plane.so/
Expand Down
21 changes: 21 additions & 0 deletions charts/plane-enterprise/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -793,6 +793,26 @@ Note: When the email service is enabled, the cert-issuer will be automatically c
| env.webhook_consumer_envs.queue_name | "plane.webhook" | | RabbitMQ queue name the webhook consumer reads from |
| env.webhook_consumer_envs.prefetch_count | 10 | | Prefetch count for the webhook consumer |

### DBOS Worker Deployment

| Setting | Default | Required | Description |
| ------------------------------------------------- | :------------: | :------: | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| services.dbos_worker.enabled | false | | Set to `true` to enable the DBOS worker service deployment |
| services.dbos_worker.replicas | 1 | | Number of replicas for the DBOS worker service deployment |
| services.dbos_worker.memoryLimit | 1000Mi | | Memory limit for the DBOS worker service deployment |
| services.dbos_worker.cpuLimit | 500m | | CPU limit for the DBOS worker service deployment |
| services.dbos_worker.memoryRequest | 500Mi | | Memory request for the DBOS worker service deployment |
| services.dbos_worker.cpuRequest | 250m | | CPU request for the DBOS worker service deployment |
| services.dbos_worker.assign_cluster_ip | false | | Set it to `true` if you want to assign `ClusterIP` to the service |
| services.dbos_worker.nodeSelector | {} | | This key allows you to set the node selector for the deployment of `dbos_worker`. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
| services.dbos_worker.tolerations | [] | | This key allows you to set the tolerations for the deployment of `dbos_worker`. This is useful when you want to run the deployment on nodes with specific taints in your Kubernetes cluster. |
| services.dbos_worker.affinity | {} | | This key allows you to set the affinity rules for the deployment of `dbos_worker`. This is useful when you want to control how pods are scheduled on nodes in your Kubernetes cluster. |
| services.dbos_worker.labels | {} | | Custom labels to add to the DBOS worker deployment |
| services.dbos_worker.annotations | {} | | Custom annotations to add to the DBOS worker deployment |
| env.dbos_worker_envs.system_database_url | | | DBOS system database URL (`DBOS_SYSTEM_DATABASE_URL`), stored in the `-dbos-worker-secrets` Secret. Leave empty to default to the Plane database URL, or provide it via `dbos_worker_existingSecret`. |
| env.dbos_worker_envs.sys_db_pool_size | 10 | | DBOS system database connection pool size (`DBOS_SYS_DB_POOL_SIZE`) |
| env.dbos_worker_envs.app_version | "v1.0.0" | | DBOS application version (`DBOS_APP_VERSION`) |

### Iframely Deployment

| Setting | Default | Required | Description |
Expand Down Expand Up @@ -873,6 +893,7 @@ To configure the external secrets for your application, you need to define speci
| | `REDIS_URL` | Yes | Redis URL | `redis://plane-redis.plane-ns.svc.cluster.local:6379/` |
| | `DATABASE_URL` | Yes | PostgreSQL connection URL | **k8s service example**: `postgresql://plane:[email protected]:5432/plane` <br> <br>**external service example**: `postgresql://username:password@your-db-host:5432/plane` |
| | `AMQP_URL` | Yes | RabbitMQ connection URL | **k8s service example**: `amqp://plane:[email protected]:5672/` <br> <br> **external service example**: `amqp://username:password@your-rabbitmq-host:5672/` |
| dbos_worker_existingSecret | `DBOS_SYSTEM_DATABASE_URL` | Yes (if `services.dbos_worker.enabled=true`) | DBOS system database connection URL | **k8s service example**: `postgresql://plane:[email protected]:5432/plane` <br> <br>**external service example**: `postgresql://username:password@your-db-host:5432/plane` |
| live_env_existingSecret | `REDIS_URL` | Yes | Redis URL | `redis://plane-redis.plane-ns.svc.cluster.local:6379/` |
| silo_env_existingSecret | `SILO_HMAC_SECRET_KEY` | Yes | Silo HMAC secret Key | `<random-32-bit-string>` |
| | `REDIS_URL` | Yes | Redis URL | `redis://plane-redis.plane-ns.svc.cluster.local:6379/` |
Expand Down
44 changes: 44 additions & 0 deletions charts/plane-enterprise/questions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -883,6 +883,50 @@ questions:
type: int
default: 10

- variable: services.dbos_worker.enabled
label: "Enable DBOS Worker"
type: boolean
default: false
group: "DBOS Worker Setup"
show_subquestion_if: true
subquestions:
- variable: services.dbos_worker.replicas
label: "Default Replica Count"
type: int
default: 1
- variable: services.dbos_worker.memoryLimit
label: "Memory Limit"
type: string
default: 1000Mi
- variable: services.dbos_worker.cpuLimit
label: "CPU Limit"
type: string
default: 500m
- variable: services.dbos_worker.memoryRequest
label: "Memory Request"
type: string
default: 500Mi
- variable: services.dbos_worker.cpuRequest
label: "CPU Request"
type: string
default: 250m
- variable: services.dbos_worker.assign_cluster_ip
label: "Assign Cluster IP"
type: boolean
default: false
- variable: env.dbos_worker_envs.system_database_url
label: "DBOS System Database URL"
type: string
default: ""
- variable: env.dbos_worker_envs.sys_db_pool_size
label: "DBOS System DB Pool Size"
type: int
default: 10
- variable: env.dbos_worker_envs.app_version
label: "DBOS App Version"
type: string
default: "v1.0.0"

- variable: services.iframely.enabled
label: "Enable Iframely"
type: boolean
Expand Down
34 changes: 34 additions & 0 deletions charts/plane-enterprise/templates/config-secrets/dbos-worker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{{- if .Values.services.dbos_worker.enabled }}
{{- if empty .Values.external_secrets.dbos_worker_existingSecret }}
apiVersion: v1
kind: Secret
type: Opaque
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-dbos-worker-secrets
labels:
{{- include "plane.commonLabels" $ | nindent 4 }}
stringData:
{{- if .Values.env.dbos_worker_envs.system_database_url }}
DBOS_SYSTEM_DATABASE_URL: {{ .Values.env.dbos_worker_envs.system_database_url | quote }}
{{- else if .Values.services.postgres.local_setup }}
DBOS_SYSTEM_DATABASE_URL: "postgresql://{{ .Values.env.pgdb_username }}:{{ .Values.env.pgdb_password }}@{{ .Release.Name }}-pgdb.{{ .Release.Namespace }}.svc.{{ .Values.env.default_cluster_domain | default "cluster.local" }}/{{ .Values.env.pgdb_name }}"
{{- else if .Values.env.pgdb_remote_url }}
DBOS_SYSTEM_DATABASE_URL: {{ .Values.env.pgdb_remote_url | quote }}
{{- else }}
DBOS_SYSTEM_DATABASE_URL: ""
{{- end }}
---
{{- end }}
apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-dbos-worker-vars
labels:
{{- include "plane.commonLabels" $ | nindent 4 }}
data:
DBOS_SYS_DB_POOL_SIZE: {{ .Values.env.dbos_worker_envs.sys_db_pool_size | default 10 | quote }}
DBOS_APP_VERSION: {{ .Values.env.dbos_worker_envs.app_version | default "v1.0.0" | quote }}
---
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
{{- if .Values.services.dbos_worker.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-dbos-worker-wl
{{- include "plane.labelsAndAnnotations" (dict "context" $ "values" .Values.services.dbos_worker) }}
spec:
replicas: {{ .Values.services.dbos_worker.replicas | default 1 }}
selector:
matchLabels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-dbos-worker
template:
metadata:
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-dbos-worker
{{- include "plane.commonLabels" $ | nindent 8 }}
annotations:
timestamp: {{ now | quote }}
spec:
{{- include "plane.podScheduling" .Values.services.dbos_worker }}
{{- include "plane.podSecurityContext" . }}
containers:
- name: {{ .Release.Name }}-dbos-worker
{{- include "plane.containerSecurityContext" . }}
imagePullPolicy: {{ .Values.services.api.pullPolicy | default "Always" }}
image: {{ .Values.services.api.image | default "makeplane/backend-commercial" }}:{{ .Values.planeVersion }}
stdin: true
tty: true
resources:
requests:
memory: {{ .Values.services.dbos_worker.memoryRequest | default "500Mi" | quote }}
cpu: {{ .Values.services.dbos_worker.cpuRequest | default "250m" | quote }}
limits:
memory: {{ .Values.services.dbos_worker.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.dbos_worker.cpuLimit | default "500m" | quote}}
readinessProbe:
exec:
command:
- sh
- -c
- pgrep -f "python" > /dev/null
initialDelaySeconds: 10
failureThreshold: 3
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 5
command:
- ./bin/docker-entrypoint-dbos-worker.sh
envFrom:
- secretRef:
name: {{ if not (empty .Values.external_secrets.dbos_worker_existingSecret) }}{{ .Values.external_secrets.dbos_worker_existingSecret }}{{ else }}{{ .Release.Name }}-dbos-worker-secrets{{ end }}
optional: false
- configMapRef:
name: {{ .Release.Name }}-dbos-worker-vars
optional: false
- configMapRef:
name: {{ .Release.Name }}-app-vars
optional: false
- secretRef:
name: {{ if not (empty .Values.external_secrets.app_env_existingSecret) }}{{ .Values.external_secrets.app_env_existingSecret }}{{ else }}{{ .Release.Name }}-app-secrets{{ end }}
optional: false
{{- if .Values.extraEnv }}
env:
{{- toYaml .Values.extraEnv | nindent 10 }}
{{- end }}

serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account
---
{{- end }}
20 changes: 20 additions & 0 deletions charts/plane-enterprise/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -436,6 +436,20 @@ services:
labels: {}
annotations: {}

dbos_worker:
enabled: false
replicas: 1
memoryLimit: 1000Mi
cpuLimit: 500m
memoryRequest: 500Mi
cpuRequest: 250m
assign_cluster_ip: false
nodeSelector: {}
tolerations: []
affinity: {}
labels: {}
annotations: {}

pi:
enabled: false
replicas: 1
Expand Down Expand Up @@ -534,6 +548,7 @@ external_secrets:
opensearch_existingSecret: ''
doc_store_existingSecret: ''
app_env_existingSecret: ''
dbos_worker_existingSecret: ''
live_env_existingSecret: ''
silo_env_existingSecret: ''
pi_api_env_existingSecret: ''
Expand Down Expand Up @@ -661,6 +676,11 @@ env:
queue_name: "plane.webhook"
prefetch_count: 10

dbos_worker_envs:
system_database_url: ''
sys_db_pool_size: 10
app_version: "v1.0.0"

runner_envs:
execution_timeout_ms: "10000"
init_timeout_ms: "5000"
Expand Down