Draforge

by oaslananka

1 stars
231 downloads
Not rated
GitHub Website

About

Kubernetes DRA observability, simulator and diagnostics for GPU accelerator workloads.

Details

Author
oaslananka
GitHub stars
1
Downloads
231

- Bubble Tea TUI: Professional terminal-based monitor for dynamic pool capacities
- Interactive Graph Dashboard: Real-time SVG visualization of relationships between Pods, Claims, Devices, and Pools
- Install Go 1.26+
- Install kind (with DRA feature gate enabled)
- Install task

Follow the repository README to install the server and add its MCP configuration to your client.

DRAForge

DRAForge is a Dynamic Resource Allocation (DRA) observability, simulation, and diagnostics platform for Kubernetes. It allows developers and administrators to model, simulate, and diagnose cluster hardware resource allocations (GPUs, edge devices, smartNICs) dynamically—without requiring physical accelerator hardware.

Go Version
License
OpenSSF Scorecard

---

Why DRAForge?

Kubernetes Dynamic Resource Allocation (DRA) offers fine-grained, driver-controlled accelerator sharing. However, developing and debugging DRA configurations presents a major challenge:
1. Hardware Scarcity: Acquiring and configuring dedicated accelerator nodes (e.g., NVIDIA H100 GPUs) for test environments is costly and slow.
2. Observability Gap: Native Kubernetes scheduling logs make it difficult to visualize why a resource claim failed to bind to a pod.

DRAForge bridges this gap by providing an evidence-based diagnostics registry, a dynamic virtual device simulator, a terminal user interface (TUI), and a real-time interactive relationship graph dashboard.

---

Features

- Virtual Device Pools: Simulate arbitrary hardware profiles (e.g. GPUs, FPGAs, High-Speed NICs) on worker nodes using custom attributes and capacities.
- Diagnostics Doctor: Honest, non-mocked configuration analysis (e.g. API availability, version compatibility, ResourceSlice consistency checks).
- Explain Engine: Real-time evaluation of selectors, capacity bounds, and node affinity to pinpoint why claims are pending.
- Bubble Tea TUI: Professional terminal-based monitor for dynamic pool capacities.
- Interactive Graph Dashboard: Real-time SVG visualization of relationships between Pods, Claims, Devices, and Pools.

---

Architecture

graph TD
    subgraph DOKS Cluster
        Server[DRAForge Server] <--> WebSPA[Vite + React SPA Dashboard]
        Controller[DRAForge Controller] <--> SimulatedDevicePool[SimulatedDevicePool CRD]
        Plugin[Node Plugin DaemonSet] --> ResourceSlice[ResourceSlice Spec]
        APIServer[Kubernetes API Server] <--> Server
        APIServer <--> Controller
        APIServer <--> Plugin
    end
    CLI[DRAForge CLI] <--> APIServer

---

Install

From source (Go 1.26+)

go install github.com/oaslananka/draforge/cmd/draforge@latest

Or clone and build locally:

git clone https://github.com/oaslananka/draforge.git
cd draforge
task build          # Builds all three binaries into bin/
./bin/draforge version

Binaries are also available as pre-built archives from the GitHub Releases page.

Quickstart

Quickstart A: Local Kind cluster development

To run DRAForge locally using a Go development environment and a kind cluster:

1. Prerequisites:
- Install Go 1.26+
- Install kind (with DRA feature gate enabled)
- Install task

2. Build and Deploy:

   task build
kubectl apply -f deploy/crds/simulateddevicepool-crd.yaml
kubectl apply -f examples/scenarios/basic-gpu.yaml

3. Launch TUI:

   ./bin/draforge tui

Quickstart B: DigitalOcean Kubernetes (DOKS) Showcase

> ⚠️ Billable Resources: This task provisions a live DOKS cluster and DOCR registry on your DigitalOcean account and incurs cloud costs. Always run task demo:down when finished to destroy all billable resources.

To deploy a live read-only public showcase to DOKS:

task demo:up
This script audits resource limits, runs Terraform provisioners, builds images remotely via Kaniko, installs the Helm release, and outputs the live external URL.

To tear down the showcase and clean all billable resources:

task demo:down

Testing

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.