This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user