Environment: Configuration
Setup Your Customer Folder
Before configuring, you need to create your customer-specific deployment folder:
- Navigate to the arena-terragrunt directory:
cd ./utils/arena-terragrunt/ - Copy the airbnb folder:
cp -r airbnb your-customer-nameReplace
your-customer-namewith your actual customer name (e.g.,acme-corp,demo-2024). - Navigate to your new customer folder:
cd your-customer-name
💡 Note: For a hybrid approach (without VSCode Online/EKS), remove the
eks-clusterfolder from your customer directory after copying.
All subsequent configuration and deployment commands will be run from this customer folder.
Configuration Overview
All configuration is centralized in the config.yaml file in your customer folder. This single file controls all aspects of your deployment including MongoDB Atlas, AWS/EKS, and workshop scenario settings.
💡 Note: The HCL files (
root.hcl,terragrunt.hcl,atlas-cluster/terragrunt.hcl,eks-cluster/terragrunt.hcl) automatically read from this central configuration file, so you don’t need to edit them individually.
📦 Config Backup: Every time you run
terragrunt applyfrom the customer directory, yourconfig.yamlfile is automatically backed up to S3 ats3://mongodb-arena/terragrunt/<customer-name>/config.yaml.
Required Configuration
Open config.yaml in your customer folder and update these required values:
Customer & Domain
customer.name: Replace"customer"with your customer name.domain.email: Replace"arena@mongodb.com"with your domain contact email.
MongoDB Atlas (Required)
mongodb.public_key: Replace"PUBLIC_KEY"with your MongoDB Atlas public API key.mongodb.private_key: Replace"PRIVATE_KEY"with your MongoDB Atlas private API key (requiresOrganization Project Creatorprivileges).mongodb.project_name: Replace"PROJECT_NAME"with your desired Atlas project name.mongodb.cluster_name: Modify if needed (default:"arena-cluster").mongodb.cluster_region: Modify if needed (default:"US_EAST_2").mongodb.instance_size: Modify if needed (default:"M30").mongodb.additional_users_count: Number of additional unassigned users to create beyond those inuser_list.csv(default:0).mongodb.create_indexes: Set totrueto create indexes during deployment, orfalseto skip index creation (default:false).mongodb.database_admin_password: Password for the database admin user (default:"MongoArenaAdminDummy").mongodb.customer_user_password: Password for customer users (default:"MongoArenaDummy").
AWS Configuration (Required)
aws.profile: AWS profile to use for authentication (default:"Solution-Architects.User-979559056307").aws.region: AWS region for EKS cluster (default:"us-east-2").
Workshop Scenario Configuration (for EKS deployments)
The scenario section in config.yaml controls your workshop setup:
repositoryandbranch: GitHub repository and branch to use for the workshopdatabase: Enable MongoDB and/or PostgreSQLllm: LLM configuration including provider, model, and proxy settingsprovider: Options are"anthropic"or"openai"(default:"openai")model: Options are"claude-3-haiku"or"gpt-5-chat"(default:"gpt-5-chat")
portal: Portal configuration settingsadmin_password: Password to access the admin portal (e.g.,"ArenaAdminPassword123!")
leaderboard: Leaderboard configurationtype: Set to"timed"or"score"based (default:"timed")close_on: (Optional) ISO 8601 date when leaderboard freezes in UTC (e.g.,"2025-11-04T16:03:00.000Z"). When set, submissions after this time will not count. Can be managed via the Admin Portal.prizes: Configure prizes promotions for the workshopenabled: Set totrueto enable prizes featureswhere: Location or context for the prizes (e.g.,"Happy Hour")when: Time for the prizes (e.g.,"4:30 PM")
instructions.sections: Define workshop sections with titles and content paths
Note: You can leave the
contentarrays empty ([]) for sections if you don’t want to include specific content.
Note: For hybrid deployments (without EKS/VSCode Online), skip the scenario configuration section.
Additional Atlas Configuration (Optional)
If you need more granular control over Atlas settings:
- Navigate to
customer/atlas-cluster. - Update
user_list.csvwith SA names for testing the environment (not for workshop attendees). - Modify variables in
terragrunt.hclif necessary (e.g., MongoDB version, auto-scaling settings). - By default, a new Atlas Project is created. To use an existing project instead, the project must be imported before applying.
- If you need to invite users, uncomment
mongodbatlas_project_invitationin the Terraform files. By default, no invitations are sent.
🕐 Note: The EKS cluster expires after one week by default.
Scenario Instructions Examples
Example 1: Full Instructions Configuration
This includes all workshop sections with empty content arrays, allowing flexibility to add specific content:
instructions:
base: "navigation-guided.yml"
sections:
- title: "Workshop Introduction"
content: []
- title: "Workshop Onboarding"
content:
- "/guided/"
- "/guided/vscode/"
- "/guided/collection/"
- "/guided/leaderboard/"
- title: "CRUD Operations"
content: []
- title: "Aggregations"
content: []
- title: "Search"
content: []
- title: "Vector Search"
content: []
⚠️ Indentation Alert: YAML is indentation-sensitive. Make sure to maintain the exact indentation shown above (2 spaces per level). Incorrect indentation will cause deployment errors.
Example 2: Targeted Instructions Configuration
This includes specific workshop content paths for a curated experience:
⚠️ Important: If your workshop includes Search or Vector Search sections (like this example), you must enable index creation in your
config.yaml:mongodb: create_indexes: trueThis ensures that the necessary search indexes and vector search indexes are created during deployment.
instructions:
base: "navigation-guided.yml"
sections:
- title: "Workshop Introduction"
content:
- "/"
- "/resources/"
- title: "Workshop Onboarding"
content:
- "/guided/vscode-nop/"
- "/guided/collection/"
- title: "CRUD Operations"
content:
- "/crud/1/"
- "/crud/2/"
- "/crud/4/"
- "/crud/6/"
- "/crud/7/"
- title: "Aggregations"
content:
- "/pipeline/2/"
- title: "Search"
content:
- "/search/1/"
- title: "Vector Search"
content:
- "/vector-search/1/"
⚠️ Indentation Alert: YAML is indentation-sensitive. Make sure to maintain the exact indentation shown above (2 spaces per level). Incorrect indentation will cause deployment errors.
💡 Key Differences:
- Full version has empty content arrays (
[]) for sections, giving you flexibility to customize all sections- Targeted version specifies exact workshop exercises for a focused, curated workshop experience
✅ Configuration complete? Head to Deployment: Deploy and Run to deploy your environment!