Documentation Index
Fetch the complete documentation index at: https://enterprise-docs.crewai.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Use this guide to provision baseline AWS infrastructure for CrewAI Platform with Terraform, then continue with Helm installation. This flow aligns with the AWS Terraform example in the installer and covers:- Amazon EKS cluster
- Aurora PostgreSQL
- S3 buckets for platform data and logs
- ECR repository for crew image builds
- Cluster add-ons required by the platform
Prerequisites
- Terraform
>= 1.13.4 - AWS CLI configured for the target account and region
kubectland Helm installed- AWS permissions to create networking, EKS, RDS, IAM, S3, ECR, and Secrets Manager resources
Step 1: Configure Terraform State
From yourcrewai-installer checkout, open terraform/examples/aws/main.tf.
The example uses an S3 backend for remote state:
- Create the state bucket before running
terraform init. - For temporary testing only, you can comment out the backend block and use local state.
Step 2: Configure Variables
regionenvironments3_data_bucket_name(globally unique)s3_logs_bucket_name(globally unique)
- The IAM identity running Terraform
- The public IP running Terraform (added to cluster access CIDRs)
admin_iam_principalscluster_endpoint_public_access_cidrs
Step 3: Apply Infrastructure
kubectl using the Terraform output command:
Step 4: Map Terraform Outputs to Helm Values
Use Terraform outputs to populate yourmy-values.yaml for chart install:
database_endpoint->envVars.DB_HOSTs3_data_bucket->envVars.AWS_BUCKETecr_repository_url->envVars.CREW_IMAGE_REGISTRY_OVERRIDE
envVars.APPLICATION_HOST- ingress class and TLS settings
- authentication provider settings
Step 5: Destroy Safely (When Needed)
Beforeterraform destroy, delete Kubernetes Ingress resources managed by AWS Load Balancer Controller.
If Ingress resources remain, destroy can hang while AWS load balancer dependencies are still attached.
Troubleshooting Notes
- If
terraform initfails, confirm your backend bucket exists and backend values are correct. - If
kubectlcannot reach the cluster API, verify your public IP is authorized. - If chart deployment cannot push crew images, verify
envVars.CREW_IMAGE_REGISTRY_OVERRIDEpoints to a writable ECR registry.
