Skip to content
Open
Show file tree
Hide file tree
Changes from 3 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: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ helm upgrade --install \

## Prerequisites

Before installing the Braintrust Helm chart, ensure you have run the appropriate braintrust terraform module [Google](https://github.com/braintrustdata/terraform-google-braintrust-data-plane) or [Azure](https://github.com/braintrustdata/terraform-azure-braintrust-data-plane) to deploy the base infrastructure.
Before installing the Braintrust Helm chart, ensure you have run the appropriate Braintrust Terraform module for [AWS](https://github.com/braintrustdata/terraform-aws-braintrust-data-plane), [Google](https://github.com/braintrustdata/terraform-google-braintrust-data-plane), or [Azure](https://github.com/braintrustdata/terraform-azure-braintrust-data-plane) to deploy the base infrastructure.

See the [Braintrust Helm Chart](./braintrust/README.md) for more details.
5 changes: 5 additions & 0 deletions braintrust/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,3 +192,8 @@ This version also adds first-class `brainstoreWalFooterVersion` support and auto
## Example Values Files

Example values files for different cloud providers and configurations are located in the `examples/` folder.

- `examples/aws-eks/values.yaml`: AWS EKS deployment without a quarantine VPC. User-defined functions execute in the API pod. Includes the API service annotations needed for the Terraform-managed CloudFront plus adopted internal NLB path.
- `examples/aws-eks-quarantine/values.yaml`: AWS EKS deployment with user-defined functions routed into the quarantine VPC. Includes the API service annotations needed for the Terraform-managed CloudFront plus adopted internal NLB path.
- `examples/google-autopilot/values.yaml`: GKE Autopilot deployment.
- `examples/google-standard/values.yaml`: GKE Standard deployment.
109 changes: 109 additions & 0 deletions braintrust/examples/aws-eks-quarantine/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
# Sample values for AWS EKS deployment with a quarantine VPC

global:
orgName: "<your Braintrust org name>"
namespace: "braintrust"

cloud: "aws"

objectStorage:
aws:
brainstoreBucket: "<your brainstore bucket name>"
responseBucket: "<your response bucket name>"
codeBundleBucket: "<your code bundle bucket name>"

api:
name: "braintrust-api"
replicas: 4
# Disable in-pod code execution so user-defined functions run in the quarantine VPC.
allowCodeFunctionExecution: false
annotations:
service:
# Internal NLB via the AWS Load Balancer Controller.
# If you are using the terraform-aws-braintrust-data-plane EKS CloudFront path,
# set these so the controller adopts the pre-created internal NLB.
service.beta.kubernetes.io/aws-load-balancer-scheme: "internal"
service.beta.kubernetes.io/aws-load-balancer-type: "external"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "instance"
service.beta.kubernetes.io/aws-load-balancer-security-groups: "<your pre-created NLB security group ID>"
service.beta.kubernetes.io/aws-load-balancer-name: "<your pre-created NLB name>"
service:
type: LoadBalancer
port: 8000
portName: http
serviceAccount:
name: "braintrust-api"
awsRoleArn: "<your Braintrust API IAM role ARN>"
resources:
requests:
cpu: "4"
memory: "16Gi"
limits:
cpu: "8"
memory: "16Gi"
extraEnvVars:
- name: QUARANTINE_INVOKE_ROLE
value: "<your quarantine invoke role ARN>"
- name: QUARANTINE_FUNCTION_ROLE
value: "<your quarantine function role ARN>"
- name: QUARANTINE_REGION
value: "<your AWS region>"
- name: QUARANTINE_PRIVATE_SUBNET_1_ID
value: "<your quarantine private subnet 1 ID>"
- name: QUARANTINE_PRIVATE_SUBNET_2_ID
value: "<your quarantine private subnet 2 ID>"
- name: QUARANTINE_PRIVATE_SUBNET_3_ID
value: "<your quarantine private subnet 3 ID>"
- name: QUARANTINE_PUB_PRIVATE_VPC_DEFAULT_SECURITY_GROUP
value: "<your quarantine Lambda security group ID>"
- name: QUARANTINE_PUB_PRIVATE_VPC_ID
value: "<your quarantine VPC ID>"
Comment thread
jeffmccollum marked this conversation as resolved.
Outdated
# nodeSelector:
# topology.kubernetes.io/zone: us-east-1a

brainstore:
serviceAccount:
name: "brainstore"
awsRoleArn: "<your Brainstore IAM role ARN>"
reader:
name: "brainstore-reader"
replicas: 2
service:
type: ClusterIP
port: 4000
portName: http
resources:
requests:
cpu: "16"
memory: "32Gi"
limits:
cpu: "16"
memory: "32Gi"
fastreader:
name: "brainstore-fastreader"
replicas: 2
service:
type: ClusterIP
port: 4000
portName: http
resources:
requests:
cpu: "16"
memory: "32Gi"
limits:
cpu: "16"
memory: "32Gi"
writer:
name: "brainstore-writer"
replicas: 1
service:
type: ClusterIP
port: 4000
portName: http
resources:
requests:
cpu: "32"
memory: "64Gi"
limits:
cpu: "32"
memory: "64Gi"
90 changes: 90 additions & 0 deletions braintrust/examples/aws-eks/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
# Sample values for AWS EKS deployment without a quarantine VPC

global:
orgName: "<your Braintrust org name>"
namespace: "braintrust"

cloud: "aws"

objectStorage:
aws:
brainstoreBucket: "<your brainstore bucket name>"
responseBucket: "<your response bucket name>"
codeBundleBucket: "<your code bundle bucket name>"

api:
name: "braintrust-api"
annotations:
service:
# Internal NLB via the AWS Load Balancer Controller.
# If you are using the terraform-aws-braintrust-data-plane EKS CloudFront path,
# set these so the controller adopts the pre-created internal NLB.
service.beta.kubernetes.io/aws-load-balancer-scheme: "internal"
service.beta.kubernetes.io/aws-load-balancer-type: "external"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "instance"
service.beta.kubernetes.io/aws-load-balancer-security-groups: "<your pre-created NLB security group ID>"
service.beta.kubernetes.io/aws-load-balancer-name: "<your pre-created NLB name>"
replicas: 4
service:
type: LoadBalancer
port: 8000
portName: http
serviceAccount:
name: "braintrust-api"
awsRoleArn: "<your Braintrust API IAM role ARN>"
# Keep code execution enabled when not using a quarantine VPC.
allowCodeFunctionExecution: true
resources:
requests:
cpu: "4"
memory: "16Gi"
limits:
cpu: "8"
memory: "16Gi"

brainstore:
serviceAccount:
name: "brainstore"
awsRoleArn: "<your Brainstore IAM role ARN>"
reader:
name: "brainstore-reader"
replicas: 2
service:
type: ClusterIP
port: 4000
portName: http
resources:
requests:
cpu: "16"
memory: "32Gi"
limits:
cpu: "16"
memory: "32Gi"
fastreader:
name: "brainstore-fastreader"
replicas: 2
service:
type: ClusterIP
port: 4000
portName: http
resources:
requests:
cpu: "16"
memory: "32Gi"
limits:
cpu: "16"
memory: "32Gi"
writer:
name: "brainstore-writer"
replicas: 1
service:
type: ClusterIP
port: 4000
portName: http
resources:
requests:
cpu: "32"
memory: "64Gi"
limits:
cpu: "32"
memory: "64Gi"
Loading