Add Brainstore Automation Writer pool to Helm chart - #105
Jeff McCollum (jeffmccollum) wants to merge 1 commit into
Conversation
f9cbb3d to
79aac96
Compare
b188ef3 to
97b01f1
Compare
Add an optional, dedicated Brainstore writer pool that handles only the automations writer loop, isolating automation processing from the regular writer pool. The feature is driven entirely by BRAINSTORE_WRITER_LOOP_CONFIG -- there is no separate Service or URL and no API routing change (Brainstore writer nodes partition the writer loops among themselves through Postgres / Redis): - New brainstore-automationwriter Deployment + ConfigMap (writer mode) set BRAINSTORE_WRITER_LOOP_CONFIG=include:automations. - brainstore-writer ConfigMap sets exclude:automations only when brainstore.automationwriter.replicas > 0. - No automation-writer Service: nothing routes to the pool by URL, so the pool exposes only a container port (no service block in values). - Disabled by default (replicas: 0) so existing deployments are unaffected and the writer pool keeps handling automations. Also add values, both google-autopilot examples, the base-values fixture, and ci/values-azure.yaml entries; unit tests for the new pool and the writer loop-config coordination; extend the configmap and deployment label-isolation suites; and update the README and AGENTS.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
97b01f1 to
1a0ac8b
Compare
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1a0ac8b9ca
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "Codex (@codex) review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "Codex (@codex) address that feedback".
| BRAINSTORE_ASYNC_SCORING_OBJECTS: {{ .Values.skipPgForBrainstoreObjects | quote }} | ||
| BRAINSTORE_LOG_AUTOMATIONS_OBJECTS: {{ .Values.skipPgForBrainstoreObjects | quote }} | ||
| {{- end }} | ||
| {{- if gt (int .Values.brainstore.automationwriter.replicas) 0 }} |
There was a problem hiding this comment.
Treat absent automation-writer values as disabled
On upgrades from a pre-change chart that use helm upgrade --reuse-values, the retained values contain no brainstore.automationwriter map; Helm's upgrade help confirms that this mode reuses the previous release's values and merges only supplied overrides. Evaluating .replicas here therefore hits a missing intermediate map and aborts rendering before the upgrade; use a missing-safe default or guard here and in the new automation-writer templates so absence retains the documented disabled behavior.
AGENTS.md reference: AGENTS.md:L85-L87
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Jeff McCollum (@jeffmccollum) I think this is worth making an adjustment for
| storageClassName: local | ||
| resources: | ||
| requests: | ||
| storage: {{ required "brainstore.automationwriter.volume.size must be set" .Values.brainstore.automationwriter.volume.size | quote }} |
There was a problem hiding this comment.
Avoid requiring storage for a zero-replica pool
For Azure releases with the Container Storage driver enabled, this required expression runs even when the optional pool remains at its default replicas: 0. Existing Azure values files necessarily lack this newly introduced size, and the chart default is empty, so an otherwise unchanged upgrade fails to render unless operators configure storage for a disabled workload; only require the size when the pool is enabled, or omit the disabled Deployment.
AGENTS.md reference: AGENTS.md:L85-L87
Useful? React with 👍 / 👎.
Summary
Adds an optional Automation Writer Brainstore pool — a dedicated writer that handles only the automations writer loop, isolating automation processing from the regular writer pool. Disabled by default (
replicas: 0), so existing deployments are unaffected.Details
brainstore-automationwriterDeployment + ConfigMap (writer mode). No Service — nothing routes to the pool by URL, so it exposes only a containerport.BRAINSTORE_WRITER_LOOP_CONFIG: the pool runsinclude:automations, andbrainstore-writergetsexclude:automationswhenautomationwriter.replicas > 0.ci/values-azure.yaml, fixtures, unit tests, label-isolation suites, README, andAGENTS.mdupdated.Validation
./test.shpasses: 341 unit tests, multi-cloud rendering, andhelm lint.🤖 Generated with Claude Code
Co-authored by StarfolkAI (@starfolkai)[bot]