Skip to content
Closed
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
8 changes: 6 additions & 2 deletions braintrust/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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 `examples/` folder.
111 changes: 111 additions & 0 deletions braintrust/examples/gke-autopilot-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# Sample values for GKE Autopilot deployment

# Global configs
global:
orgName: "<your org name on Braintrust>"
namespace: "braintrust"

# Cloud provider configuration
cloud: "google"

# Google Cloud specific configuration for Autopilot
google:
mode: "autopilot"
autopilotMachineFamily: "c4"

objectStorage:
google:
brainstoreBucket: "<your brainstore bucket name>"
apiBucket: "<your api bucket name>"

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: "<your image tag>"
service:
type: LoadBalancer
port: 8000
portName: http
serviceAccount:
name: "braintrust-api"
googleServiceAccount: "<your Braintrust API Google service account>"
# 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: "<your Braintrust Brainstore Google service account>"
# 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: "<your image 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:

2 changes: 1 addition & 1 deletion braintrust/tests/__fixtures__/base-values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ api:
memory: "4Gi"
limits:
cpu: "4"
memory: "8Gi"
memory: "6Gi"
allowCodeFunctionExecution: true
backfillDisableHistorical: false
backfillDisableNonhistorical: false
Expand Down
18 changes: 9 additions & 9 deletions braintrust/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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"
Expand Down