diff --git a/README.md b/README.md index 5ec78fd..348ec1b 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/braintrust/README.md b/braintrust/README.md index a912b70..7194ef0 100644 --- a/braintrust/README.md +++ b/braintrust/README.md @@ -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. diff --git a/braintrust/examples/aws-eks-quarantine/values.yaml b/braintrust/examples/aws-eks-quarantine/values.yaml new file mode 100644 index 0000000..7dafae1 --- /dev/null +++ b/braintrust/examples/aws-eks-quarantine/values.yaml @@ -0,0 +1,109 @@ +# Sample values for AWS EKS deployment with a quarantine VPC + +global: + orgName: "" + namespace: "braintrust" + +cloud: "aws" + +objectStorage: + aws: + brainstoreBucket: "" + responseBucket: "" + codeBundleBucket: "" + +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: "" + service.beta.kubernetes.io/aws-load-balancer-name: "" + service: + type: LoadBalancer + port: 8000 + portName: http + serviceAccount: + name: "braintrust-api" + awsRoleArn: "" + resources: + requests: + cpu: "4" + memory: "16Gi" + limits: + cpu: "8" + memory: "16Gi" + extraEnvVars: + - name: QUARANTINE_INVOKE_ROLE + value: "" + - name: QUARANTINE_FUNCTION_ROLE + value: "" + - name: QUARANTINE_REGION + value: "" + - name: QUARANTINE_PRIVATE_SUBNET_1_ID + value: "" + - name: QUARANTINE_PRIVATE_SUBNET_2_ID + value: "" + - name: QUARANTINE_PRIVATE_SUBNET_3_ID + value: "" + - name: QUARANTINE_PUB_PRIVATE_VPC_DEFAULT_SECURITY_GROUP + value: "" + - name: QUARANTINE_PUB_PRIVATE_VPC_ID + value: "" + # nodeSelector: + # topology.kubernetes.io/zone: us-east-1a + +brainstore: + serviceAccount: + name: "brainstore" + awsRoleArn: "" + 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" diff --git a/braintrust/examples/aws-eks/values.yaml b/braintrust/examples/aws-eks/values.yaml new file mode 100644 index 0000000..9dc7141 --- /dev/null +++ b/braintrust/examples/aws-eks/values.yaml @@ -0,0 +1,90 @@ +# Sample values for AWS EKS deployment without a quarantine VPC + +global: + orgName: "" + namespace: "braintrust" + +cloud: "aws" + +objectStorage: + aws: + brainstoreBucket: "" + responseBucket: "" + codeBundleBucket: "" + +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: "" + service.beta.kubernetes.io/aws-load-balancer-name: "" + replicas: 4 + service: + type: LoadBalancer + port: 8000 + portName: http + serviceAccount: + name: "braintrust-api" + awsRoleArn: "" + # 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: "" + 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"