provisioning-outreach/presentations/pres-prvng/demos/01-server-creation-demo.sh

96 lines
4.6 KiB
Bash
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 "╚════════════════════════════════════════════════════════╝"