Skip to content

Releases: zyvorai/ephemera

Ragnarok 0.5.2 (evaluation binary)

Choose a tag to compare

@zyvorai zyvorai released this 24 Aug 20:44

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 signed trial.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/status

Optional: 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)

Choose a tag to compare

@zyvorai zyvorai released this 24 Aug 15:55

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 signed trial.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/status

Optional: 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)

Choose a tag to compare

@zyvorai zyvorai released this 19 Aug 16:23

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

Choose a tag to compare

@zyvorai zyvorai released this 16 Aug 03:01

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

  • VmBackend trait 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 jailer support (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: a DisposableVm Kubernetes 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 /metrics endpoint; streaming GET /v1/vms/{id}/logs.
  • scripts/bootstrap-host.sh / scripts/deploy-remote.sh for one-command host setup and
    SSH-based deployment.
  • A dozen real-hardware regression scripts under scripts/test-*.sh covering 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-kube as an actual container image/daemonset manifest.

Depends on the sibling guestkit project as a path
dependency.