Developer Guide
This document describes the architecture of Parallax, how to contribute, and provides a brief API overview.
Architecture Overview
+-------------+ +---------------+ +----------------+
| CLI (cobra) | --> | Core Packages | --> | Module Runtime |
+-------------+ +---------------+ +----------------+
- CLI Layer: Located under
cmd/andpkg/cmd. It defines commands such asplayand handles configuration. - Core Packages: Found in
pkg/, these handle inventory parsing, playbook parsing, remote connections, and module execution. - Module Runtime: Implemented in
pkg/moduleandmodule-sdk, providing built-in modules and a framework for custom modules.
Contribution Guidelines
- Follow the commit message style
type(scope): description. - Run
go vet,golint, andgo test ./...before submitting a pull request. - Format code with
gofmt -s. - Documentation updates should accompany code changes when relevant.
API Overview
The key packages are:
inventory: Parses INI, YAML, and dynamic inventory sources and resolves host patterns.playbook: Loads and validates YAML playbooks.remote: Provides SSH, WinRM, and local connection implementations.module: Contains the module executor and registry.
Each package exposes well-documented Go types and functions. See the source files under pkg/ for details.