Releases: zyvorai/ephemera
Release list
Ragnarok 0.5.2 (evaluation binary)
Ragnarok 0.5.2 — evaluation binary (signed trial.token)
Proprietary Ragnarok control plane for KubeVirt VMs (React UI + Rust API).
No source code in this release — Ragnarok lives in a private repo.
Ephemera (this repository) stays Apache-2.0 / free. This asset is Ragnarok only.
Ephemera needs no licence. Ragnarok evaluation uses a signedtrial.token(Ed25519 JWT).
Install
curl -LO https://github.com/hypersdk/ephemera/releases/download/ragnarok-v0.5.2/ragnarok-0.5.2-linux-amd64.tar.gz
curl -LO https://github.com/hypersdk/ephemera/releases/download/ragnarok-v0.5.2/ragnarok-0.5.2-linux-amd64.tar.gz.sha256
sha256sum -c ragnarok-0.5.2-linux-amd64.tar.gz.sha256
tar xzf ragnarok-0.5.2-linux-amd64.tar.gz
cd ragnarok-0.5.2-linux-amd64
ls -l trial.token # keep beside ./ragnarok
./install.sh
# edit ragnarok.env — then: set -a && source ragnarok.env && set +a && ./ragnarok
curl -s http://127.0.0.1:5010/api/v1/license/statusOptional: export RAGNAROK_TRIAL_TOKEN=\"$(cat trial.token)\"
Helm: --set license.key=<jwt> (same JWT as the file).
Requires Linux x86_64, Kubernetes + KubeVirt, and a kubeconfig.
After the token expires
Email sales@zyvor.dev for a renewed signed token. See LICENSING.md /
AFTER-TRIAL.md inside the archive.
Docs
SHA256: 55d958954e77e56fce7a02c466d6d48aea96ab8f6bedc3effa9e5b5a2bc9bf29
Ragnarok 0.5.1 (evaluation binary)
Ragnarok 0.5.1 — evaluation binary (signed trial.token)
Proprietary Ragnarok control plane for KubeVirt VMs (React UI + Rust API).
No source code in this release — Ragnarok lives in a private repo.
Ephemera (this repository) stays Apache-2.0 / free. This asset is Ragnarok only.
Ephemera needs no licence. Ragnarok evaluation uses a signedtrial.token(Ed25519 JWT).
Install
curl -LO https://github.com/hypersdk/ephemera/releases/download/ragnarok-v0.5.1/ragnarok-0.5.1-linux-amd64.tar.gz
curl -LO https://github.com/hypersdk/ephemera/releases/download/ragnarok-v0.5.1/ragnarok-0.5.1-linux-amd64.tar.gz.sha256
sha256sum -c ragnarok-0.5.1-linux-amd64.tar.gz.sha256
tar xzf ragnarok-0.5.1-linux-amd64.tar.gz
cd ragnarok-0.5.1-linux-amd64
ls -l trial.token # keep beside ./ragnarok
./install.sh
# edit ragnarok.env — then: set -a && source ragnarok.env && set +a && ./ragnarok
curl -s http://127.0.0.1:5010/api/v1/license/statusOptional: export RAGNAROK_TRIAL_TOKEN=\"$(cat trial.token)\"
Helm: --set license.key=<jwt> (same JWT as the file).
Requires Linux x86_64, Kubernetes + KubeVirt, and a kubeconfig.
After the token expires
Email sales@zyvor.dev for a renewed signed token. See LICENSING.md /
AFTER-TRIAL.md inside the archive.
Docs
SHA256: 25488345845decc9897b23f13545e856ea03e94fa03ccecfe4b3eec99eb68e2d
zyvor-fabric v0.1.0 (companion control-plane binary)
Self-contained Linux x86_64 distribution of zyvor-fabric, the control plane
that drives Ephemera as its VM backend.
What's included
zyvor-fabric-0.1.0-linux-x86_64.tar.gz— binaries, vendor agents, systemd
units, web dashboard, and an offline installer (install.sh)INSTALL.md— full install guide and getting-started tutorial (first
login, creating your first VM, networking, verifying the install,
upgrading)
Quick start
tar xzf zyvor-fabric-0.1.0-linux-x86_64.tar.gz
cd zyvor-fabric-0.1.0-linux-x86_64
sudo ./install.sh --start
See INSTALL.md for the full tutorial. This build includes a 30-day
evaluation trial (read access is never gated; writes require a current
trial or license — see /api/license).
sha256 (tarball): d7bb40d00eff47dd1c2518d62f4985976966d8f30efcca8fe8243acc5f5916d4
Zyvor Ephemera v0.1.0
Zyvor Ephemera v0.1.0
First tagged release. A disposable-VM control plane over QEMU/KVM, Cloud Hypervisor, and
Firecracker, with real, hardware-verified support for the full deferred-features list this
project set out with, plus the original MVP scope.
Every feature below has been booted/tested against real KVM hardware (and, where noted,
against a real external cluster) — not just compiled. See the README for full detail; this
is a summary.
Core VM lifecycle
VmBackendtrait over QEMU (QMP), Cloud Hypervisor (ch-remote), and Firecracker
(JSON config + HTTP-over-UDS), with a unified create/start/stop/pause/resume/delete API.- Vsock guest agent (
ephemera exec) — no SSH, no network path required — over QEMU's native
AF_VSOCK and a UDS proxy for Cloud Hypervisor/Firecracker. - "auto" backend selection based on what a request/config actually supplies (kernel, firmware).
- TTL reaper, warm VM pools (pre-booted + paused, claimed at near-resume speed).
Storage
- qcow2 CoW overlays (QEMU) and raw reflink clones (Cloud Hypervisor/Firecracker) by default.
- Pluggable backends: LVM thin snapshots, NBD-exported disks, and Ceph RBD — all three verified
booting real guests; Ceph RBD against a real, live Rook Ceph cluster. - Image catalog: named, checksummed, Ed25519-signed base images with full CRUD (add/remove/
rename/clone/export) via CLI and REST.
Isolation and resource control
- Firecracker
jailersupport (chroot, uid/gid drop). - Real per-VM network namespaces (veth + NAT + internal bridge), not just a shared bridge.
- cgroup v2 resource control across all three backends: CPU/memory/IO/pids/cpuset limits,
freeze/thaw, PSI pressure, usage stats. - Bearer-token REST API auth/RBAC (admin/read-only) and an authenticated guest-agent protocol.
- Admission policy: max vCPU/memory/disk/TTL, allowed backends, allowed image directories.
Multi-host and Kubernetes
ephemera-kube: aDisposableVmKubernetes CRD + node-local operator, verified end to end
against a real k3s cluster (finalizer-driven delete, self-healing recreation on out-of-band
VM loss).ephemera-agent: a distributed node-agent — central fleet registry + per-host heartbeat
client with load-aware placement — verified across two real, physically separate hosts.
Observability and ops
- Prometheus
/metricsendpoint; streamingGET /v1/vms/{id}/logs. scripts/bootstrap-host.sh/scripts/deploy-remote.shfor one-command host setup and
SSH-based deployment.- A dozen real-hardware regression scripts under
scripts/test-*.shcovering networking,
lifecycle, cgroups, jailer, warm pools, auth, the image catalog, storage backends, the
Kubernetes operator, and the distributed fleet agent.
Known gaps (see README "Production changes I would make next")
- NUMA/GPU/VFIO-aware scheduler placement — no suitable multi-socket/GPU hardware was
available to verify this against. - A Windows guest path (UEFI, virtio-win, sysprep/unattend) — no licensed Windows image was
available to verify this against. - Full snapshot/restore of VM state (as opposed to the already-implemented warm pools).
- Packaging
ephemera-kubeas an actual container image/daemonset manifest.
Depends on the sibling guestkit project as a path
dependency.