Volt CLI: source-available under AGPSL v5.0

Complete infrastructure platform CLI:
- Container runtime (systemd-nspawn)
- VoltVisor VMs (Neutron Stardust / QEMU)
- Stellarium CAS (content-addressed storage)
- ORAS Registry
- GitOps integration
- Landlock LSM security
- Compose orchestration
- Mesh networking

Copyright (c) Armored Gates LLC. All rights reserved.
Licensed under AGPSL v5.0
This commit is contained in:
Karl Clinger
2026-03-21 00:30:23 -05:00
commit 0ebe75b2ca
155 changed files with 63317 additions and 0 deletions

122
scripts/test-integration.sh Executable file
View File

@@ -0,0 +1,122 @@
#!/bin/bash
#
# Volt Platform - Integration Tests
#
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
VOLT="$PROJECT_DIR/build/volt"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
pass() { echo -e "${GREEN}${NC} $1"; }
fail() { echo -e "${RED}${NC} $1"; exit 1; }
skip() { echo -e "${YELLOW}${NC} $1 (skipped)"; }
# Test counter
TESTS_PASSED=0
TESTS_FAILED=0
run_test() {
local name="$1"
shift
if "$@" >/dev/null 2>&1; then
pass "$name"
((TESTS_PASSED++))
else
fail "$name"
((TESTS_FAILED++))
fi
}
# Check if binary exists
if [[ ! -x "$VOLT" ]]; then
echo "Building volt first..."
cd "$PROJECT_DIR"
make build
fi
echo "================================"
echo "Volt Platform Integration Tests"
echo "================================"
echo ""
# Test 1: Binary runs
echo "=== CLI Tests ==="
run_test "volt --help" $VOLT --help
run_test "volt vm --help" $VOLT vm --help
run_test "volt desktop --help" $VOLT desktop --help
run_test "volt k8s --help" $VOLT k8s --help
# Test 2: VM commands (need sudo for full test)
echo ""
echo "=== VM Tests (sudo required) ==="
if [[ $EUID -ne 0 ]]; then
skip "VM creation (requires root)"
skip "VM listing (requires root)"
skip "VM destruction (requires root)"
else
# Create test VM
TEST_VM="volt-test-$$"
run_test "Create VM" $VOLT vm create "$TEST_VM" --image volt/server
run_test "List VMs" $VOLT vm list
run_test "VM directory exists" test -d "/var/lib/volt/vms/$TEST_VM"
run_test "SystemD unit created" test -f "/etc/systemd/system/volt-vm@${TEST_VM}.service"
# Cleanup
run_test "Destroy VM" $VOLT vm destroy "$TEST_VM"
run_test "VM directory removed" test ! -d "/var/lib/volt/vms/$TEST_VM"
fi
# Test 3: Desktop commands
echo ""
echo "=== Desktop Tests ==="
run_test "ODE profiles defined" grep -q "office" "$PROJECT_DIR/pkg/ode/ode.go"
run_test "Desktop command exists" $VOLT desktop --help
# Test 4: K8s commands
echo ""
echo "=== Kubernetes Tests ==="
run_test "K8s node --help" $VOLT k8s node --help
run_test "K8s status" $VOLT k8s status
# Test 5: Configuration files
echo ""
echo "=== Config Tests ==="
run_test "Server image config" test -f "$PROJECT_DIR/configs/images/server.yaml"
run_test "Desktop image config" test -f "$PROJECT_DIR/configs/images/desktop-productivity.yaml"
run_test "Edge image config" test -f "$PROJECT_DIR/configs/images/edge.yaml"
run_test "K8s node config" test -f "$PROJECT_DIR/configs/images/k8s-node.yaml"
run_test "Server kernel config" test -f "$PROJECT_DIR/configs/kernels/kernel-server.config"
run_test "Desktop kernel config" test -f "$PROJECT_DIR/configs/kernels/kernel-desktop.config"
run_test "Seccomp profile" test -f "$PROJECT_DIR/configs/seccomp/server.json"
# Test 6: Build scripts
echo ""
echo "=== Build Script Tests ==="
run_test "build-kernels.sh exists" test -x "$PROJECT_DIR/scripts/build-kernels.sh"
run_test "build-images.sh exists" test -x "$PROJECT_DIR/scripts/build-images.sh"
run_test "install.sh exists" test -x "$PROJECT_DIR/scripts/install.sh"
# Summary
echo ""
echo "================================"
echo "Test Summary"
echo "================================"
echo -e "Passed: ${GREEN}$TESTS_PASSED${NC}"
echo -e "Failed: ${RED}$TESTS_FAILED${NC}"
echo ""
if [[ $TESTS_FAILED -gt 0 ]]; then
exit 1
fi
echo -e "${GREEN}All tests passed!${NC}"