2.6 KiB
2.6 KiB
Harmony Roadmap
Six phases to take Harmony from working prototype to production-ready open-source project.
| # | Phase | Status | Depends On | Detail |
|---|---|---|---|---|
| 1 | Harden harmony_config |
Not started | — | Test every source, add SQLite backend, wire Zitadel + OpenBao, validate zero-setup UX |
| 2 | Migrate to harmony_config |
Not started | 1 | Replace all 19 SecretManager call sites, deprecate direct harmony_secret usage |
| 3 | Complete harmony_assets |
Not started | 1, 2 | Test, refactor k3d and OKD to use it, implement Url::Url, remove LFS |
| 4 | Publish to GitHub | Not started | 3 | Clean history, set up GitHub as community hub, CI on self-hosted runners |
| 5 | E2E tests: PostgreSQL & RustFS | Not started | 1 | k3d-based test harness, two passing E2E tests, CI job |
| 6 | E2E tests: OKD HA on KVM | Not started | 5 | KVM test infrastructure, full OKD installation test, nightly CI |
Current State (as of branch feature/kvm-module)
harmony_configcrate exists withEnvSource,LocalFileSource,PromptSource,StoreSource. 12 unit tests. Zero consumers in workspace — everything still usesharmony_secret::SecretManagerdirectly (19 call sites).harmony_assetscrate exists withAsset,LocalCache,LocalStore,S3Store. No tests. Zero consumers. Thek3dcrate has its ownDownloadableAssetwith identical functionality and full test coverage.harmony_secrethasLocalFileSecretStore,OpenbaoSecretStore(token/userpass only),InfisicalSecretStore. Works but no Zitadel OIDC integration.- KVM module exists on this branch with
KvmExecutor, VM lifecycle, ISO download, two examples (example_linux_vm,kvm_okd_ha_cluster). - RustFS module exists on
feat/rustfsbranch (2 commits ahead of master). - 39 example crates, zero E2E tests. Unit tests pass across workspace (~240 tests).
- CI runs
cargo check,fmt,clippy,teston Gitea. No E2E job.
Guiding Principles
- Zero-setup first: A new user clones, runs
cargo run, gets prompted for config, values persist to local SQLite. No env vars, no external services required. - Progressive disclosure: Local SQLite → OpenBao → Zitadel SSO. Each layer is opt-in.
- Test what ships: Every example that works should have an E2E test proving it works.
- Community over infrastructure: GitHub for engagement, self-hosted runners for CI.