Files
Sankofa/scripts/update-vms-to-local-lvm.sh
defiQUG 33d50fb91e
Some checks failed
API CI / API Lint (push) Successful in 47s
API CI / API Type Check (push) Failing after 47s
API CI / API Test (push) Successful in 1m0s
API CI / API Build (push) Failing after 50s
API CI / Build Docker Image (push) Has been skipped
Build Crossplane Provider / build (push) Failing after 5m51s
CD Pipeline / Deploy to Staging (push) Failing after 29s
CI Pipeline / Lint and Type Check (push) Failing after 36s
CI Pipeline / Build (push) Has been skipped
CI Pipeline / Test Backend (push) Failing after 1m33s
CI Pipeline / Test Frontend (push) Failing after 30s
CI Pipeline / Security Scan (push) Failing after 1m16s
Crossplane Provider CI / Go Test (push) Failing after 3m23s
Crossplane Provider CI / Go Lint (push) Failing after 7m27s
Crossplane Provider CI / Go Build (push) Failing after 3m27s
Deploy to Staging / Deploy to Staging (push) Failing after 30s
Portal CI / Portal Lint (push) Failing after 21s
Portal CI / Portal Type Check (push) Failing after 21s
Portal CI / Portal Test (push) Failing after 21s
Portal CI / Portal Build (push) Failing after 22s
Test Suite / frontend-tests (push) Failing after 30s
Test Suite / api-tests (push) Failing after 49s
Test Suite / blockchain-tests (push) Failing after 30s
Type Check / type-check (map[directory:. name:root]) (push) Failing after 23s
Type Check / type-check (map[directory:api name:api]) (push) Failing after 21s
Type Check / type-check (map[directory:portal name:portal]) (push) Failing after 19s
Validate Configuration Files / validate (push) Failing after 1m52s
CD Pipeline / Deploy to Production (push) Has been skipped
chore: consolidate local WIP (repo cleanup 20260707)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-07 09:41:34 -07:00

68 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# Update VMs to use local-lvm storage instead of ceph-rbd
set -euo pipefail
echo "═══════════════════════════════════════════════════════════════════════════════"
echo " UPDATE VMs TO USE local-lvm STORAGE"
echo "═══════════════════════════════════════════════════════════════════════════════"
echo ""
# Find VMs configured for r630-01 with ceph-rbd storage
echo "Step 1: Finding VMs configured for r630-01 with ceph-rbd storage..."
VMS=$(kubectl get proxmoxvms -A -o json 2>/dev/null | \
jq -r '[.items[] |
select(.spec.forProvider.node == "r630-01") |
select(.spec.forProvider.storage == "ceph-rbd") |
select(.metadata.name != "basic-vm-001" and
.metadata.name != "large-vm-001" and
.metadata.name != "medium-vm-001" and
.metadata.name != "vm-100") |
"\(.metadata.namespace)/\(.metadata.name)"
] | .[]')
if [ -z "$VMS" ]; then
echo "✅ No VMs found to update (already using local-lvm or different storage)"
exit 0
fi
VM_COUNT=$(echo "$VMS" | wc -l)
echo "Found $VM_COUNT VMs to update:"
echo "$VMS" | sed 's/^/ • /'
echo ""
# Update VMs
echo "Step 2: Updating VMs..."
UPDATED=0
FAILED=0
for VM in $VMS; do
NAMESPACE=$(echo "$VM" | cut -d'/' -f1)
NAME=$(echo "$VM" | cut -d'/' -f2)
echo -n "Updating $VM... "
if kubectl patch proxmoxvm -n "$NAMESPACE" "$NAME" \
--type='json' \
-p='[{"op": "replace", "path": "/spec/forProvider/storage", "value": "local-lvm"}]' 2>/dev/null; then
echo "✅"
UPDATED=$((UPDATED + 1))
else
echo "❌"
FAILED=$((FAILED + 1))
fi
done
echo ""
echo "═══════════════════════════════════════════════════════════════════════════════"
echo " SUMMARY"
echo "═══════════════════════════════════════════════════════════════════════════════"
echo "VMs updated: $UPDATED"
echo "VMs failed: $FAILED"
echo ""
echo "✅ Update complete! VMs will now use local-lvm storage."
echo ""
echo "📝 Next Steps:"
echo " 1. Copy cloud image to local-lvm storage"
echo " 2. Monitor VM deployment: kubectl get proxmoxvms -A -w"