Files
smom-dbis-138/docs/deployment/QUICK_START_DEPLOYMENT.md
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

221 lines
4.4 KiB
Markdown

# Quick Start Deployment Guide
This guide provides the fastest path to deploy the DeFi Oracle Meta Mainnet (ChainID 138).
## Prerequisites Checklist
Before starting, ensure you have:
- [x] ✅ Azure CLI installed and authenticated
- [x]`.env` file configured with Azure and Cloudflare credentials
- [x] ✅ Validator and oracle keys generated
- [x] ✅ Genesis file created
- [x] ✅ Resource providers registered
- [ ] ⚠️ Terraform installed (run: `./scripts/setup/install-terraform.sh`)
- [ ] ⚠️ kubectl installed
- [ ] ⚠️ Helm 3.x installed
## Quick Deployment Steps
### Step 1: Install Missing Tools
```bash
# Install Terraform (if not installed)
./scripts/setup/install-terraform.sh
# Verify all tools
./scripts/deployment/prepare-all-phases.sh
```
### Step 2: Initialize Terraform
```bash
cd terraform
terraform init
```
### Step 3: Review Configuration
```bash
# Review terraform.tfvars
cat terraform.tfvars
# Verify naming convention
grep -E "az-p-we" terraform/locals.tf
```
### Step 4: Plan Deployment
```bash
terraform plan -out=tfplan
```
**Review the plan carefully:**
- Check resource names follow convention: `az-p-we-{resource}-{instance}`
- Verify region is `westeurope`
- Review estimated costs
- Check resource counts and sizes
### Step 5: Apply Infrastructure
```bash
terraform apply tfplan
```
**This will create:**
- Resource groups
- Virtual network and subnets
- Network security groups
- Key Vault
- Log Analytics workspace
- AKS cluster and node pools
- Application Gateway
- Storage accounts
**⏱️ Estimated time: 20-30 minutes**
### Step 6: Configure kubectl
```bash
# Get AKS credentials
az aks get-credentials \
--resource-group az-p-we-rg-comp-001 \
--name az-p-we-aks-main
# Verify connection
kubectl get nodes
```
### Step 7: Deploy Kubernetes Resources
```bash
# Create namespaces
kubectl apply -f k8s/base/namespace.yaml
# Deploy validators
helm install besu-validators ./helm/besu-network \
-f helm/besu-network/values-validators.yaml \
-n besu-network
# Deploy sentries
helm install besu-sentries ./helm/besu-network \
-f helm/besu-network/values-sentries.yaml \
-n besu-network
# Deploy RPC nodes
helm install besu-rpc ./helm/besu-network \
-f helm/besu-network/values-rpc.yaml \
-n besu-network
```
### Step 8: Configure DNS
```bash
# Get Application Gateway IP
AGW_IP=$(./scripts/deployment/get-app-gateway-ip.sh)
# Configure Cloudflare DNS
./scripts/deployment/cloudflare-dns.sh \
--zone-id $CLOUDFLARE_ZONE_ID \
--api-token $CLOUDFLARE_API_TOKEN \
--ip $AGW_IP
```
### Step 9: Deploy Contracts
```bash
# Set RPC URL (after DNS propagates)
export RPC_URL="https://rpc.d-bis.org"
export PRIVATE_KEY="<your-deployment-key>"
# Deploy contracts
./scripts/deployment/deploy-weth.sh
./scripts/deployment/deploy-multicall.sh
```
### Step 10: Verify Deployment
```bash
./scripts/deployment/verify-deployment.sh
```
## Automated Deployment
For a fully automated deployment (after prerequisites):
```bash
# Phase 1: Prerequisites (already done)
./scripts/deployment/deploy-phase1.sh
# Phase 2: Terraform setup
./scripts/deployment/deploy-phase2.sh
# Then manually:
cd terraform
terraform init
terraform plan
terraform apply # Requires confirmation
```
## Troubleshooting
### Terraform Not Found
```bash
./scripts/setup/install-terraform.sh
```
### Azure Authentication Issues
```bash
az login
az account show
```
### Resource Provider Not Registered
```bash
./scripts/azure/check-azure-prerequisites.sh
```
### Quota Issues
```bash
./scripts/azure/check-quotas.sh westeurope
```
## Resource Naming
All resources follow: `az-p-we-{resource}-{instance}`
Examples:
- AKS: `az-p-we-aks-main`
- Key Vault: `az-p-we-kv-secrets-001`
- VNet: `az-p-we-vnet-main`
See `docs/configuration/AZURE_NAMING_CONVENTION_3CHAR.md` (standard) or `docs/configuration/AZURE_NAMING_CONVENTION_2CHAR.md` (alternative) for details.
## Estimated Costs
Approximate monthly costs (West Europe):
- AKS Cluster: ~$300-500
- VM Nodes (13 nodes): ~$500-800
- Application Gateway: ~$100-200
- Storage: ~$50-100
- Networking: ~$50-100
- **Total: ~$1000-1700/month**
Use Azure Pricing Calculator for accurate estimates.
## Next Steps After Deployment
1. Configure monitoring alerts
2. Set up backup procedures
3. Deploy Blockscout explorer
4. Deploy smart contracts
5. Submit to Ethereum-Lists
6. Configure external integrations
## Support
- Documentation: `docs/`
- Deployment Order: `docs/DEPLOYMENT_ORDER.md`
- Status: `docs/DEPLOYMENT_STATUS.md`