Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
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
18 changes: 18 additions & 0 deletions charts/plane-enterprise/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -455,6 +455,7 @@ securityContext:
| env.live_sentry_environment | | | (optional) Live service deployment comes with some of the preconfigured integration. Sentry is one among those. Here user can set the Sentry environment name (as configured in Sentry) for this integration. |
| env.live_sentry_traces_sample_rate | | | (optional) Live service deployment comes with some of the preconfigured integration. Sentry is one among those. Here user can set the Sentry trace sample rate (as configured in Sentry) for this integration. |
| env.live_server_secret_key | htbqvBJAgpm9bzvf3r4urJer0ENReatceh | | Live Server Secret Key |
| env.export_queue_name | plane-exports | | RabbitMQ queue name for background PDF/DOCX export jobs consumed by the `live-exporter` service. |
| env.external_iframely_url | "" | | External Iframely service URL. If provided, the local Iframely deployment will be skipped and the live service will use this external URL |
| services.live.assign_cluster_ip | false | | Set it to `true` if you want to assign `ClusterIP` to the service |
| services.live.nodeSelector | {} | | This key allows you to set the node selector for the deployment of `live`. This is useful when you want to run the deployment on specific nodes in your Kubernetes cluster. |
Expand All @@ -463,6 +464,21 @@ securityContext:
| services.live.labels | {} | | Custom labels to add to the live deployment |
| services.live.annotations | {} | | Custom annotations to add to the live deployment |

### Live Exporter Deployment

| Setting | Default | Required | Description |
| ----------------------------------------- | :------------------------: | :------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| services.live_exporter.enabled | true | | Enable or disable the background PDF/DOCX export worker. Reuses the `live` image but boots in `exporter` mode (pure queue consumer, no HTTP port). |
| services.live_exporter.replicas | 1 | Yes | Number of exporter pods. PDF render footprint is 500MB–2GB per job; scale horizontally rather than increasing concurrency per pod. |
| services.live_exporter.memoryLimit | 2000Mi | | Memory limit for the exporter pod. Set higher if rendering large documents. |
| services.live_exporter.cpuLimit | 1000m | | CPU limit for the exporter pod. |
| services.live_exporter.memoryRequest | 50Mi | | Memory request for the exporter pod. |
| services.live_exporter.cpuRequest | 50m | | CPU request for the exporter pod. |
| services.live_exporter.image | makeplane/live-commercial | | Docker image for the exporter. Must match the `live` service image. |
| services.live_exporter.nodeSelector | {} | | Node selector for the exporter pod. |
| services.live_exporter.tolerations | [] | | Tolerations for the exporter pod. |
| services.live_exporter.affinity | {} | | Affinity rules for the exporter pod. |

Comment thread
akshat5302 marked this conversation as resolved.
### Monitor Deployment

| Setting | Default | Required | Description |
Expand Down Expand Up @@ -874,6 +890,8 @@ To configure the external secrets for your application, you need to define speci
| | `DATABASE_URL` | Yes | PostgreSQL connection URL | **k8s service example**: `postgresql://plane:plane@plane-pgdb.plane-ns.svc.cluster.local: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:plane@plane-rabbitmq.plane-ns.svc.cluster.local:5672/` <br> <br> **external service example**: `amqp://username:password@your-rabbitmq-host:5672/` |
| live_env_existingSecret | `REDIS_URL` | Yes | Redis URL | `redis://plane-redis.plane-ns.svc.cluster.local:6379/` |
| | `AMQP_URL` | Yes | RabbitMQ connection URL | **k8s service example**: `amqp://plane:plane@plane-rabbitmq.plane-ns.svc.cluster.local:5672/` <br> <br> **external service example**: `amqp://username:password@your-rabbitmq-host:5672/` |
| | `LIVE_SERVER_SECRET_KEY` | Yes | Live server secret key | `htbqvBJAgpm9bzvf3r4urJer0ENReatceh` |
| 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/` |
| | `DATABASE_URL` | Yes | PostgreSQL connection URL | **k8s service example**: `postgresql://plane:plane@plane-pgdb.plane-ns.svc.cluster.local:5432/plane` <br> <br>**external service example**: `postgresql://username:password@your-db-host:5432/plane` |
Expand Down
33 changes: 33 additions & 0 deletions charts/plane-enterprise/questions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,39 @@ questions:
label: "Live Server Secret Key"
type: string
default: "htbqvBJAgpm9bzvf3r4urJer0ENReatceh"
- variable: env.export_queue_name
label: "Export Queue Name"
description: "RabbitMQ queue name for background PDF/DOCX export jobs consumed by the live-exporter service."
type: string
default: "plane-exports"

