- 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.
6.8 KiB
Configuration Fixes Applied
Date: $(date)
This document summarizes all configuration fixes that were automatically applied to resolve deployment configuration issues.
✅ Fixes Applied
1. Terraform Node Counts ✅ FIXED
Issue: Sentries and RPC nodes were set to 0, preventing RPC endpoints from being available.
Fix Applied:
- Updated
terraform/terraform.tfvars:system = 3(was 1)validators = 4(was 1)sentries = 3(was 0) ✅rpc = 3(was 0) ✅
File: terraform/terraform.tfvars
Impact: RPC endpoints will now be deployed, making the network accessible externally.
2. Kubernetes Version ✅ FIXED
Issue: Kubernetes version was set to 1.33 which may not be stable.
Fix Applied:
- Updated
terraform/terraform.tfvars:- Changed
kubernetes_version = "1.33"tokubernetes_version = "1.28"
- Changed
File: terraform/terraform.tfvars
Note: Version 1.28 is a stable LTS version. Verify with:
az aks get-versions --location westeurope --output table
3. RPC Storage Size Inconsistency ✅ FIXED
Issue: Storage size mismatch between k8s and Helm configurations.
Fix Applied:
- Updated
k8s/base/rpc/statefulset.yaml:- Changed storage from
256Gito500Gito match Helm values
- Changed storage from
File: k8s/base/rpc/statefulset.yaml
Impact: Storage sizes are now consistent across all configurations.
4. Terraform Backend Configuration ✅ CREATED
Issue: backend.tf was missing, using only commented configuration in main.tf.
Fix Applied:
- Created
terraform/backend.tffromterraform/backend.tf.example
File: terraform/backend.tf
Next Step: Configure backend storage account details:
# Edit terraform/backend.tf and set:
# - resource_group_name
# - storage_account_name
# - container_name
# - key
Or use environment variables:
export ARM_STORAGE_ACCOUNT_NAME="your-storage-account"
export ARM_CONTAINER_NAME="tfstate"
export ARM_RESOURCE_GROUP_NAME="your-rg"
export ARM_ACCESS_KEY="your-access-key"
5. RPC Security Configuration ⚠️ ANNOTATED
Issue: RPC CORS and host allowlist set to wildcard (["*"]), which is a security risk.
Fix Applied:
- Added TODO comments in:
config/rpc/besu-config.tomlk8s/base/rpc/statefulset.yamlhelm/besu-network/values-rpc.yaml
Files Updated:
config/rpc/besu-config.tomlk8s/base/rpc/statefulset.yamlhelm/besu-network/values-rpc.yaml
Status: ⚠️ REQUIRES MANUAL UPDATE AFTER DNS DEPLOYMENT
Action Required: After DNS is configured, update CORS and host allowlist to:
rpc-http-cors-origins=["https://rpc.d-bis.org", "https://explorer.d-bis.org"]
rpc-http-host-allowlist=["rpc.d-bis.org", "rpc2.d-bis.org"]
6. Genesis Validator Configuration ⚠️ PARTIALLY FIXED
Issue: Genesis file has extraData: "0x" (no validators configured).
Fix Applied:
- Created script:
scripts/deployment/generate-genesis-with-validators.sh - Script generates validator keys if they don't exist
- Script attempts to use Besu to generate proper genesis with extraData
File: scripts/deployment/generate-genesis-with-validators.sh
Status: ⚠️ REQUIRES BESU CLI FOR COMPLETE FIX
Action Required:
-
Install Besu CLI (if not installed):
# See: https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Installation-Options/ -
Generate proper genesis:
./scripts/deployment/generate-genesis-with-validators.sh -
If Besu is not available, manually generate extraData:
# Extract validator addresses from keys # Use Besu's operator generate-blockchain-config besu operator generate-blockchain-config \ --config-file=config/genesis-template.json \ --to=keys/validators \ --private-key-file-name=key.priv
📋 Summary of Changes
| Issue | Status | File(s) Modified |
|---|---|---|
| Terraform node counts | ✅ Fixed | terraform/terraform.tfvars |
| Kubernetes version | ✅ Fixed | terraform/terraform.tfvars |
| RPC storage size | ✅ Fixed | k8s/base/rpc/statefulset.yaml |
| Terraform backend | ✅ Created | terraform/backend.tf |
| RPC security (CORS/host) | ⚠️ Annotated | config/rpc/besu-config.toml, k8s/base/rpc/statefulset.yaml, helm/besu-network/values-rpc.yaml |
| Genesis validators | ⚠️ Script created | scripts/deployment/generate-genesis-with-validators.sh |
⚠️ Manual Actions Required
1. Configure Terraform Backend
Edit terraform/backend.tf and configure:
- Storage account name
- Container name
- Resource group
- Access key (or use Managed Identity)
2. Generate Genesis with Validators
Run the genesis generation script:
./scripts/deployment/generate-genesis-with-validators.sh
If Besu is not installed, install it first:
# Ubuntu/Debian
wget https://hyperledger.jfrog.io/hyperledger/besu-binaries/besu/23.10.0/besu-23.10.0.tar.gz
tar -xzf besu-23.10.0.tar.gz
export PATH=$PATH:$(pwd)/besu-23.10.0/bin
3. Update RPC Security After DNS Deployment
After DNS records are configured, update:
config/rpc/besu-config.tomlk8s/base/rpc/statefulset.yamlhelm/besu-network/values-rpc.yaml
Replace wildcard CORS/host allowlist with specific domains.
4. Update All ConfigMaps with New Genesis
After generating proper genesis, update:
k8s/base/validators/statefulset.yaml(ConfigMap)k8s/base/sentries/statefulset.yaml(ConfigMap)k8s/base/rpc/statefulset.yaml(ConfigMap)
Or regenerate Helm ConfigMaps if using Helm deployment.
✅ Verification
Run validation script to verify all fixes:
./scripts/deployment/validate-deployment-config.sh
📝 Notes
-
Quota Constraints: If Azure quota is limited, consider staged deployment:
- Phase 1: Deploy validators only (4 nodes)
- Phase 2: Deploy sentries (3 nodes)
- Phase 3: Deploy RPC nodes (3 nodes)
-
Genesis Generation: Proper IBFT 2.0 extraData encoding requires Besu CLI. The script will attempt automatic generation, but manual steps may be needed.
-
Security: RPC security settings are currently permissive for initial deployment. MUST be restricted before production use.
-
Backend Configuration: Terraform backend is created but needs configuration. Use environment variables or edit
backend.tfdirectly.
🚀 Next Steps
- ✅ Review all changes
- ⚠️ Configure Terraform backend
- ⚠️ Generate genesis with validators (requires Besu)
- ⚠️ Update ConfigMaps with new genesis
- ⚠️ Deploy infrastructure
- ⚠️ Update RPC security settings after DNS deployment
Support
For issues or questions:
- Review:
docs/DEPLOYMENT_CONFIGURATION_AUDIT.md - Run:
./scripts/deployment/validate-deployment-config.sh - Check:
docs/DEPLOYMENT_COMPLETE_GUIDE.md