Skip to content

Plane-EE: Add webhook consumer service#242

Open
akshat5302 wants to merge 6 commits into
masterfrom
add-webhook-consumer-service
Open

Plane-EE: Add webhook consumer service#242
akshat5302 wants to merge 6 commits into
masterfrom
add-webhook-consumer-service

Conversation

@akshat5302

@akshat5302 akshat5302 commented Jun 3, 2026

Copy link
Copy Markdown
Member

Description

This pull request introduces support for a new "webhook consumer" component in the Helm chart, allowing users to deploy and configure a dedicated webhook consumer service. It also adds new environment variables to restrict outbound webhook targets by IP or hostname, enhancing security. The changes include updates to documentation, configuration templates, and the interactive questions for chart installation.

Type of Change

  • Feature (non-breaking change which adds functionality)

Summary by CodeRabbit

  • New Features
    • Added webhook delivery filtering by allowed IP addresses and CIDR ranges
    • Added webhook delivery filtering by allowed hostnames
    • Added optional Webhook Consumer service with configurable replicas and resource allocation
    • Added queue configuration options for webhook processing

@akshat5302 akshat5302 changed the title PlaneEE: Add webhook consumer service Plane-EE: Add webhook consumer service Jun 3, 2026
@coderabbitai

coderabbitai Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

This PR extends the Plane Enterprise Helm chart with webhook infrastructure: an optional IP/hostname allowlist for webhook delivery targets and a new webhook consumer Kubernetes workload service with configurable scaling, resources, and RabbitMQ queue integration.

Changes

Webhook Infrastructure

Layer / File(s) Summary
Webhook allowlist configuration
charts/plane-enterprise/values.yaml, charts/plane-enterprise/questions.yml, charts/plane-enterprise/templates/config-secrets/app-env.yaml, charts/plane-enterprise/README.md
IP and hostname allowlists are added as optional API environment variables (WEBHOOK_ALLOWED_IPS, WEBHOOK_ALLOWED_HOSTS) with empty-string defaults. Configuration questions and documentation describe target restrictions for webhook delivery.
Webhook consumer deployment workload
charts/plane-enterprise/values.yaml, charts/plane-enterprise/questions.yml, charts/plane-enterprise/templates/config-secrets/webhook-consumer.yaml, charts/plane-enterprise/templates/workloads/webhook-consumer.deployment.yaml, charts/plane-enterprise/README.md
New optional webhook consumer service conditionally deployed when enabled. Includes Helm defaults for replica count, memory/CPU requests and limits, readiness probe checking for Python process, environment configuration via ConfigMap for RabbitMQ queue name and prefetch count, and pod scheduling, service account, and secret wiring for multi-tenant/silo support.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Suggested reviewers

  • mguptahub

Poem

A webhook consumer hops along the wire,
With allowlists to filter what's desired,
IP and hostname guards stand tall,
While RabbitMQ queues await the call. 🐰
New workloads bloom in Helm's design,
Making webhook flows align!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Plane-EE: Add webhook consumer service' accurately and concisely summarizes the main change: introducing a new webhook consumer service to the Helm chart with related configuration options.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch add-webhook-consumer-service

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@charts/plane-enterprise/templates/workloads/webhook-consumer.deployment.yaml`:
- Around line 24-25: The webhook-consumer deployment uses
.Values.services.api.pullPolicy for imagePullPolicy, ignoring the new
per-consumer setting; update the imagePullPolicy key in
webhook-consumer.deployment.yaml to reference
.Values.services.webhook_consumer.pullPolicy (with the same default fallback
used elsewhere, e.g., default "Always") so the consumer can be configured
independently from services.api.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1dd53238-4777-45dd-80a2-753763f856b0

📥 Commits

Reviewing files that changed from the base of the PR and between 8ad559d and bf7d317.

📒 Files selected for processing (6)
  • charts/plane-enterprise/README.md
  • charts/plane-enterprise/questions.yml
  • charts/plane-enterprise/templates/config-secrets/app-env.yaml
  • charts/plane-enterprise/templates/config-secrets/webhook-consumer.yaml
  • charts/plane-enterprise/templates/workloads/webhook-consumer.deployment.yaml
  • charts/plane-enterprise/values.yaml

Comment on lines +24 to +25
imagePullPolicy: {{ .Values.services.api.pullPolicy | default "Always" }}
image: {{ .Values.services.api.image | default "makeplane/backend-commercial" }}:{{ .Values.planeVersion }}

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.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Use the webhook consumer pull policy here.

Line 24 reads services.api.pullPolicy, so the new services.webhook_consumer.pullPolicy setting exposed in values.yaml and documented in README.md is currently ignored. That makes this workload impossible to configure independently and can break clusters that rely on IfNotPresent or Never for just this consumer.

Suggested fix
-        imagePullPolicy:  {{ .Values.services.api.pullPolicy | default "Always" }}
+        imagePullPolicy:  {{ .Values.services.webhook_consumer.pullPolicy | default "Always" }}
         image: {{ .Values.services.api.image | default "makeplane/backend-commercial" }}:{{ .Values.planeVersion }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
imagePullPolicy: {{ .Values.services.api.pullPolicy | default "Always" }}
image: {{ .Values.services.api.image | default "makeplane/backend-commercial" }}:{{ .Values.planeVersion }}
imagePullPolicy: {{ .Values.services.webhook_consumer.pullPolicy | default "Always" }}
image: {{ .Values.services.api.image | default "makeplane/backend-commercial" }}:{{ .Values.planeVersion }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@charts/plane-enterprise/templates/workloads/webhook-consumer.deployment.yaml`
around lines 24 - 25, The webhook-consumer deployment uses
.Values.services.api.pullPolicy for imagePullPolicy, ignoring the new
per-consumer setting; update the imagePullPolicy key in
webhook-consumer.deployment.yaml to reference
.Values.services.webhook_consumer.pullPolicy (with the same default fallback
used elsewhere, e.g., default "Always") so the consumer can be configured
independently from services.api.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant