Files
harmony/examples/nats-module/src/main.rs
Jean-Gabriel Gill-Couture 50f62b6437 chore: warning sweep — auto-fix pass + scoped allows for generated code
Workspace warning count: 408 → 105.

Three buckets cleared:

* Auto-fixable (`cargo fix` + `cargo clippy --fix`): unused imports
  removed, unused variables prefixed with `_`, deprecated method
  calls updated. Applied across harmony, harmony-k8s, harmony-agent,
  harmony_inventory_agent, the fleet/ workspace, and ~15 examples.
* Generated code (opnsense-api/src/generated/): 269 snake_case
  warnings + ~10 unreachable-pattern warnings come from
  CamelCase-preserving bindings to OPNsense's HAProxy/Caddy XML
  schemas. Scoped a single `#[allow(non_snake_case,
  unreachable_patterns)]` at `pub mod generated;` rather than
  fighting the codegen — renaming would break serde round-trips
  and the codegen would regenerate them anyway.
* opnsense-codegen parser's defensive `let...else` guards on
  `XmlNode` (currently single-variant): file-level
  `#![allow(irrefutable_let_patterns)]` with a comment explaining
  why we keep the `else` arms (they re-arm if the IR grows a
  second variant).

`harmony_inventory_agent::local_presence::{DiscoveryEvent,
discover_agents}` re-exports were stripped twice by the auto-fix
passes (consumers live in another crate, so the local crate looks
"unused" to lint). Anchored with explicit `pub use` + an
`#[allow(unused_imports)]` annotation noting why.

All 151 harmony lib tests still pass. Remaining ~105 warnings are
mostly real dead code in non-fleet modules + a handful of
unused-imports/variables clippy couldn't auto-resolve; cleared in
the next pass.
2026-05-06 22:51:44 -04:00

78 lines
2.5 KiB
Rust

use harmony::{
inventory::Inventory,
modules::nats::{capability::NatsCluster, score_nats_supercluster::NatsSuperclusterScore},
topology::{K8sAnywhereTopology, decentralized::DecentralizedTopology},
};
#[tokio::main]
async fn main() {
let supercluster_ca_secret_name = "nats-supercluster-ca-bundle";
let tls_cert_name = "nats-gateway";
let jetstream_enabled = "false";
let nats_namespace = "nats-example".to_string();
let site_1_name = "site-1".to_string();
let site_1_domain =
std::env::var("HARMONY_NATS_SITE_1_DOMAIN").expect("missing domain in env for site_1");
let nats_site_1 = NatsCluster {
namespace: nats_namespace.clone(),
domain: site_1_domain.clone(),
replicas: 1,
name: site_1_name.clone(),
gateway_advertise: format!("{site_1_name}-gw.{site_1_domain}:443"),
dns_name: format!("{site_1_name}-gw.{site_1_domain}"),
supercluster_ca_secret_name,
tls_cert_name,
jetstream_enabled,
};
let site_2_name = "site-2".to_string();
let site_2_domain =
std::env::var("HARMONY_NATS_SITE_2_DOMAIN").expect("missing domain in env for site_2");
let nats_site_2 = NatsCluster {
namespace: nats_namespace.clone(),
domain: site_2_domain.clone(),
replicas: 1,
name: site_2_name.clone(),
gateway_advertise: format!("{site_2_name}-gw.{site_2_domain}:443"),
dns_name: format!("{site_2_name}-gw.{site_2_domain}"),
supercluster_ca_secret_name,
tls_cert_name,
jetstream_enabled,
};
let site_3_name = "site-3".to_string();
let site_3_domain =
std::env::var("HARMONY_NATS_SITE_3_DOMAIN").expect("missing domain in env for site_3");
let nats_site_3 = NatsCluster {
namespace: nats_namespace.clone(),
domain: site_3_domain.clone(),
replicas: 1,
name: site_3_name.clone(),
gateway_advertise: format!("{site_3_name}-gw.{site_3_domain}:443"),
dns_name: format!("{site_3_name}-gw.{site_3_domain}"),
supercluster_ca_secret_name,
tls_cert_name,
jetstream_enabled,
};
let clusters = vec![nats_site_1, nats_site_2, nats_site_3];
let nats_supercluster = NatsSuperclusterScore {
nats_cluster: clusters,
ca_certs: None,
};
harmony_cli::run(
Inventory::autoload(),
DecentralizedTopology::<K8sAnywhereTopology>::from_env(),
vec![Box::new(nats_supercluster)],
None,
)
.await
.unwrap();
}