Files
smom-dbis-138/terraform/modules/multi-region/region-config.tf
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

71 lines
1.7 KiB
HCL

# Region-specific configurations for multi-region deployment
variable "regions" {
description = "List of Azure regions for deployment"
type = list(string)
default = ["westeurope", "northeurope", "francecentral"]
}
variable "region_configs" {
description = "Region-specific configurations"
type = map(object({
validator_count = number
sentry_count = number
rpc_count = number
node_pool_size = string
storage_type = string
}))
default = {
eastus = {
validator_count = 2
sentry_count = 2
rpc_count = 2
node_pool_size = "Standard_D4s_v3"
storage_type = "Premium_LRS"
}
westus = {
validator_count = 2
sentry_count = 2
rpc_count = 2
node_pool_size = "Standard_D4s_v3"
storage_type = "Premium_LRS"
}
westeurope = {
validator_count = 2
sentry_count = 2
rpc_count = 2
node_pool_size = "Standard_D4s_v3"
storage_type = "Premium_LRS"
}
}
}
# Region-specific resource groups
resource "azurerm_resource_group" "region_rg" {
for_each = toset(var.regions)
name = "defi-oracle-mainnet-${each.value}-rg"
location = each.value
tags = {
Environment = "production"
Region = each.value
Component = "besu-network"
}
}
# Region monitoring
resource "azurerm_monitor_action_group" "region_alerts" {
for_each = toset(var.regions)
name = "region-${each.value}-alerts"
resource_group_name = azurerm_resource_group.region_rg[each.value].name
short_name = "region-${each.value}"
email_receiver {
name = "admin"
email_address = "admin@example.com"
}
}