Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A flexible and stateless job scheduler / CI System

NotificationsYou must be signed in to change notification settings

ls1intum/hades

Repository files navigation

Welcome to HadesCI, a robust Continuous Integration (CI) tool designed with scalability in mind. HadesCI's primary mission is to provide a straightforward, scalable, and adaptable CI solution tailored for executing build jobs in large-scale programming courses.

Design Goals

HadesCI embodies several core design principles:

  • Simplicity: Unlike many other CI implementations, HadesCI focuses on delivering just the essentials required to execute build jobs efficiently.

  • Scalability: HadesCI has scalability at its core, capable of queuing and executing a vast number of build jobs in parallel, making it ideal for large-scale operations.

  • Container-Based: HadesCI executes build jobs within containers, ensuring a high level of isolation and security between jobs.

  • Kubernetes Native: As a Kubernetes-native solution, HadesCI leverages the power and flexibility of Kubernetes as its primary execution platform.

  • Extensibility: HadesCI is designed to be highly extensible, allowing for easy integration with other build execution platforms as needed.

Architecture

HadesCI is built upon the following key components:

  • API: Serving as the main entry point, the API handles all incoming requests

  • Queue: The queue component is responsible for managing the queue of build jobs, ensuring efficient scheduling.

  • Scheduler: The scheduler orchestrates the execution of build jobs, coordinating with the executor components.

    • Docker Executor: Designed for local development, the Docker executor is responsible for running build jobs within Docker containers.

    • Kubernetes Executor: Intended for production use, the Kubernetes executor executes build jobs within a Kubernetes cluster.

Getting Started

Prerequisites

Running in Docker Mode

To run HadesCI in Docker mode, follow these steps:

  1. Copy the.env.example file to.env.
    • The default is to use docker as the executor!
    • Changes should not be necessary for a local test.
  2. Start the HadesCI services using Docker Compose
docker-compose -f docker-compose.yml up -d

Running in Kubernetes Mode

We assume that you have a Kubernetes cluster running and a kubeconfig file to connect to it.

To run HadesCI in Kubernetes mode, follow these steps:

  1. Copy the.env.example file to.env.
    • Change theHADES_EXECUTOR variable tokubernetes.
  2. Adjust the Kubeconfig volume mount in thedocker-compose.k8s.yml file.
  3. Start the HadesCI services using Docker Compose
docker-compose -f docker-compose.yml -f docker-compose.k8s.yml up -d

[8]ページ先頭

©2009-2025 Movatter.jp