Files
jagacloud/scripts/smoke.sh
2025-11-23 13:37:10 +07:00

36 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
API="${API:-http://127.0.0.1:8000/api/v1}"
TOKEN="${TOKEN:-changeme}"
HDR=(-H "Authorization: Bearer ${TOKEN}")
vm_id=${VM_ID:-smoke-vm}
ct_id=${CT_ID:-smoke-ct}
create_vm() {
curl -sfS "${HDR[@]}" -X POST "${API}/vms" \
-H 'Content-Type: application/json' \
-d "{\"id\":\"${vm_id}\",\"name\":\"${vm_id}\",\"cpus\":1,\"memory_mb\":512,\"disks\":[{\"name\":\"root\",\"size_gb\":1,\"pool\":\"local\"}],\"nics\":[{\"bridge\":\"vmbr0\"}]}"
}
create_ct() {
curl -sfS "${HDR[@]}" -X POST "${API}/containers" \
-H 'Content-Type: application/json' \
-d "{\"id\":\"${ct_id}\",\"name\":\"${ct_id}\",\"template\":\"debian-bookworm\",\"rootfs_pool\":\"local\",\"rootfs_size_g\":1,\"nics\":[{\"bridge\":\"vmbr0\"}],\"limits\":{\"cpus\":1,\"memory_mb\":256},\"unprivileged\":true}"
}
cmd=${1:-}
case "$cmd" in
create-vm) create_vm ;;
create-ct) create_ct ;;
list)
curl -sfS "${HDR[@]}" "${API}/vms" | jq .
curl -sfS "${HDR[@]}" "${API}/containers" | jq .
;;
*)
echo "Usage: API=... TOKEN=... $0 {create-vm|create-ct|list}" >&2
exit 1
;;
esac