A scalable, container-native job scheduler for CI and research workloads.
Hades runs containerized jobs at scale. It queues and executes large numbers of independent jobs in parallel, keeping each step isolated inside its own container. The same scheduler powers automated grading for university programming courses and general-purpose batch workloads on research computing clusters.
Design principles:
- Simple - just the essentials needed to run containerized jobs, nothing more.
- Scalable - queue and execute a large volume of jobs in parallel.
- Container-based - every job step runs isolated in its own container.
- Kubernetes-native - a controller pattern built on Custom Resource Definitions for production, plus a Docker executor for local development.
- Extensible - integrate new execution platforms and workflow systems with ease.
┌─────────┐ ┌─────────┐ ┌───────────────┐
│ │ jobs │ │ jobs │ │
│ API │────────▶│ NATS │─────────▶│ Scheduler │
│ │ │ Queue │ │ │
└─────────┘ └────┬────┘ └───────┬───────┘
▲ │
status │ logs ▼
│ ┌──────────┴──────────┐
┌──────┴──────┐ │ │
│ │ ▼ ▼
│ Log │ ┌─────────────┐ ┌─────────────────┐
│ Manager │ │ Docker │ │ Kubernetes │
│ (HTTP API) │ │ Executor │ │ / Operator │
│ │ └─────────────┘ └─────────────────┘
└─────────────┘
Jobs enter through the API, queue in NATS, and the Scheduler dispatches each one to the Docker Executor (local development) or the Kubernetes Operator (production). Every step runs in its own container and shares data through a common volume. The Log Manager aggregates status and logs and exposes them over HTTP.
| Repository | What it does |
|---|---|
| hades | The core scheduler: API, NATS queue, scheduler, Docker executor, Kubernetes operator, log manager, and dashboard. |
| git-container | Isolated container that clones repositories and performs the git operations a CI job needs. |
| hades-artemis-adapter | Collects build logs and test results from Hades and forwards the combined result to Artemis. |
| Hades-Reporter | Lightweight Go reporter that posts job start-time metadata to an external endpoint for benchmarking. |
| docs | The Docusaurus documentation site for Hades. |
- 📖 Documentation - ls1intum.github.io/hades
- 🧩 Core repository - github.com/ls1intum/hades
- 🐛 Issues & discussion - open an issue in the relevant repository above.
Hades is developed at the Research Group Applied Education Technologies (AET), Technical University of Munich.