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

96 lines
4.6 KiB
Bash
Raw Permalink 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 "╚════════════════════════════════════════════════════════╝"