Lightweight, event‑driven orchestration for container workloads
voiyd.io
Voiyd is a lightweight container orchestration platform with a central server and agent nodes. It lets you schedule and manage containers across many number of arbitrary Linux hosts using a simple CLI. It’s designed to be small, understandable, and easy to run on your own infrastructure.
Note: This project is under active early development and unstable. Features, APIs, and behavior are subject to change at any time and may not be backwards compatible between versions. Expect breaking changes.
- Central control plane: voiyd-server provides the API and manages cluster state.
- Node agent: voiyd-node runs on each worker node and integrates with a Runtime such as containerd. More runtimes are beeing added for example the Exec runtime for legacy applications.
- Task orchestration: Deploy workload with Tasks - the unit of scheduling.
- Declarative configuration: Define cluster resources as yaml or json and apply them all at once from a single source of truth.
- High-Latency Tolerance: Designed for stretched clusters across vast distances, making it ideal for edge and IoT deployments.
- Volume management: Create volumes and attach them to tasks. Host-local mounts for data, templates for application configuration.
- Networking: Expose services with built-in CNI support.
- Scheduling: Built-in reactive scheduler for placing Tasks on nodes.
- Event and log streaming: Task log streaming is relayed through the server.
- Node management and upgrades: Perform node upgrades remotely with a single command.
- Pluggable storage backends: BadgerDB-based repository implementation by default.
- CLI-focused: Use voiydctl to manage clusters.
- Instrumentation: Metrics and tracing hooks in pkg/instrumentation.
voiyd-server- Exposes gRPC/HTTP APIs for cluster management
- Stores cluster state using pluggable storage backends (BadgerDB, in-memory)
- Handles task scheduling and placement decisions
- Manages cluster events and log streaming
- Supports state replication for redundancy (in development)
voiyd-node- Runs on each node.
- Subscribes to events and executes tasks
- Establishes an outbound connection to the server and subscribes to events.
- Manages tasks using a runtime and reports status and metrics back to the server.
- Can operate behind NAT/firewalls as long as it can reach the server.
voiydctl- Communicates only with the server
- Supports multiple clusters
- Provides intuitive commands for managing tasks, nodes, and volumes
- Streams logs and events in real-time
See the Quick Start Guide on how to setup and run voiyd clusters. See the full Documentation for more information.
voiyd is licensed under the Apache License, Version 2.0.
See the LICENSE file for details.
See the Contribution Guide

