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