Skip to content
Open
Show file tree
Hide file tree
Changes from 2 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
4 changes: 2 additions & 2 deletions charts/plane-enterprise/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ description: Meet Plane. An Enterprise software development tool to manage issue

type: application

version: 3.5.4
appVersion: "3.1.4"
version: 3.6.0
appVersion: "3.1.2"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it should be 3.1.4

Comment thread
Saurabhkmr98 marked this conversation as resolved.
Outdated

home: https://plane.so/
icon: https://plane.so/favicon/favicon-32x32.png
Expand Down
40 changes: 40 additions & 0 deletions charts/plane-enterprise/questions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1037,6 +1037,46 @@ questions:
type: int
default: 10

- variable: services.integration_event_consumer.enabled
label: "Enable Integration Event Consumer"
type: boolean
default: false
group: "Integration Event Consumer Setup"
show_subquestion_if: true
subquestions:
- variable: services.integration_event_consumer.replicas
label: "Default Replica Count"
type: int
default: 1
- variable: services.integration_event_consumer.memoryLimit
label: "Memory Limit"
type: string
default: 1000Mi
- variable: services.integration_event_consumer.cpuLimit
label: "CPU Limit"
type: string
default: 500m
- variable: services.integration_event_consumer.memoryRequest
label: "Memory Request"
type: string
default: 256Mi
- variable: services.integration_event_consumer.cpuRequest
label: "CPU Request"
type: string
default: 100m
- variable: services.integration_event_consumer.assign_cluster_ip
label: "Assign Cluster IP"
type: boolean
default: false
- variable: env.integration_event_consumer_envs.queue_name
label: "Integration Event Consumer Queue Name"
type: string
default: "plane.integration_stream.reference"
- variable: env.integration_event_consumer_envs.prefetch_count
label: "Integration Event Consumer Prefetch Count"
type: int
default: 10

- variable: services.iframely.enabled
label: "Enable Iframely"
type: boolean
Expand Down
14 changes: 14 additions & 0 deletions charts/plane-enterprise/templates/config-secrets/app-env.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,17 @@ data:
WEBHOOK_ALLOWED_IPS: {{ .Values.env.webhook_allowed_ips | default "" | quote }}
WEBHOOK_ALLOWED_HOSTS: {{ .Values.env.webhook_allowed_hosts | default "" | quote }}
AI_USAGE_AGENT_MAX_TOKENS_BUDGET: {{ .Values.env.pi_envs.ai_usage_agent_max_tokens_budget | default "" | quote }}

