From 2bb87b67e93053b4bb33381a2ba666182afef6ee Mon Sep 17 00:00:00 2001 From: Jeff McCollum Date: Thu, 22 Jan 2026 17:54:15 -0600 Subject: [PATCH 1/5] add gcp autopilot example --- braintrust/README.md | 8 +- .../sample-values/gke-autopilot-values.yaml | 112 ++++++++++++++++++ braintrust/values.yaml | 18 +-- 3 files changed, 127 insertions(+), 11 deletions(-) create mode 100644 braintrust/sample-values/gke-autopilot-values.yaml diff --git a/braintrust/README.md b/braintrust/README.md index 8c37a5f..c29115e 100644 --- a/braintrust/README.md +++ b/braintrust/README.md @@ -15,8 +15,8 @@ The `braintrust-secrets` secret must contain the following keys: | `BRAINSTORE_LICENSE_KEY` | Brainstore license key | Valid Brainstore license key from the Braintrust Data Plane settings page | | `FUNCTION_SECRET_KEY` | Random string for encrypting function secrets | Random string | | `AZURE_STORAGE_CONNECTION_STRING` | Azure storage connection string | Valid Azure storage connection string (only required if `cloud` is `azure`) | -| `GCS_ACCESS_KEY_ID` | Google HMAC Access ID string | Valid S3 API Key Id (only required if `cloud` is `google`) | -| `GCS_SECRET_ACCESS_KEY` | Google HMAC Secret string | Valid S3 Secret string (only required if `cloud` is `google`) | +| `GCS_ACCESS_KEY_ID` | Google HMAC Access ID string | Valid S3 API Key Id (only required if `cloud` is `google` and if `enableGcsAuth` is `false`) | +| `GCS_SECRET_ACCESS_KEY` | Google HMAC Secret string | Valid S3 Secret string (only required if `cloud` is `google` and if `enableGcsAuth` is `false`) | ## Azure Key Vault Driver Integration @@ -159,3 +159,7 @@ This Helm chart includes comprehensive automated unit tests. ## Breaking Changes With version 2 of this helm, the Brainstore pods are split into Readers and Writers improving performance and the ability to independently scale for more read operations or write operations. For existing customers that have deployed our Helm or via other means on Kubernetes, please update your override values file or deployment to match this change. This will result in no data loss, but will be a brief downtime as the existing Brainstore Pods are removed and new Brainstore Pods for Reading and Writing are launched. + +## Example Values Files + +Example values files for different cloud providers and configurations are located in the `sample-values/` folder. diff --git a/braintrust/sample-values/gke-autopilot-values.yaml b/braintrust/sample-values/gke-autopilot-values.yaml new file mode 100644 index 0000000..98ed99a --- /dev/null +++ b/braintrust/sample-values/gke-autopilot-values.yaml @@ -0,0 +1,112 @@ +# Sample values for GKE Autopilot deployment + +# Global configs +global: + orgName: "" + namespace: "braintrust" + +# Cloud provider configuration +cloud: "google" + +# Google Cloud specific configuration for Autopilot +google: + mode: "autopilot" + autopilotMachineFamily: "c4" + +objectStorage: + google: + brainstoreBucket: "" + apiBucket: "" + +api: + name: "braintrust-api" + annotations: + service: + networking.gke.io/load-balancer-type: "Internal" + replicas: 2 + # Uncomment the following section to use usee a different image or tag from the version in the Helm release + #image: + #repository: public.ecr.aws/braintrust/standalone-api + #tag: "" + service: + type: LoadBalancer + port: 8000 + portName: http + serviceAccount: + name: "braintrust-api" + googleServiceAccount: "" + # this is for native GCS authentication via workload identity (defaults to false for S3-compatible access) Requires v1.1.31 or later of the dataplane to be set to true. + enableGcsAuth: false + resources: + requests: + cpu: "2" + memory: "4Gi" + limits: + cpu: "4" + memory: "6Gi" + extraEnvVars: + # For S3-compatible GCS Storage, set the AWS_REGION environment variable to the region of your GCS bucket + - name: AWS_REGION + value: "us-central1" + +# Brainstore configuration (split into reader and writer) +brainstore: + serviceAccount: + name: "brainstore" + googleServiceAccount: "" + image: + # Uncomment the following section to use usee a different image or tag from the version in the Helm release + #image: + #repository: public.ecr.aws/braintrust/brainstore + #tag: "" + # New deployments should use objectStorage as the locks backend. Existing deployments should remain on redis at this time. + locksBackend: "objectStorage" + + # Brainstore Reader configuration + reader: + name: "brainstore-reader" + replicas: 2 + service: + name: "" + type: ClusterIP + port: 4000 + portName: http + resources: + requests: + cpu: "16" + memory: "32Gi" + limits: + cpu: "20" + memory: "40Gi" + cacheDir: "/mnt/tmp/brainstore" + objectStoreCacheMemoryLimit: "1Gi" + objectStoreCacheFileSize: "100Gi" + verbose: true + volume: + size: "200Gi" + extraEnvVars: + + # Brainstore Writer configuration + writer: + name: "brainstore-writer" + replicas: 1 + service: + name: "" + type: ClusterIP + port: 4000 + portName: http + resources: + requests: + cpu: "32" + memory: "64Gi" + limits: + cpu: "40" + memory: "80Gi" + cacheDir: "/mnt/tmp/brainstore" + objectStoreCacheMemoryLimit: "1Gi" + objectStoreCacheFileSize: "100Gi" + verbose: true + volume: + size: "200Gi" + extraEnvVars: + \ No newline at end of file diff --git a/braintrust/values.yaml b/braintrust/values.yaml index 1328cbc..4f7d8f6 100644 --- a/braintrust/values.yaml +++ b/braintrust/values.yaml @@ -102,7 +102,7 @@ api: memory: "4Gi" limits: cpu: "4" - memory: "8Gi" + memory: "6Gi" # Allow running user generated code functions (e.g. scorers/tools) allowCodeFunctionExecution: true # Brainstore backfill configuration. These defaults are fine for most cases. @@ -202,11 +202,11 @@ brainstore: portName: http resources: requests: - cpu: "4" - memory: "8Gi" + cpu: "16" + memory: "32Gi" limits: - cpu: "8" - memory: "16Gi" + cpu: "20" + memory: "40Gi" cacheDir: "/mnt/tmp/brainstore" objectStoreCacheMemoryLimit: "1Gi" objectStoreCacheFileSize: "50Gi" @@ -238,11 +238,11 @@ brainstore: portName: http resources: requests: - cpu: "8" - memory: "16Gi" + cpu: "32" + memory: "64Gi" limits: - cpu: "16" - memory: "32Gi" + cpu: "40" + memory: "80Gi" cacheDir: "/mnt/tmp/brainstore" objectStoreCacheMemoryLimit: "1Gi" objectStoreCacheFileSize: "50Gi" From 5f3cc66f6dfaa3b69d0e7b3cedb799e44e5ecc4f Mon Sep 17 00:00:00 2001 From: Jeff McCollum Date: Thu, 22 Jan 2026 17:59:47 -0600 Subject: [PATCH 2/5] fix image --- braintrust/sample-values/gke-autopilot-values.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/braintrust/sample-values/gke-autopilot-values.yaml b/braintrust/sample-values/gke-autopilot-values.yaml index 98ed99a..7c82753 100644 --- a/braintrust/sample-values/gke-autopilot-values.yaml +++ b/braintrust/sample-values/gke-autopilot-values.yaml @@ -54,7 +54,6 @@ brainstore: serviceAccount: name: "brainstore" googleServiceAccount: "" - image: # Uncomment the following section to use usee a different image or tag from the version in the Helm release #image: #repository: public.ecr.aws/braintrust/brainstore From 5e0bc0602cbc472d57d9f224a2db132f8896ef19 Mon Sep 17 00:00:00 2001 From: Jeff McCollum Date: Thu, 22 Jan 2026 18:18:39 -0600 Subject: [PATCH 3/5] rename --- braintrust/{sample-values => examples}/gke-autopilot-values.yaml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename braintrust/{sample-values => examples}/gke-autopilot-values.yaml (100%) diff --git a/braintrust/sample-values/gke-autopilot-values.yaml b/braintrust/examples/gke-autopilot-values.yaml similarity index 100% rename from braintrust/sample-values/gke-autopilot-values.yaml rename to braintrust/examples/gke-autopilot-values.yaml From 315edf69805f0bfc177073ba61ed077b4ed1f66c Mon Sep 17 00:00:00 2001 From: Jeff McCollum Date: Thu, 22 Jan 2026 18:19:23 -0600 Subject: [PATCH 4/5] update readme --- braintrust/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/braintrust/README.md b/braintrust/README.md index c29115e..bf3b4bb 100644 --- a/braintrust/README.md +++ b/braintrust/README.md @@ -162,4 +162,4 @@ With version 2 of this helm, the Brainstore pods are split into Readers and Writ ## Example Values Files -Example values files for different cloud providers and configurations are located in the `sample-values/` folder. +Example values files for different cloud providers and configurations are located in the `examples/` folder. From b58f593adaaf871604913ff29682528b84314822 Mon Sep 17 00:00:00 2001 From: Jeff McCollum Date: Thu, 22 Jan 2026 18:21:12 -0600 Subject: [PATCH 5/5] update base values in test fixture --- braintrust/tests/__fixtures__/base-values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/braintrust/tests/__fixtures__/base-values.yaml b/braintrust/tests/__fixtures__/base-values.yaml index b485e11..2e1e039 100644 --- a/braintrust/tests/__fixtures__/base-values.yaml +++ b/braintrust/tests/__fixtures__/base-values.yaml @@ -37,7 +37,7 @@ api: memory: "4Gi" limits: cpu: "4" - memory: "8Gi" + memory: "6Gi" allowCodeFunctionExecution: true backfillDisableHistorical: false backfillDisableNonhistorical: false