Shep is an Ansible-like orchestration engine implemented in Go. It focuses on a plugin-forward architecture for process-isolated extensions and FlatBuffers for efficient, cross-language RPC payloads.
Primary goals:
- Provide a lightweight, extensible runtime for running tasks and playbooks across hosts.
- Use sub-process plugin architecture to allow plugins in multiple languages while keeping the core in Go.
- Use FlatBuffers for RPC payload schemas to ensure compact, forward/backward-compatible messages and fast (de)serialization.
completed so far
- sub-process style plugins communicate over stdin/stdout
- flatbuffer plugin handshake
- parsing of inventory in yaml (no ini) to flatbuffer domain model
- parsing of playbook and tasks to flatbuffer domain model
- go table tests for parsing of inventory, playbook, task
design prompts (slop, it's all slop)
- architecture guide
- shep-orchestration.md
- shep-plugin-inventory-plan.md
- shep-plugin-modeling.md
- shep-plugin-playbook-plan.md
- shep-plugin-tasks-plan.md
- test-update.md