INTEGRATION_EVENT_STREAM_EXCHANGE_NAME: {{ .Values.env.integration_event_envs.stream_exchange_name | default "plane.integration_stream" | quote }}
INTEGRATION_EVENT_CONSUMER_QUEUE_NAME: {{ .Values.env.integration_event_consumer_envs.queue_name | default "plane.integration_stream.reference" | quote }}
INTEGRATION_EVENT_CONSUMER_PREFETCH: {{ .Values.env.integration_event_consumer_envs.prefetch_count | default 10 | quote }}
INTEGRATION_EVENT_MAX_RAW_BYTES: {{ .Values.env.integration_event_envs.max_raw_bytes | default 262144 | quote }}
INTEGRATION_EVENT_PUBLISH_TIMEOUT: {{ .Values.env.integration_event_envs.publish_timeout | default 2.0 | quote }}
INTEGRATION_EVENT_PUBLISH_MAX_RETRIES: {{ .Values.env.integration_event_envs.publish_max_retries | default 2 | quote }}
INTEGRATION_EVENT_PUBLISH_RETRY_DELAY: {{ .Values.env.integration_event_envs.publish_retry_delay | default 0.05 | quote }}
INTEGRATION_EVENT_REPUBLISH_BATCH_SIZE: {{ .Values.env.integration_event_envs.republish_batch_size | default 500 | quote }}
INTEGRATION_EVENT_REPUBLISH_MAX_ATTEMPTS: {{ .Values.env.integration_event_envs.republish_max_attempts | default 10 | quote }}
INTEGRATION_EVENT_REPUBLISH_GRACE_SECONDS: {{ .Values.env.integration_event_envs.republish_grace_seconds | default 60 | quote }}
INTEGRATION_EVENT_CLEANER_BATCH_SIZE: {{ .Values.env.integration_event_envs.cleaner_batch_size | default 1000 | quote }}
INTEGRATION_EVENT_CLEANER_CUTOFF_DAYS: {{ .Values.env.integration_event_envs.cleaner_cutoff_days | default 7 | quote }}
INTEGRATION_EVENT_COLLECTION_NAME: {{ .Values.env.integration_event_envs.collection_name | default "integration_event" | quote }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{{- if .Values.services.integration_event_consumer.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-integration-event-consumer-vars
labels:
{{- include "plane.commonLabels" $ | nindent 4 }}
data:
INTEGRATION_EVENT_CONSUMER_QUEUE_NAME: {{ .Values.env.integration_event_consumer_envs.queue_name | default "plane.integration_stream.reference" | quote }}
INTEGRATION_EVENT_CONSUMER_PREFETCH: {{ .Values.env.integration_event_consumer_envs.prefetch_count | default 10 | quote }}
---
{{- end }}
4 changes: 4 additions & 0 deletions charts/plane-enterprise/templates/config-secrets/silo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,10 @@ data:
SENTRY_ENVIRONMENT: {{ .Values.env.silo_envs.sentry_environment | default "development" | quote }}
SENTRY_TRACES_SAMPLE_RATE: {{ .Values.env.silo_envs.sentry_traces_sample_rate | default "0.1" | quote }}

INTEGRATION_EVENT_INGEST_ENABLED: {{ .Values.env.silo_envs.integration_event_ingest_enabled | default false | ternary "1" "0" | quote }}
INTEGRATION_EVENT_PROVIDERS: {{ .Values.env.silo_envs.integration_event_providers | default "github,gitlab,slack" | quote }}
INTEGRATION_EVENT_INGEST_TIMEOUT_MS: {{ .Values.env.silo_envs.integration_event_ingest_timeout_ms | default 2000 | quote }}


{{- end }}
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
{{- if .Values.services.integration_event_consumer.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ .Release.Namespace }}
name: {{ .Release.Name }}-integration-event-consumer-wl
{{- include "plane.labelsAndAnnotations" (dict "context" $ "values" .Values.services.integration_event_consumer) }}
spec:
replicas: {{ .Values.services.integration_event_consumer.replicas | default 1 }}
selector:
matchLabels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-integration-event-consumer
template:
metadata:
namespace: {{ .Release.Namespace }}
labels:
app.name: {{ .Release.Namespace }}-{{ .Release.Name }}-integration-event-consumer
{{- include "plane.commonLabels" $ | nindent 8 }}
annotations:
timestamp: {{ now | quote }}
spec:
{{- include "plane.podScheduling" .Values.services.integration_event_consumer }}
{{- include "plane.podSecurityContext" . }}
containers:
- name: {{ .Release.Name }}-integration-event-consumer
{{- 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.integration_event_consumer.memoryRequest | default "256Mi" | quote }}
cpu: {{ .Values.services.integration_event_consumer.cpuRequest | default "100m" | quote }}
limits:
memory: {{ .Values.services.integration_event_consumer.memoryLimit | default "1000Mi" | quote }}
cpu: {{ .Values.services.integration_event_consumer.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-integration-event-consumer.sh
envFrom:
- configMapRef:
name: {{ .Release.Name }}-integration-event-consumer-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
- secretRef:
name: {{ if not (empty .Values.external_secrets.doc_store_existingSecret) }}{{ .Values.external_secrets.doc_store_existingSecret }}{{ else }}{{ .Release.Name }}-doc-store-secrets{{ end }}
optional: false
- secretRef:
name: {{ if not (empty .Values.external_secrets.opensearch_existingSecret) }}{{ .Values.external_secrets.opensearch_existingSecret }}{{ else }}{{ .Release.Name }}-opensearch-secrets{{ end }}
optional: false
{{- if .Values.services.silo.enabled }}
- secretRef:
name: {{ if not (empty .Values.external_secrets.silo_env_existingSecret) }}{{ .Values.external_secrets.silo_env_existingSecret }}{{ else }}{{ .Release.Name }}-silo-secrets{{ end }}
optional: false
{{- end }}
{{- with (include "plane.otel.envFrom" $) }}{{ . | nindent 10 }}{{- end }}
{{- if or .Values.extraEnv (eq (include "plane.otel.enabled" .) "true") }}
env:
{{- with (include "plane.otel.serviceEnv" (dict "ctx" $ "service" "integration-event-consumer")) }}{{ . | nindent 10 }}{{- end }}
{{- if .Values.extraEnv }}
{{- toYaml .Values.extraEnv | nindent 10 }}
{{- end }}
{{- end }}

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

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

pi:
enabled: false
replicas: 1
Expand Down Expand Up @@ -813,11 +827,29 @@ env:
jira_server_issues_page_size: 50
jira_server_issues_parallel_pages: 1
cursor_webhook_secret: 'TTqazTcoBajYKzIAeIKFZeTX9czAoUsG'
# Integration event stream: normalized webhook events Silo forwards to Plane.
integration_event_ingest_enabled: false
integration_event_providers: "github,gitlab,slack"
integration_event_ingest_timeout_ms: 2000

email_service_envs:
smtp_domain: ''
max_attachment_size: '10485760' # 10MB in bytes

# Shared across api / worker / beat-worker / integration-event-consumer.
integration_event_envs:
stream_exchange_name: "plane.integration_stream"
max_raw_bytes: 262144
publish_timeout: 2.0
publish_max_retries: 2
publish_retry_delay: 0.05
republish_batch_size: 500
republish_max_attempts: 10
republish_grace_seconds: 60
cleaner_batch_size: 1000
cleaner_cutoff_days: 7
collection_name: "integration_event"

outbox_poller_envs:
memory_limit_mb: 400
interval_min: 0.25
Expand Down Expand Up @@ -848,6 +880,10 @@ env:
queue_name: "plane.agent"
prefetch_count: 10

integration_event_consumer_envs:
queue_name: "plane.integration_stream.reference"
prefetch_count: 10

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