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]
async fn main() {
deploy_nats(K8sAnywhereTopology::with_config(
K8sAnywhereConfig::remote_k8s_from_env_var("HARMONY_NATS_SITE_1"),
))
.await;
deploy_nats(K8sAnywhereTopology::with_config(
K8sAnywhereConfig::remote_k8s_from_env_var("HARMONY_NATS_SITE_2"),
))
.await;
let site1_topo = K8sAnywhereTopology::with_config(K8sAnywhereConfig::remote_k8s_from_env_var(
"HARMONY_NATS_SITE_1",
));
let site2_topo = K8sAnywhereTopology::with_config(K8sAnywhereConfig::remote_k8s_from_env_var(
"HARMONY_NATS_SITE_2",
));
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();
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!(
r#"config:
cluster:
@@ -46,14 +77,21 @@ async fn deploy_nats<T: Topology + HelmCommand + TlsRouter + 'static>(topology:
hosts:
- nats-ws.{}
gateway:
enabled: false
# name: my-gateway
# port: 7522
enabled: true
name: {}
port: 7222
gateways: {}
service:
ports:
gateway:
enabled: true
natsBox:
container:
image:
tag: nonroot"#,
topology.get_internal_domain().await.unwrap().unwrap(),
cluster_name,
gateway_gateways,
));
let namespace = "nats";
let nats = HelmChartScore {