Skip to content
@Hades-Scheduler

Hades-Scheduler

Hades logo

Hades

A scalable, container-native job scheduler for CI and research workloads.

Documentation Core repository License: MIT


About

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.

Architecture

┌─────────┐         ┌─────────┐          ┌───────────────┐
│         │ 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.

Ecosystem

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.

Resources


Hades is developed at the Research Group Applied Education Technologies (AET), Technical University of Munich.

Popular repositories Loading

  1. hades hades Public

    A flexible and stateless job scheduler / CI System

    Go 11 2

  2. hades-artemis-result-parser hades-artemis-result-parser Public

    Go

  3. CI-Benchmarker CI-Benchmarker Public

    Go

  4. git-container git-container Public

    A git container managing git operations in CI Systems. Used in Hades

    Go 2

  5. Hades-Reporter Hades-Reporter Public

    Go

  6. hades-artemis-adapter hades-artemis-adapter Public

    Go 1

Repositories

Showing 10 of 10 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…