Files
smom-dbis-138/scripts/deployment/generate-phase2-tfvars.sh
defiQUG 1fb7266469 Add Oracle Aggregator and CCIP Integration
- Introduced Aggregator.sol for Chainlink-compatible oracle functionality, including round-based updates and access control.
- Added OracleWithCCIP.sol to extend Aggregator with CCIP cross-chain messaging capabilities.
- Created .gitmodules to include OpenZeppelin contracts as a submodule.
- Developed a comprehensive deployment guide in NEXT_STEPS_COMPLETE_GUIDE.md for Phase 2 and smart contract deployment.
- Implemented Vite configuration for the orchestration portal, supporting both Vue and React frameworks.
- Added server-side logic for the Multi-Cloud Orchestration Portal, including API endpoints for environment management and monitoring.
- Created scripts for resource import and usage validation across non-US regions.
- Added tests for CCIP error handling and integration to ensure robust functionality.
- Included various new files and directories for the orchestration portal and deployment scripts.
2025-12-12 14:57:48 -08:00

80 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env bash
# Generate Phase 2 terraform.tfvars from Phase 1 outputs and .env file
# Usage: ./generate-phase2-tfvars.sh [output_file]
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
OUTPUT_FILE="${1:-${PROJECT_ROOT}/terraform/phases/phase2/terraform.tfvars}"
# Load .env if it exists
if [ -f "${PROJECT_ROOT}/.env" ]; then
source "${PROJECT_ROOT}/.env"
fi
echo "Generating Phase 2 terraform.tfvars..."
echo "Output file: ${OUTPUT_FILE}"
# Check if we're in Phase 1 directory
cd "${PROJECT_ROOT}/terraform/phases/phase1"
# Get Phase 1 outputs
if ! terraform output -json phase1_us_regions > /tmp/phase1_outputs.json 2>/dev/null; then
echo "Error: Cannot get Phase 1 outputs. Ensure Phase 1 is deployed and terraform is initialized."
exit 1
fi
# Extract VM information from Phase 1 outputs
PHASE1_DATA=$(terraform output -json phase1_us_regions)
# Use .env variables with fallbacks
ENVIRONMENT="${ENVIRONMENT:-${TF_VAR_environment:-prod}}"
VM_ADMIN_USERNAME="${VM_ADMIN_USERNAME:-${TF_VAR_vm_admin_username:-besuadmin}}"
SSH_PRIVATE_KEY_PATH="${SSH_PRIVATE_KEY_PATH:-${TF_VAR_ssh_private_key_path:-}}"
if [ -z "$SSH_PRIVATE_KEY_PATH" ]; then
echo "Warning: SSH_PRIVATE_KEY_PATH not set. Please set it in .env or provide as variable."
echo "Example: SSH_PRIVATE_KEY_PATH=/path/to/private/key"
fi
# Generate terraform.tfvars
cat > "${OUTPUT_FILE}" <<EOF
# Phase 2 Terraform Variables
# Generated from Phase 1 outputs and .env file
# Generated: $(date)
environment = "${ENVIRONMENT}"
vm_admin_username = "${VM_ADMIN_USERNAME}"
ssh_private_key_path = "${SSH_PRIVATE_KEY_PATH}"
# Phase 1 VM information (auto-generated from Phase 1 outputs)
phase1_vm_info = {
EOF
# Extract region data and generate tfvars
echo "$PHASE1_DATA" | jq -r 'to_entries[] |
" \(.key) = {
vm_names = \(.value.vm_names | tojson)
private_ips = \(.value.private_ips | tojson)
public_ips = \(.value.public_ips | tojson)
resource_group = \"\(.value.resource_group)\"
region = \"\(.value.region)\"
}"' >> "${OUTPUT_FILE}"
cat >> "${OUTPUT_FILE}" <<EOF
}
# Docker compose source path (relative to this file)
docker_compose_source_path = "../../../docker/phase2"
EOF
echo "✅ Phase 2 terraform.tfvars generated successfully!"
echo "File: ${OUTPUT_FILE}"
echo ""
echo "Next steps:"
echo "1. Review the generated file: cat ${OUTPUT_FILE}"
echo "2. Update SSH_PRIVATE_KEY_PATH in .env if needed"
echo "3. Deploy Phase 2: cd terraform/phases/phase2 && terraform apply"