wip nats supercluster
Some checks failed
Run Check Script / check (pull_request) Failing after 51s

This commit is contained in:
2026-01-09 17:30:51 -05:00
parent 6933280575
commit 270b6b87df

View File

@@ -10,19 +10,50 @@ use log::info;
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
deploy_nats(K8sAnywhereTopology::with_config( let site1_topo = K8sAnywhereTopology::with_config(K8sAnywhereConfig::remote_k8s_from_env_var(
K8sAnywhereConfig::remote_k8s_from_env_var("HARMONY_NATS_SITE_1"), "HARMONY_NATS_SITE_1",
)) ));
.await; let site2_topo = K8sAnywhereTopology::with_config(K8sAnywhereConfig::remote_k8s_from_env_var(
deploy_nats(K8sAnywhereTopology::with_config( "HARMONY_NATS_SITE_2",
K8sAnywhereConfig::remote_k8s_from_env_var("HARMONY_NATS_SITE_2"), ));
))
.await; let site1_domain = site1_topo.get_internal_domain().await.unwrap().unwrap();
let site2_domain = site2_topo.get_internal_domain().await.unwrap().unwrap();
let site1_gateway = format!("nats-gateway.{}", site1_domain);
let site2_gateway = format!("nats-gateway.{}", site2_domain);
tokio::join!(
deploy_nats(
site1_topo,
"site-1",
vec![("site-2".to_string(), site2_gateway)]
),
deploy_nats(
site2_topo,
"site-2",
vec![("site-1".to_string(), site1_gateway)]
),
);
} }
async fn deploy_nats<T: Topology + HelmCommand + TlsRouter + 'static>(topology: T) { async fn deploy_nats<T: Topology + HelmCommand + TlsRouter + 'static>(
topology: T,
cluster_name: &str,
remote_gateways: Vec<(String, String)>,
) {
topology.ensure_ready().await.unwrap(); topology.ensure_ready().await.unwrap();
let mut gateway_gateways = String::new();
for (name, url) in remote_gateways {
gateway_gateways.push_str(&format!(
r#"
- name: {name}
urls:
- nats://{url}:7222"#
));
}
let values_yaml = Some(format!( let values_yaml = Some(format!(
r#"config: r#"config:
cluster: cluster:
@@ -46,14 +77,21 @@ async fn deploy_nats<T: Topology + HelmCommand + TlsRouter + 'static>(topology:
hosts: hosts:
- nats-ws.{} - nats-ws.{}
gateway: gateway:
enabled: false enabled: true
# name: my-gateway name: {}
# port: 7522 port: 7222
gateways: {}
service:
ports:
gateway:
enabled: true
natsBox: natsBox:
container: container:
image: image:
tag: nonroot"#, tag: nonroot"#,
topology.get_internal_domain().await.unwrap().unwrap(), topology.get_internal_domain().await.unwrap().unwrap(),
cluster_name,
gateway_gateways,
)); ));
let namespace = "nats"; let namespace = "nats";
let nats = HelmChartScore { let nats = HelmChartScore {