mirror of
https://codeberg.org/Toasterson/solstice-ci.git
synced 2026-04-10 21:30:41 +00:00
This commit includes: - Adjusted runner logs from `info` to `debug` for reduced deployment log verbosity while retaining visibility in CI. - Added functionality to serve runner binaries directly from the orchestrator via HTTP. - Introduced new `RUNNER_DIR` configuration to specify the binary directory, with default paths and URL composition. - Updated HTTP routing to include runner file serving with validation and logging. - Improved AMQP body logging with a utility for better error debugging. - Updated task scripts for runner cross-building and serving, consolidating configurations and removing redundant files.
38 lines
No EOL
1.9 KiB
Bash
Executable file
38 lines
No EOL
1.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
# Run the Solstice Orchestrator with sensible local defaults
|
|
# Default to info globally, but enable orchestrator debug to surface runner logs in CI
|
|
export RUST_LOG=${RUST_LOG:-info,orchestrator=debug}
|
|
export ORCH_CONFIG=${ORCH_CONFIG:-examples/orchestrator-image-map.yaml}
|
|
export AMQP_URL=${AMQP_URL:-amqp://127.0.0.1:5672/%2f}
|
|
export AMQP_EXCHANGE=${AMQP_EXCHANGE:-solstice.jobs}
|
|
export AMQP_QUEUE=${AMQP_QUEUE:-solstice.jobs.v1}
|
|
export AMQP_ROUTING_KEY=${AMQP_ROUTING_KEY:-jobrequest.v1}
|
|
export AMQP_PREFETCH=${AMQP_PREFETCH:-2}
|
|
export GRPC_ADDR=${GRPC_ADDR:-0.0.0.0:50051}
|
|
export DATABASE_URL=${DATABASE_URL:-postgres://solstice:solstice@127.0.0.1:5432/solstice}
|
|
|
|
# Detect a host IP reachable from VMs (prefer virbr0, fallback to 127.0.0.1)
|
|
if command -v ip >/dev/null 2>&1 && ip addr show virbr0 >/dev/null 2>&1; then
|
|
HOST_IP=$(ip -o -4 addr show virbr0 | awk '{print $4}' | cut -d/ -f1 | head -n1)
|
|
else
|
|
HOST_IP=${HOST_IP_OVERRIDE:-127.0.0.1}
|
|
fi
|
|
# Contact address for gRPC log streaming from guests (used in cloud-init)
|
|
export ORCH_CONTACT_ADDR=${ORCH_CONTACT_ADDR:-$HOST_IP:50051}
|
|
|
|
# Serve runner binaries directly from the orchestrator unless overridden
|
|
# Set RUNNER_DIR to a directory containing files:
|
|
# - solstice-runner (generic)
|
|
# - solstice-runner-linux (Linux-specific)
|
|
# - solstice-runner-illumos (Illumos-specific)
|
|
export RUNNER_DIR=${RUNNER_DIR:-target/runners}
|
|
# If user didn't provide external URLs, the orchestrator will compose URLs like
|
|
# http://$HOST_IP:${HTTP_PORT:-8081}/runners/solstice-runner[-linux|-illumos]
|
|
# automatically when RUNNER_DIR is set.
|
|
# To force external URLs instead, set SOLSTICE_RUNNER_URL(S) explicitly before running this task.
|
|
|
|
# For Linux + libvirt users, customize via LIBVIRT_URI and LIBVIRT_NETWORK
|
|
exec cargo run -p orchestrator --features libvirt -- \
|
|
--config "$ORCH_CONFIG" \
|
|
--grpc-addr "$GRPC_ADDR" |