Skip to content

sajalkmr/ordo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ordo

  • ordo is a simplified container orchestrator written in Go. It provides a practical understanding of orchestrator concepts like task management, scheduling, and worker communication.

Requirements

  • Go (v1.16 or later)
  • Docker
  • BoltDB (v1.3.1)
  • chi (v5.0.3)
  • goprocinfo

Features

Task Management

  • Task States: Implement task states (Pending, Running, Completed, Failed).
  • Docker Integration: Start/stop Docker containers via Docker API.
  • Task Persistence: Store tasks in-memory or in BoltDB.

Worker Features

  • Task Queue: FIFO queue for processing tasks.
  • Task Execution: Run assigned tasks as Docker containers.
  • Metrics Collection: Collect CPU, memory, disk usage data. (Pending)

Manager Features

  • Task Scheduling: Basic task scheduling (Round-Robin).
  • Enhanced Scheduler: Resource-based E-PVM scheduler. (Pending)
  • Health Checks: Check task health, auto-restart on failure. (Pending)

General Features

  • Modular Design: Separate modules for tasks, workers, managers.
  • Testability: Set up automated testing. (Pending)

Limitations & Future Enhancements

  • Security: Add security measures. (Pending)
  • Service Discovery: Enable service discovery for tasks. (Pending)
  • High Availability: Implement redundancy for manager/workers. (Pending)

About

A container orchestrator in Go

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages