-
Notifications
You must be signed in to change notification settings - Fork 29
[INFRA-456] - feat(plane-enterprise): expose gunicorn rotation and Celery broker envs; add PLANE_INTERNAL_API_HOST to pi-api #271
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
1556320
30ac77a
dfa566f
8f61938
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -76,6 +76,10 @@ data: | |
| DEBUG: "0" | ||
| DOCKERIZED: "1" | ||
| GUNICORN_WORKERS: "1" | ||
| GUNICORN_MAX_REQUESTS: {{ .Values.env.gunicorn_max_requests | default 1000 | quote }} | ||
| GUNICORN_MAX_REQUESTS_JITTER: {{ .Values.env.gunicorn_max_requests_jitter | default 150 | quote }} | ||
| CELERY_TASK_PUBLISH_RETRY: {{ .Values.env.celery_task_publish_retry | ternary "True" "False" | quote }} | ||
| CELERY_BROKER_POOL_LIMIT: {{ .Values.env.celery_broker_pool_limit | default 10 | quote }} | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
helm template plane-enterprise charts/plane-enterprise \
--set env.celery_broker_pool_limit=0 |
grep -F 'CELERY_BROKER_POOL_LIMIT: "0"'Repository: makeplane/helm-charts Length of output: 197 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
echo "== candidate files =="
fd -a 'app-env.yaml|values.yaml|Chart.yaml' charts 2>/dev/null | sort
echo
echo "== app-env relevant section =="
if [ -f charts/plane-enterprise/templates/config-secrets/app-env.yaml ]; then
nl -ba charts/plane-enterprise/templates/config-secrets/app-env.yaml | sed -n '70,90p'
fi
echo
echo "== values references for celery_broker_pool_limit =="
rg -n "celery_broker_pool_limit|broker_pool_limit|CELERY_BROKER_POOL_LIMIT" -S .Repository: makeplane/helm-charts Length of output: 610 🏁 Script executed: #!/usr/bin/env bash
set -euo pipefail
python3 - <<'PY'
# Read-only behavioral probe of Helm Go `default` equivalent semantics as described:
# numeric 0 is treated empty by the chart template, so an explicit 0 via default 10 becomes 10.
from functools import reduce
values = {'env': {'celery_broker_pool_limit': 0}}
actual = values.get('env') or {}
actual = actual.get('celery_broker_pool_limit')
result = actual if actual is not None and actual != '' else 10
print('env.celery_broker_pool_limit 0 ->', result)
values = {'env': {'celery_broker_pool_limit': None}}
actual = values.get('env') or {}
actual = actual.get('celery_broker_pool_limit')
result = actual if actual is not None and actual != '' else 10
print('missing default fallback key ->', result)
PYRepository: makeplane/helm-charts Length of output: 230 🌐 Web query:
💡 Result: In Helm charts, the default function treats a numeric 0 as an "empty" value [1][2]. Consequently, if you use {{ default "fallback".Values.myValue }} and.Values.myValue is set to 0, Helm will return "fallback" instead of 0 [3][4]. This behavior is intended by the template engine, which considers the following types "empty" [1][2]: - Numeric: 0 - String: "" - Lists: [] - Dictionaries: {} - Boolean: false - Nil (null) Because 0 is categorized as empty, the default function cannot natively distinguish between a value that is missing (nil) and a value that is explicitly set to 0 [4][5]. Workarounds If your use case requires treating 0 as a valid value while still providing a default for truly missing/null values, you must implement logic to explicitly check the value instead of relying on the default function [3][4]: 1. Explicit Check with if/else: You can check if the value is specifically 0 before applying a default [5]: {{- if eq (toString.Values.myValue) "0" }} myValue: 0 {{- else }} myValue: {{ default "fallback".Values.myValue }} {{- end }} 2. Kind Checking: Some developers use the kindIs function to verify if the value is set before deciding how to handle it, which helps avoid type-related comparison errors [6]: {{- if or (kindIs "int64".Values.myValue) (kindIs "float64".Values.myValue) }} myValue: {{.Values.myValue }} {{- else }} myValue: {{ default "fallback".Values.myValue }} {{- end }} 3. Setting Defaults in values.yaml: The most robust practice is to define static default values directly in your values.yaml file rather than using the default function in templates [7][8][5]. This ensures the value is explicitly defined and avoids the ambiguity of the default function [5]. Citations:
🌐 Web query:
💡 Result: According to official Celery documentation, setting the broker_pool_limit configuration option to 0 or None will disable the broker connection pool [1][2][3]. When disabled, Celery will establish and close a connection for every individual use [1][2][3]. While this is the documented behavior, it is worth noting that some users have reported issues in recent versions of Celery where setting this parameter to 0 or None does not appear to have the expected effect of disabling the pool, leading to potential connection exhaustion in certain client configurations [4]. The broker connection pool has been enabled by default since Celery version 2.5, with a default limit of 10 connections [1][2][3]. Increasing this limit is generally recommended to minimize contention in environments with high numbers of active threads or green-threads [5][1][3]. Citations:
🏁 Script executed: #!/bin/bash
set -euo pipefail
python3 - <<'PY'
from pathlib import Path
p = Path("charts/plane-enterprise/templates/config-secrets/app-env.yaml")
text = p.read_text()
idx = text.find("CELERY_BROKER_POOL_LIMIT")
print(text[idx-120: idx+160])
path = Path("charts/plane-enterprise/values.yaml")
print("\n=== values.yaml celery_broker_pool_limit context ==")
lines = [ln.splitlines()[0] for ln in path.read_text().splitlines()]
for i, line in enumerate(lines, 1):
if "celery_broker_pool_limit" in line:
for offset in range(-3, 4):
j = i + offset
if 0 < j <= len(lines):
print(f"{j}: {lines[j-1]}")
PYRepository: makeplane/helm-charts Length of output: 642 Preserve an explicit
🤖 Prompt for AI Agents |
||
| {{- if .Values.env.web_url}} | ||
| WEB_URL: {{ .Values.env.web_url | default "" | quote }} | ||
| {{- else if or .Values.ssl.tls_secret_name (and .Values.ssl.createIssuer .Values.ssl.generateCerts) }} | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.