GKE high-concurrency worker-imports (128-256 threads)#1
Conversation
…r commands. Align Helm chart with docker-compose/ECS worker split: default worker drains celery,audio-metrics; worker-imports uses threads pool at concurrency 32. Add values-gke-high-concurrency.yaml overlay for 4-8 pods (128-256 threads). Co-authored-by: Cursor <cursoragent@cursor.com>
|
| Filename | Overview |
|---|---|
| charts/efficientai/templates/NOTES.txt | New informational block uses default "celery,audio-metrics" for worker queues, outputting a factually wrong queue list when worker.queues is empty — the actual command has no --queues flag in that case |
| charts/efficientai/templates/_helpers.tpl | Adds two new command-building helpers for worker and worker-imports; default 8 $wi.concurrency silently coerces concurrency: 0 to 8, blocking Celery's CPU auto-detect |
| charts/efficientai/templates/worker-imports/deployment.yaml | Replaces inline command construction with the new helper; adds optional release-scoped topology spread via spreadAcrossNodes; logic is clean |
| charts/efficientai/templates/worker/deployment.yaml | Single-line change delegating command construction to the new helper; no issues |
| charts/efficientai/values.yaml | Adds worker.queues, worker.concurrency, workerImports.pool, and workerImports.spreadAcrossNodes; defaults are sane and workerImports.concurrency remains 8 |
| examples/gke/values-gke-high-concurrency.yaml | New GKE overlay for 4–8 worker-imports pods at 32 threads; correctly enables spreadAcrossNodes and HPA; values look self-consistent |
| charts/efficientai/tests/worker_imports_deployment_test.yaml | New suite covering eai-worker command, custom pool/concurrency, spreadAcrossNodes topology spread, and custom command override; comprehensive |
| charts/efficientai/tests/worker_deployment_test.yaml | Tests updated to match new helper-based command; covers no-queues (disabled) and with-queues (enabled) paths |
| charts/efficientai/tests/gcs_config_test.yaml | Fixes pre-existing path syntax to data["config.yml"] — correct fix for the known helm-unittest assertion failure |
| charts/efficientai/README.md | Adds worker-only and updated worker-imports tables; documents minimum image version (>= 1.5.0) requirement |
Reviews (2): Last reviewed commit: "Address PR review feedback and fix chart..." | Re-trigger Greptile
- Keep backward-compatible chart defaults (concurrency 8, no pool/queue split unless overlay sets them) - Only restrict worker queues when worker-imports is enabled - Add spreadAcrossNodes for release-scoped topology spread on GKE - Fix gcs_config_test ConfigMap path for helm-unittest
Summary
celery,audio-metrics) and worker-imports (threadspool, configurable concurrency).examples/gke/values-gke-high-concurrency.yamloverlay (4–8 worker-imports pods × 32 threads = 128–256 Celery threads) and document usage in READMEs.Test plan
make deps— Helm dependencies updated successfullymake lint— chart lint passed (0 failures)make unittest— worker + worker-imports suites pass; pre-existinggcs_config_test.yamlfailure (unknown path data.config\.ymlon ConfigMap)helm upgrade --installwith layered values on a GKE cluster; confirm worker-imports HPA/replicas and Celery-Q imports/--pool=threads/--concurrency=32Using the overlay (layer on GCS values)
cp examples/gke/values-gcs.yaml my-values.yamlreplicaCount4, HPA max 8, concurrency 32 per pod (128 threads steady, up to 256 at max scale). Default worker continues drainingcelery,audio-metricsonly.