96 lines
4.6 KiB
Bash
96 lines
4.6 KiB
Bash
#!/bin/bash
|
||
# Demo 1: Server Creation with Provisioning Platform
|
||
# Time: ~30 seconds
|
||
# Shows: Configuration validation, dry-run preview, cost estimation
|
||
|
||
set -e
|
||
|
||
echo "╔════════════════════════════════════════════════════════╗"
|
||
echo "║ Demo 1: Server Creation with Provisioning Platform ║"
|
||
echo "║ Time: ~30 seconds ║"
|
||
echo "╚════════════════════════════════════════════════════════╝"
|
||
echo ""
|
||
|
||
# Step 1: Show command
|
||
echo "Step 1️⃣ Type-safe server creation command"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
echo "$ provisioning server create web-01 \\"
|
||
echo " --provider upcloud \\"
|
||
echo " --plan 2xCPU-4GB \\"
|
||
echo " --zone de-fra1 \\"
|
||
echo " --infra demo \\"
|
||
echo " --check"
|
||
echo ""
|
||
sleep 2
|
||
|
||
# Step 2: Configuration validation
|
||
echo "Step 2️⃣ Configuration validation (KCL schema checking)"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo "✓ Server name: 'web-01' (valid)"
|
||
echo "✓ Provider: 'upcloud' (supported)"
|
||
echo "✓ Plan: '2xCPU-4GB' (valid configuration)"
|
||
echo "✓ Zone: 'de-fra1' (valid region)"
|
||
echo "✓ Infrastructure: 'demo' (exists)"
|
||
echo "✓ All validations passed!"
|
||
echo ""
|
||
sleep 2
|
||
|
||
# Step 3: Dry-run output
|
||
echo "Step 3️⃣ Dry-run preview (--check mode, no actual changes)"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
echo "┌─────────────────────────────────────────┐"
|
||
echo "│ Server Configuration Preview (Dry-Run) │"
|
||
echo "├─────────────────────────────────────────┤"
|
||
echo "│ │"
|
||
echo "│ Name: web-01 │"
|
||
echo "│ Provider: UpCloud │"
|
||
echo "│ Plan: 2xCPU-4GB │"
|
||
echo "│ Zone: de-fra1 │"
|
||
echo "│ Estimated Cost: €15/month │"
|
||
echo "│ Deployment Time: ~45 seconds │"
|
||
echo "│ │"
|
||
echo "│ Status: ✓ Ready to deploy │"
|
||
echo "│ (No changes made - dry-run mode) │"
|
||
echo "│ │"
|
||
echo "└─────────────────────────────────────────┘"
|
||
echo ""
|
||
sleep 2
|
||
|
||
# Step 4: Cost estimation
|
||
echo "Step 4️⃣ Cost estimation and impact analysis"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
echo "Resource Cost Breakdown:"
|
||
echo " • Compute (2 CPU): €8.50/month"
|
||
echo " • Memory (4GB): €4.20/month"
|
||
echo " • Storage (50GB): €2.30/month"
|
||
echo " ───────────"
|
||
echo " TOTAL MONTHLY COST: €15.00/month"
|
||
echo ""
|
||
echo "Infrastructure Impact:"
|
||
echo " • Total servers in 'demo': 1 → 2"
|
||
echo " • Total cost in 'demo': €10 → €25/month"
|
||
echo " • Additional monthly cost: +€15.00"
|
||
echo ""
|
||
sleep 2
|
||
|
||
# Step 5: Summary
|
||
echo "Step 5️⃣ Summary"
|
||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||
echo ""
|
||
echo "✓ Configuration validated (type-safe)"
|
||
echo "✓ Dry-run successful (no actual changes)"
|
||
echo "✓ Cost estimated: €15/month"
|
||
echo "✓ Ready for deployment"
|
||
echo ""
|
||
echo "To actually deploy, run:"
|
||
echo " $ provisioning server create web-01 --infra demo"
|
||
echo ""
|
||
echo "To rollback after deployment:"
|
||
echo " $ provisioning server delete web-01"
|
||
echo ""
|
||
echo "╔════════════════════════════════════════════════════════╗"
|
||
echo "║ Key Insight: Validation BEFORE deployment = 0 errors ║"
|
||
echo "╚════════════════════════════════════════════════════════╝"
|