Pluggable runtimes
Run the same workload on Docker, Podman, containerd, Cloud Hypervisor, or Firecracker. One manifest, swap the runtime in a single line.
Run your workloads on Docker, Podman, containerd, Cloud Hypervisor, or Firecracker — from the same declarative YAML and REST API. A lightweight alternative to Kubernetes.
cargo install --git https://github.com/kemeter/ring.gitDescribe your deployment once and pick where it runs. Switch between Docker, Podman, containerd, Cloud Hypervisor, and Firecracker by changing a single line — Ring handles creation, networking, health checks, and scaling the same way for each.
deployments:
web-app:
name: web-app
namespace: production
runtime: docker
image: "nginx:1.21"
replicas: 3
health_checks:
- type: http
url: "http://localhost:80/"
interval: "10s"
timeout: "5s"Every operation available through the CLI is also available via the REST API. Integrate Ring into your CI/CD pipelines, scripts, and automation workflows.
$ curl -X POST http://localhost:3030/deployments \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "web-app",
"namespace": "production",
"runtime": "docker",
"image": "nginx:1.21",
"replicas": 3
}'Store sensitive values encrypted at rest with AES-256-GCM. Reference secrets in your deployments and they are decrypted and injected at deployment time.
deployments:
secure-app:
name: secure-app
namespace: production
image: "myapp:latest"
environment:
DATABASE_HOST: "db.production"
DATABASE_PASSWORD:
secretRef: "database-password"
API_KEY:
secretRef: "api-key"Configure health checks and Ring performs zero-downtime rolling updates automatically. If a new container fails, the rollout stops and old containers stay running.
deployments:
web-app:
name: web-app
image: "nginx:1.21"
replicas: 3
health_checks:
- type: http
url: "http://localhost:80/healthz"
interval: "10s"
timeout: "5s"
threshold: 3
on_failure: restartOrganize deployments by environment with namespaces. Each namespace gets its own isolated network. Deploy the same application across multiple environments.
namespaces:
production:
name: production
staging:
name: staging
deployments:
prod-app:
name: my-app
namespace: production
image: "myapp:v1.2.3"
replicas: 5
staging-app:
name: my-app
namespace: staging
image: "myapp:staging"
replicas: 2A pragmatic alternative to Kubernetes for single-node deployments.
Run the same workload on Docker, Podman, containerd, Cloud Hypervisor, or Firecracker. One manifest, swap the runtime in a single line.
Every CLI operation is also an API call. Integrate Ring into your CI/CD pipelines and scripts.
Sensitive values encrypted at rest with AES-256-GCM, decrypted and injected at deployment time.
Zero-downtime rolling updates. If a new workload fails, the rollout stops automatically.