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

57 lines
3.2 KiB
Markdown

### 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.