solstice-ci/examples/orchestrator-image-map.yaml
Till Wegmueller c2fefb5167
Add per-job SSH key support, refactor scheduler for SSH-based job execution, and remove unused runner endpoint
- Introduce fields in `JobContext` for per-job SSH configuration, including user, key paths, and PEM contents.
- Update the scheduler to support SSH-based execution of jobs, including VM lifecycle management and SSH session handling.
- Add utility functions for SSH execution, guest IP discovery, and runner deployment.
- Remove the unused `/runners/{name}` HTTP endpoint and its associated logic.
- Simplify router creation by refactoring out disabled runner directory handling.

Signed-off-by: Till Wegmueller <toasterson@gmail.com>
2025-11-15 18:37:30 +01:00

67 lines
2.2 KiB
YAML

# Solstice Orchestrator image and scheduling config (example)
# This file is loaded by the orchestrator at startup. Provide your own path via --config or ORCH_CONFIG.
# Keys:
# - default_label: the label used when a job does not specify runs_on.
# - aliases: optional map of label -> canonical label.
# - sizes: named size presets you can reference in future (not yet consumed by jobs), kept for operators.
# - images: map of canonical labels to image entries. Each entry can specify how to fetch/prepare an image
# and which backend it targets. All images should support NoCloud metadata.
# Default label to use when a job doesn't specify runs_on
default_label: ubuntu-22.04
# Optional label aliases
aliases:
illumos-latest: omnios-bloody
# Size presets (matrix): CPUs and RAM in MiB
sizes:
small:
cpu: 1
ram_mb: 1024
medium:
cpu: 2
ram_mb: 2048
large:
cpu: 4
ram_mb: 4096
# Images by canonical label
images:
# OmniOS bloody cloud image (illumos) with cloud-init support.
omnios-bloody:
# All images are backend-agnostic and must support NoCloud. Backends are chosen by host.
source: https://downloads.omnios.org/media/bloody/omnios-bloody-20250902.cloud.qcow2
# Local path (qcow2) target after download. Adjust per host.
local_path: /var/lib/solstice/images/omnios-bloody.qcow2
decompress: none
nocloud: true
# Default resources if job doesn't specify (vCPUs, RAM MiB, disk GiB for overlay/clone)
defaults:
cpu: 2
ram_mb: 2048
disk_gb: 40
ssh_user: root
# OpenIndiana Hipster cloud image kept for reference (no longer default)
openindiana-hipster:
source: https://dlc.openindiana.org/isos/hipster/20250402/OI-hipster-cloudimage.img.zstd
local_path: /var/lib/solstice/images/openindiana-hipster.img
decompress: zstd
nocloud: true
defaults:
cpu: 2
ram_mb: 2048
disk_gb: 40
# Example Ubuntu image for libvirt/KVM on Linux hosts
ubuntu-22.04:
source: https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
local_path: /var/lib/solstice/images/ubuntu-22.04-base.qcow2
decompress: none
nocloud: true
defaults:
cpu: 2
ram_mb: 2048
disk_gb: 40
ssh_user: ubuntu