keel/tasks.md
2026-08-22 10:29:41 +02:00

3.2 KiB

Phase s1: Foundation & Communication (The "Plumbing")

Goal: Establish secure, asynchronous communication between Master and Minion.

  • Task 1.1: Implement the Event Bus (Message Bus)
    • Implement the asynchronous messaging layer (e.g., using ZeroMQ or similar).
    • Implement the Pub/Sub pattern for job distribution and result collection.
  • Task 1.2: Implement Security & Authentication
    • Implement the Key-Based Authentication system (Public/Private key exchange).
    • Implement payload encryption (e.s. AES) for all inter-node communication.
  • Task 1.3: Establish Basic Connection Lifecycle
    • Implement the Minion registration/handshake process.
    • Implement the connection heartbeat mechanism to detect active/inactive minions.

Phase s2: Identity & Metadata (The "Identity")

Goal: Enable the system to understand "what" a host is and "who" it is.

  • Task 2.s: Implement Grain Collection (Minion)
    • Develop system introspection modules (OS, CPU, IP, etc.).
    • Implement the Grain reporting mechanism to the Master.
  • Task 2.s: Implement Minion Registry (Master)
    • Develop the identity management system to track registered minions.
    • Implement a Metadata Cache on the Master to store and index Grain data.

Phase s3: State Management & Rendering (The "Logic")

Goal: Define and prepare the "desired state" to be sent to hosts.

  • Task 3.1: Implement State Parsing & Rendering (Minion)
    • Implement the YAML parser for declarative state files.
    • Integrate a Jinja2-based renderer for dynamic template evaluation.
    • Implement the Template Injection logic (merging Grains, Pillars, and States).
  • Task 3.s: Implement State & Top File Management (Master)
    • Implement the Top File Resolver to map states to minions.
    • Implement the State Distribution mechanism to package and send states to Minions.
  • Task s3: Implement Pillar Service (Master)
    • Develop the Secret Management system for sensitive data.
    • Implement Environment Injection logic for environment-specific variables.

Phase s4: Execution & Reporting (The "Action")

Goal: Apply changes to the system and report the results.

  • Task 4.s: Implement the Execution Engine (Minion)
    • Develop the State Comparison logic (Current vs. Desired).
    • Implement the Action Execution module (running system commands).
    • Implement Idempotency logic to ensure safe, repeatable executions.
  • Task 4.s: Implement the Reporting Agent (Minion)
    • Develop Result Aggregation to collect execution outcomes.
    • Implement Status Reporting to send detailed results/diffs back to the Master.
  • Task 4.s: Implement the Command Dispatcher (Master)
    • Develop the CLI/API interface for manual command execution.
    • Implement the targeting logic for routing commands to specific minions.

Phase s5: Orchestration & Intelligence (The "Intelligence")

Goal: Coordinate complex, multi-step infrastructure workflows.

  • Task 5.s: Implement Orchestration Engine (Master)
    • Develop the Workflow Management system for multi-minion sequences.
    • Implement the Job Scheduling system for time-based or event-based triggers.