Skip to content

Add Brainstore Automation Writer pool to Helm chart - #105

Open
Jeff McCollum (jeffmccollum) wants to merge 1 commit into
mainfrom
add-brainstore-fastwriter
Open

Jeff McCollum (jeffmccollum) wants to merge 1 commit into
mainfrom
add-brainstore-fastwriter

Conversation

@jeffmccollum

@jeffmccollum Jeff McCollum (jeffmccollum) commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

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

  • New brainstore-automationwriter Deployment + ConfigMap (writer mode). No Service — nothing routes to the pool by URL, so it exposes only a container port.
  • Driven by BRAINSTORE_WRITER_LOOP_CONFIG: the pool runs include:automations, and brainstore-writer gets exclude:automations when automationwriter.replicas > 0.
  • Values, both google-autopilot examples, ci/values-azure.yaml, fixtures, unit tests, label-isolation suites, README, and AGENTS.md updated.

Validation

./test.sh passes: 341 unit tests, multi-cloud rendering, and helm lint.

🤖 Generated with Claude Code

Co-authored by StarfolkAI (@starfolkai)[bot]

@jeffmccollum Jeff McCollum (jeffmccollum) changed the title Add Brainstore Fast Writer pool to Helm chart Add Brainstore Automation Writer pool to Helm chart Oct 2, 2026
@jeffmccollum
Jeff McCollum (jeffmccollum) force-pushed the add-brainstore-fastwriter branch 2 times, most recently from b188ef3 to 97b01f1 Compare October 2, 2026 21:49
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>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-05T17:43:18.866915Z 1a0ac8b Draft marked ready
ℹ️ About Codex in GitHub

Your 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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 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 }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

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.

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 }}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge 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 👍 / 👎.

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.

2 participants