Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions braintrust/ci/values-aws.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ api:
affinity: {}

brainstore:
automationwriter:
replicas: 0
serviceAccount:
name: "brainstore"
awsRoleArn: "arn:aws:iam::123456789012:role/test-role"
Expand Down
1 change: 1 addition & 0 deletions braintrust/ci/values-azure.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ brainstore:
volume:
size: "100Gi"
automationwriter:
replicas: 0
volume:
size: "200Gi"
writer:
Expand Down
2 changes: 2 additions & 0 deletions braintrust/ci/values-google.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ api:
affinity: {}

brainstore:
automationwriter:
replicas: 0
serviceAccount:
name: "brainstore"
googleServiceAccount: "test@project.iam.gserviceaccount.com"
Expand Down
2 changes: 2 additions & 0 deletions braintrust/ci/values-minimal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ api:
affinity: {}

brainstore:
automationwriter:
replicas: 0
serviceAccount:
name: "brainstore"
annotations: {}
Expand Down
4 changes: 2 additions & 2 deletions braintrust/examples/google-autopilot-cel/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -172,10 +172,10 @@ brainstore:

# Brainstore Automation Writer configuration
# Optional, dedicated automations writer pool with an internal Service when enabled.
# Disabled by default (replicas: 0); scale up to opt in.
# Defaults to two replicas; set replicas: 0 to use regular writers.
automationwriter:
name: "brainstore-automationwriter"
replicas: 0
replicas: 2
service:
name: ""
type: ClusterIP
Expand Down
4 changes: 2 additions & 2 deletions braintrust/examples/google-autopilot/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -152,10 +152,10 @@ brainstore:

# Brainstore Automation Writer configuration
# Optional, dedicated automations writer pool with an internal Service when enabled.
# Disabled by default (replicas: 0); scale up to opt in.
# Defaults to two replicas; set replicas: 0 to use regular writers.
automationwriter:
name: "brainstore-automationwriter"
replicas: 0
replicas: 2
service:
name: ""
type: ClusterIP
Expand Down
33 changes: 33 additions & 0 deletions braintrust/tests/brainstore-automationwriter-defaults_test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
suite: test default automation writer isolation
templates:
- brainstore-automationwriter-deployment.yaml
- brainstore-automationwriter-configmap.yaml
- brainstore-writer-configmap.yaml
- api-configmap.yaml
tests:
- it: should run two dedicated automation writers by default
template: brainstore-automationwriter-deployment.yaml
asserts:
- equal:
path: spec.replicas
value: 2
- it: should run only automations on the dedicated pool by default
template: brainstore-automationwriter-configmap.yaml
asserts:
- equal:
path: data.BRAINSTORE_WRITER_LOOP_CONFIG
value: include:automations
- it: should exclude automations from regular writers by default
template: brainstore-writer-configmap.yaml
asserts:
- equal:
path: data.BRAINSTORE_WRITER_LOOP_CONFIG
value: exclude:automations
- it: should route automation queries to the dedicated pool by default
template: api-configmap.yaml
release:
namespace: braintrust
asserts:
- equal:
path: data.BRAINSTORE_AUTOMATION_WRITER_URL
value: http://brainstore-automationwriter.braintrust:4000
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ templates:
- brainstore-startup-gate-rbac.yaml
tests:
- it: should preserve writer fallback when the pool is disabled
set:
brainstore.automationwriter.replicas: 0
template: api-configmap.yaml
asserts: &fallback
- isNull:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ templates:
- brainstore-automationwriter-service.yaml
tests:
- it: should omit the service when the pool is disabled
set:
brainstore.automationwriter.replicas: 0
asserts: &absent
- hasDocuments:
count: 0
Expand Down
3 changes: 3 additions & 0 deletions braintrust/tests/brainstore-startup-gate_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ tests:
set:
api.brainstoreStartupGate.enabled: true
api.image.tag: v2.15.0
brainstore.automationwriter.replicas: 0
brainstore.image.tag: v2.15.0
asserts:
- equal:
Expand Down Expand Up @@ -113,6 +114,7 @@ tests:
api.brainstoreStartupGate.enabled: true
api.brainstoreStartupGate.minimumVersion: v2.15.0
api.brainstoreStartupGate.image: registry.example/python:3.13
brainstore.automationwriter.replicas: 0
brainstore.image.tag: v2.15.1
asserts:
- equal:
Expand Down Expand Up @@ -265,6 +267,7 @@ tests:
set:
api.brainstoreStartupGate.enabled: true
api.image.tag: v2.15.0
brainstore.automationwriter.replicas: 0
brainstore.image.tag: v2.14.0
asserts:
- contains:
Expand Down
6 changes: 2 additions & 4 deletions braintrust/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -606,9 +606,7 @@ brainstore:
# When enabled (replicas > 0), the regular writer pool is automatically
# configured to exclude automations, and the API receives this pool's query
# endpoint. A compatible API release decides which queries use the endpoint.
# Disabled by default (replicas: 0), preserving existing deployments.
# This option is not recommended for most
# deployments; enable it only with guidance from Braintrust support.
# Defaults to two replicas. Set replicas: 0 to run automations on regular writers.
automationwriter:
name: "brainstore-automationwriter"
labels: {}
Expand All @@ -618,7 +616,7 @@ brainstore:
deployment: {}
service: {}
pod: {}
replicas: 0
replicas: 2

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 Keep automation writers opt-in until rollout is coordinated

When an install or upgrade adopts this new default, the chart immediately publishes BRAINSTORE_AUTOMATION_WRITER_URL and configures regular writers to exclude automations, but the API startup gate does not wait for the automation-writer Deployment. As documented in braintrust/README.md, enabling the pool during an upgrade can temporarily run automations on both pools, while an unschedulable new pool—each replica requests 32 CPU and 128Gi—can instead leave no Ready process handling automations after the regular-writer rollout. Keep the default at zero or add sequencing/readiness protection before enabling it automatically.

AGENTS.md reference: AGENTS.md:L99-L101

Useful? React with 👍 / 👎.

minReadySeconds: 0
progressDeadlineSeconds: 600
strategy:
Expand Down
Loading