feat/fleet-staging-openbao #313

Open
johnride wants to merge 11 commits from feat/fleet-staging-openbao into master

11 Commits

Author SHA1 Message Date
5c2e1fa401 Merge pull request 'refactor(fleet-deploy): rename HARMONY_SECRET_NAMESPACE to HARMONY_CONFIG_NAMESPACE' (#314) from refactor/config-namespace-env-var into feat/fleet-staging-openbao
All checks were successful
Run Check Script / check (pull_request) Successful in 2m17s
Reviewed-on: #314
2026-06-01 15:42:34 +00:00
2e9052b217 fix(openbao): remove extra blank line in example
All checks were successful
Run Check Script / check (pull_request) Successful in 2m26s
Pre-existing formatting issue caught by cargo fmt --check.
2026-05-31 10:12:54 -04:00
f7299ebe2b refactor(fleet-deploy): rename HARMONY_SECRET_NAMESPACE to HARMONY_CONFIG_NAMESPACE
Some checks failed
Run Check Script / check (pull_request) Failing after 51s
The env var name was a misnomer — ConfigClient resolves both config and
secrets, not just secrets. The struct field was already config_namespace.
Legacy SecretManager keeps the old var; this forces migration to
ConfigClient for new code.
2026-05-31 09:13:39 -04:00
d39aa15152 feat: fleet deploy uses configuration from configclient for all settings, update the 0_3 plan
Some checks failed
Run Check Script / check (pull_request) Failing after 51s
2026-05-31 09:06:20 -04:00
57d056fced fix(openbao): scope unseal-keys cache file per instance
Some checks failed
Run Check Script / check (pull_request) Failing after 53s
The root token + unseal keys were written to a single fixed
`~/.local/share/harmony/openbao/unseal-keys.json`, so deploying a second
OpenBao instance (different namespace/release) overwrote the first's keys —
after which the first could never be unsealed. Key the file by
namespace+release (`unseal-keys-<ns>-<release>.json`); `cached_root_token`
now takes the `OpenbaoInstance` to read the right one.
2026-05-30 11:07:03 -04:00
44aa83199a fix(harmony_cli): drop ANSI colour codes around log emojis
`console::style(emoji).green()/.yellow()/.red()/.blue()` embedded raw ANSI
escapes in the message string. `console` force-emits them off its own TTY
detection, which disagrees with the tracing writer, so they leaked as literal
`\x1b[..m` garbage around the emoji. Emit plain emojis — the glyph already
conveys status and the tracing fmt layer still colours the level.
2026-05-30 11:05:30 -04:00
4fef957edb feat: Example openbao now can do openbao setup and better readme
Some checks failed
Run Check Script / check (pull_request) Failing after 51s
2026-05-30 08:40:54 -04:00
af3205d353 refactor(harmony_cli): defer topology prep so --list/declined runs are no-ops
`Maestro::initialize` (hence `topology.ensure_ready()`) ran before `init`'s
`--list` / confirmation short-circuits, so merely listing a binary's scores —
or declining to run them — still prepared the topology (cert-manager install,
etc.). Build the maestro unprepared and call `prepare_topology()` only once we
commit to interpreting. Expose `Maestro::prepare_topology`; add tests proving
`--list` skips prep while the run path triggers it.
2026-05-30 05:55:49 -04:00
199e285e52 feat: Use tracing instead of logger in harmon_cli and work on fleet_staging_install refactor to use harmony_cli properly, still some more work to do
All checks were successful
Run Check Script / check (pull_request) Successful in 2m16s
2026-05-30 05:04:34 -04:00
fac83d853d refactor(fleet-staging): use tracing instead of println for output
All checks were successful
Run Check Script / check (pull_request) Successful in 2m30s
Swap env_logger for tracing_subscriber (its fmt bridges the framework's
log:: deploy-progress output) and route the install banner + step logs
through tracing::info! — no raw println.
2026-05-29 22:39:39 -04:00
0400e9d454 feat(fleet-staging): add OpenBao + seed FleetDeploySecrets; route operator creds through the deploy crate
fleet_staging_install now deploys OpenBao (co-located in fleet-staging,
cert-manager TLS at secrets-stg.<base>), configures it (fleet-deployer
read policy), and seeds the operator's FleetDeploySecrets so the operator
can be upgraded alone via 'harmony-fleet-deploy --from-tag'. Behavior of
the existing bring-up is unchanged.

Credential-TOML construction moved out of the example into
OperatorCredentials::zitadel_jwt (deploy crate) so all callers share it.
New openbao::cached_root_token() lets the seed reuse the root token setup
already cached. Seeding mirrors the harmony_sso port-forward pattern.
2026-05-29 20:25:22 -04:00