- variable: services.live_exporter.enabled
label: "Install Live Exporter Service"
type: boolean
default: true
group: "Live Exporter Setup"
show_subquestion_if: true
subquestions:
- variable: services.live_exporter.replicas
label: "Default Replica Count"
type: int
default: 1
- variable: services.live_exporter.memoryLimit
label: "Memory Limit"
type: string
default: 2000Mi
- variable: services.live_exporter.cpuLimit
label: "CPU Limit"
type: string
default: 1000m
- variable: services.live_exporter.memoryRequest
label: "Memory Request"
type: string
default: 50Mi
- variable: services.live_exporter.cpuRequest
label: "CPU Request"
type: string
default: 50m
Comment thread
coderabbitai[bot] marked this conversation as resolved.

- variable: services.silo.enabled
label: "Install Silo Service"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,13 @@ stringData:
{{- else }}
REDIS_URL: {{ .Values.env.remote_redis_url | default "" | quote }}
{{- end }}
{{- if .Values.services.rabbitmq.local_setup }}
AMQP_URL: "amqp://{{ .Values.services.rabbitmq.default_user }}:{{ .Values.services.rabbitmq.default_password }}@{{ .Release.Name }}-rabbitmq.{{ .Release.Namespace }}.svc.{{ .Values.env.default_cluster_domain | default "cluster.local" }}/"
{{- else if .Values.services.rabbitmq.external_rabbitmq_url }}
AMQP_URL: {{ .Values.services.rabbitmq.external_rabbitmq_url | quote }}
{{- else }}
AMQP_URL: ""
{{- end }}
{{- end }}
---
apiVersion: v1
Expand Down Expand Up @@ -41,4 +48,6 @@ data:
{{- else }}
IFRAMELY_URL: http://{{ .Release.Name }}-iframely.{{ .Release.Namespace }}.svc.{{ .Values.env.default_cluster_domain | default "cluster.local" }}:8061/
{{- end }}

EXPORT_QUEUE_NAME: {{ .Values.env.export_queue_name | default "plane-exports" | quote }}
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@

{{- if .Values.services.live_exporter.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-live-exporter-wl
{{- include "plane.labelsAndAnnotations" (dict "context" $ "values" .Values.services.live_exporter) }}
spec:
replicas: {{ .Values.services.live_exporter.replicas | default 1 }}
selector:
matchLabels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-live-exporter
template:
metadata:
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-live-exporter
{{- include "plane.commonLabels" $ | nindent 8 }}
annotations:
timestamp: {{ now | quote }}
spec:
{{- include "plane.podScheduling" .Values.services.live_exporter }}
{{- include "plane.podSecurityContext" . }}
containers:
- name: {{ .Release.Name }}-live-exporter
{{- include "plane.containerSecurityContext" . }}
imagePullPolicy: {{ .Values.services.live_exporter.pullPolicy | default "Always" }}
image: {{ .Values.services.live_exporter.image | default "makeplane/live-commercial" }}:{{ .Values.planeVersion }}
stdin: true
tty: true
resources:
requests:
memory: {{ .Values.services.live_exporter.memoryRequest | default "50Mi" | quote }}
cpu: {{ .Values.services.live_exporter.cpuRequest | default "50m" | quote }}
limits:
memory: {{ .Values.services.live_exporter.memoryLimit | default "2000Mi" | quote }}
cpu: {{ .Values.services.live_exporter.cpuLimit | default "1000m" | quote }}
envFrom:
- configMapRef:
name: {{ .Release.Name }}-live-vars
optional: false
- secretRef:
name: {{ if not (empty .Values.external_secrets.live_env_existingSecret) }}{{ .Values.external_secrets.live_env_existingSecret }}{{ else }}{{ .Release.Name }}-live-secrets{{ end }}
optional: false
env:
- name: LIVE_MODE
value: "exporter"
{{- if .Values.extraEnv }}
{{- toYaml .Values.extraEnv | nindent 10 }}
{{- end }}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
serviceAccount: {{ .Release.Name }}-srv-account
serviceAccountName: {{ .Release.Name }}-srv-account
{{- end }}
19 changes: 19 additions & 0 deletions charts/plane-enterprise/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,22 @@ services:
labels: {}
annotations: {}

live_exporter:
enabled: true
replicas: 1
# PDF render footprint is 500MB-2GB; default limits reflect that.
memoryLimit: 2000Mi
cpuLimit: 1000m
memoryRequest: 50Mi
cpuRequest: 50m
Comment thread
akshat5302 marked this conversation as resolved.
image: makeplane/live-commercial
pullPolicy: Always
nodeSelector: {}
tolerations: []
affinity: {}
labels: {}
annotations: {}

api:
replicas: 1
memoryLimit: 1000Mi
Expand Down Expand Up @@ -614,6 +630,9 @@ env:
live_sentry_environment: ""
live_sentry_traces_sample_rate: ""
live_server_secret_key: "htbqvBJAgpm9bzvf3r4urJer0ENReatceh"

# Background PDF/DOCX export worker queue.
export_queue_name: "plane-exports"
external_iframely_url: ""

silo_envs:
Expand Down