@@ -18,7 +18,15 @@ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
1818PROJECT_ROOT=" $( cd " $SCRIPT_DIR /.." && pwd) "
1919cd " $PROJECT_ROOT "
2020
21- echo -e " ${GREEN} 🚀 OpenContext Deployment${NC} "
21+ # Environment: staging (default) or prod
22+ ENVIRONMENT=" ${1:- staging} "
23+ if [ " $ENVIRONMENT " != " staging" ] && [ " $ENVIRONMENT " != " prod" ]; then
24+ echo -e " ${RED} ❌ Error: Invalid environment '${ENVIRONMENT} '${NC} "
25+ echo " Usage: $0 [staging|prod]"
26+ exit 1
27+ fi
28+
29+ echo -e " ${GREEN} 🚀 OpenContext Deployment [${ENVIRONMENT} ]${NC} "
2230echo " ================================"
2331echo " "
2432
@@ -172,17 +180,8 @@ print(config.get('aws', {}).get('region', 'us-east-1'))
172180EOF
173181)
174182
175- LAMBDA_NAME=$( python3 << 'EOF '
176- import yaml
177- with open('config.yaml', 'r') as f:
178- config = yaml.safe_load(f)
179- lambda_name = config.get('aws', {}).get('lambda_name', '')
180- if not lambda_name:
181- server_name = config.get('server_name', 'my-mcp-server')
182- lambda_name = server_name.lower().replace(' ', '-')
183- print(lambda_name)
184- EOF
185- )
183+ TFVARS_FILE=" terraform/aws/${ENVIRONMENT} .tfvars"
184+ LAMBDA_NAME=$( grep ' ^lambda_name' " $TFVARS_FILE " | sed ' s/.*=\s*"\(.*\)"/\1/' )
186185
187186echo -e " ${YELLOW} 📦 Step 2: Packaging Lambda code...${NC} "
188187
249248
250249# Plan first - validates configuration and catches errors before any changes
251250cd terraform/aws
251+
252+ # Select Terraform workspace: staging uses default, prod uses its own
253+ if [ " $ENVIRONMENT " = " prod" ]; then
254+ echo " Selecting Terraform workspace: boston-prod"
255+ terraform workspace select boston-prod 2> /dev/null || terraform workspace new boston-prod
256+ else
257+ echo " Selecting Terraform workspace: default"
258+ terraform workspace select default 2> /dev/null || true
259+ fi
260+
252261echo -e " ${YELLOW} 📋 Planning Terraform changes...${NC} "
253262if ! terraform plan \
254263 -out=tfplan \
255- -var= " lambda_name= $LAMBDA_NAME " \
264+ -var-file= " ${ENVIRONMENT} .tfvars " \
256265 -var=" aws_region=$AWS_REGION " \
257266 -var=" config_file=config.yaml" ; then
258267 echo -e " ${RED} ❌ Terraform plan failed - aborting deployment${NC} "
262271# Require explicit approval before deploying
263272echo " "
264273echo -e " ${YELLOW} ⚠️ Deployment will apply the planned changes to AWS.${NC} "
265- echo -e " Lambda: ${LAMBDA_NAME} "
266- echo -e " Region: ${AWS_REGION} "
274+ echo -e " Environment: ${ENVIRONMENT} "
275+ echo -e " Lambda: ${LAMBDA_NAME} "
276+ echo -e " Region: ${AWS_REGION} "
267277echo " "
268278read -r -p " Do you want to proceed with deployment? (yes/no): " CONFIRM
269279if [ " $CONFIRM " != " yes" ] && [ " $CONFIRM " != " y" ]; then
0 commit comments