- 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.
4.7 KiB
4.7 KiB
What Can Be Deployed Without vCPU Quota Increase
Current Situation
- Available vCPUs: 4 remaining (6/10 used)
- AKS Cluster: Running with 3 nodes (Standard_D2s_v3 = 2 vCPUs each = 6 vCPUs total)
- Cluster Capacity: Can run workloads on existing nodes
✅ Can Deploy Immediately (No Additional vCPUs Needed)
1. Kubernetes Resources (Stateless)
These run on existing nodes and don't require new VMs:
Namespaces
kubectl create namespace besu-network
kubectl create namespace monitoring
kubectl create namespace firefly # If needed
ConfigMaps and Secrets
# Configuration files
kubectl create configmap besu-config -n besu-network --from-file=config/
kubectl create secret generic besu-keys -n besu-network --from-file=keys/
Deployments (Lightweight)
- Besu Validator Pods (1-2 pods can run on existing nodes)
- Besu RPC Pods (1-2 pods)
- Monitoring Agents (Prometheus node-exporter, etc.)
- Logging Agents (Fluentd, Fluent Bit)
Services
# All Kubernetes Services can be created
kubectl apply -f k8s/services/
2. Helm Charts (Using Existing Nodes)
Besu Network (Reduced Scale)
# Deploy with reduced replica counts
helm install besu-validators ./helm/besu-network \
-f helm/besu-network/values-validators.yaml \
-n besu-network \
--set replicaCount=1 \
--set resources.requests.cpu=500m \
--set resources.requests.memory=1Gi
Monitoring Stack
# Prometheus (lightweight)
helm install prometheus prometheus-community/kube-prometheus-stack \
-n monitoring \
--set prometheus.prometheusSpec.replicas=1 \
--set prometheus.prometheusSpec.retention=7d \
--set prometheus.prometheusSpec.resources.requests.cpu=500m \
--set prometheus.prometheusSpec.resources.requests.memory=2Gi
# Grafana
helm install grafana grafana/grafana \
-n monitoring \
--set persistence.enabled=false \
--set resources.requests.cpu=200m \
--set resources.requests.memory=512Mi
3. Stateless Applications
- API Gateways (if lightweight)
- Web Dashboards
- Configuration Management Tools
- CI/CD Agents (if needed)
4. Network Configuration
- Ingress Controllers (NGINX, Traefik)
- Load Balancers (Azure Load Balancer services)
- Network Policies
5. Storage Resources
- PersistentVolumeClaims (use existing storage classes)
- Storage Classes configuration
⚠️ Cannot Deploy (Requires Additional vCPUs)
Node Pools
- Validator Node Pool (needs 2 vCPUs × 1 node = 2 vCPUs)
- Sentry Node Pool (needs 2 vCPUs × 1 node = 2 vCPUs)
- RPC Node Pool (needs 2 vCPUs × 1 node = 2 vCPUs)
- Total Needed: 6 additional vCPUs (only 4 available)
High Resource Workloads
- Multiple Besu Validators (each needs ~2 vCPUs)
- Large Database Instances
- Resource-Intensive Processing
📋 Recommended Deployment Order
Phase 1: Immediate (No Quota Needed)
- Create namespaces
- Deploy ConfigMaps and Secrets
- Deploy monitoring stack (Prometheus, Grafana)
- Deploy single Besu validator pod (on existing nodes)
- Deploy single Besu RPC pod (on existing nodes)
- Configure services and ingress
Phase 2: After Quota Increase
- Deploy validator node pool
- Deploy sentry node pool
- Deploy RPC node pool
- Scale up Besu deployments
- Deploy additional validators
🚀 Quick Start Commands
Deploy Monitoring (No Quota Needed)
# Add Helm repos
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
# Deploy Prometheus
helm install prometheus prometheus-community/kube-prometheus-stack \
-n monitoring --create-namespace \
--set prometheus.prometheusSpec.replicas=1 \
--set prometheus.prometheusSpec.resources.requests.cpu=500m \
--set prometheus.prometheusSpec.resources.requests.memory=2Gi
# Deploy Grafana
helm install grafana grafana/grafana \
-n monitoring \
--set persistence.enabled=false \
--set adminPassword=admin \
--set resources.requests.cpu=200m \
--set resources.requests.memory=512Mi
Deploy Besu (Single Pod, No Quota Needed)
# Create namespace
kubectl create namespace besu-network
# Deploy single validator pod
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: besu-validator
namespace: besu-network
spec:
replicas: 1
selector:
matchLabels:
app: besu-validator
template:
metadata:
labels:
app: besu-validator
spec:
containers:
- name: besu
image: hyperledger/besu:latest
resources:
requests:
cpu: 500m
memory: 1Gi
limits:
cpu: 1000m
memory: 2Gi