Replace all Command::new("kubectl") calls with harmony-k8s K8sClient
methods:
- wait_for_pod_ready() instead of kubectl get pod jsonpath
- exec_pod_capture_output() for OpenBao init/unseal/configure
- delete_resource<MutatingWebhookConfiguration>() for webhook cleanup
- port_forward() instead of kubectl port-forward subprocess
Thread K3d and K8sClient through all functions instead of
reconstructing context strings. Consolidate path helpers into
harmony_data_dir().
Add Zitadel deployment via ZitadelScore with retry logic for CNPG CRD
registration race and PostgreSQL cluster readiness timing.
Add CLI flags: --demo, --sso-demo, --skip-zitadel, --cleanup.
Add --demo mode: ConfigManager with EnvSource + StoreSource<OpenbaoSecretStore>.
Configure OpenBao with harmony-dev policy, userpass auth, and JWT auth.
31 lines
866 B
TOML
31 lines
866 B
TOML
[package]
|
|
name = "example-harmony-sso"
|
|
edition = "2024"
|
|
version.workspace = true
|
|
readme.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
harmony = { path = "../../harmony" }
|
|
harmony_cli = { path = "../../harmony_cli" }
|
|
harmony_config = { path = "../../harmony_config" }
|
|
harmony_macros = { path = "../../harmony_macros" }
|
|
harmony_secret = { path = "../../harmony_secret" }
|
|
harmony_types = { path = "../../harmony_types" }
|
|
harmony-k8s = { path = "../../harmony-k8s" }
|
|
k3d-rs = { path = "../../k3d" }
|
|
k8s-openapi.workspace = true
|
|
kube.workspace = true
|
|
tokio.workspace = true
|
|
url.workspace = true
|
|
log.workspace = true
|
|
env_logger.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
anyhow.workspace = true
|
|
reqwest.workspace = true
|
|
clap = { version = "4", features = ["derive"] }
|
|
schemars = "0.8"
|
|
interactive-parse = "0.1.5"
|
|
directories = "6.0.0"
|