Files
harmony/docs
Jean-Gabriel Gill-Couture 51b39505bb
Some checks failed
Run Check Script / check (pull_request) Failing after 37s
docs(adr): reframe desired-state ADR as proposal and explore alternatives
Re-frame ADR-021 from an accepted shell-executor decision into an
explicit problem statement plus one candidate proposal (Alternative A),
with an Open Questions section capturing the concerns raised during
review: wrong abstraction level, no idempotency, no resource model, no
typed status, incoherence with the Score-Topology-Interpret pattern,
and weak security posture.

Add ADR-022 enumerating four alternatives:
- A: shell command executor (current scaffold)
- B: mini-kubelet with typed resource manifests and reconcilers
- C: embedded Score interpreter on the agent
- D: hybrid — typed manifests now, Scores later

Recommends Alternative D: ship typed AgentManifest/AgentStatus with a
small fixed reconciler set for the IoT MVP, keeping an explicit
migration seam to the Score-based end state once Scores become
uniformly wire-serializable.

Also documents what specifically is wrong with the happy-path shell
executor in harmony_agent/src/desired_state.rs and clarifies that the
NATS KV watch + typed CAS write skeleton is reusable, while the
execute_command shell-out should be gated behind an audited ShellJob
variant or deleted once real reconcilers land.
2026-04-10 07:13:38 -04:00
..

Harmony Documentation Hub

Welcome to the Harmony documentation. This is the main entry point for learning everything from core concepts to building your own Score, Topologies, and Capabilities.

1. Getting Started

If you're new to Harmony, start here:

  • Getting Started Guide: A step-by-step tutorial that takes you from an empty project to deploying your first application.
  • Core Concepts: A high-level overview of the key concepts in Harmony: Score, Topology, Capability, Inventory, Interpret, ...

2. Use Cases & Examples

See how to use Harmony to solve real-world problems.

  • OPNsense VM Integration: Boot a real OPNsense firewall in a local KVM VM and configure it entirely through Harmony. Fully automated, zero manual steps — the flashiest demo. Requires Linux with KVM.
  • PostgreSQL on Local K3D: Deploy a production-grade PostgreSQL cluster on a local K3D cluster. The fastest way to get started.
  • OKD on Bare Metal: A detailed walkthrough of bootstrapping a high-availability OKD cluster from physical hardware.

3. Component Catalogs

Discover existing, reusable components you can use in your Harmony projects.

4. Developer Guides

Ready to build your own components? These guides show you how.

  • Writing a Score: Learn how to create your own Score and Interpret logic to define a new desired state.
  • Writing a Topology: Learn how to model a new environment (like AWS, GCP, or custom hardware) as a Topology.
  • Adding Capabilities: See how to add a Capability to your custom Topology.

5. Architecture Decision Records

Harmony's design is documented through Architecture Decision Records (ADRs). See the ADR Overview for a complete index of all decisions.