From c6145eef75417d7f8225950811ca448724de7e60 Mon Sep 17 00:00:00 2001 From: Nathan Flurry Date: Tue, 2 Jul 2024 23:28:27 -0700 Subject: [PATCH] fix(infra): pass dynamic tunnel host port to cluster-server-install --- lib/bolt/core/src/context/project.rs | 14 ++++++++++++++ lib/bolt/core/src/context/service.rs | 4 ---- .../install_scripts/components/traefik.rs | 6 +++--- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/bolt/core/src/context/project.rs b/lib/bolt/core/src/context/project.rs index ef659c968..e6b42eb51 100644 --- a/lib/bolt/core/src/context/project.rs +++ b/lib/bolt/core/src/context/project.rs @@ -819,6 +819,20 @@ impl ProjectContextData { } } + pub async fn host_tunnel(self: &Arc) -> String { + let k8s_infra = terraform::output::read_k8s_infra(self).await; + + let tunnel_port = if let config::ns::ClusterKind::SingleNode { tunnel_port, .. } = + &self.ns().cluster.kind + { + *tunnel_port + } else { + 5000 + }; + + format!("{}:{tunnel_port}", *k8s_infra.traefik_tunnel_external_ip) + } + /// Origin used for building links to the API endpoint. pub fn origin_api(&self) -> String { if let Some(domain_main_api) = self.domain_main_api() { diff --git a/lib/bolt/core/src/context/service.rs b/lib/bolt/core/src/context/service.rs index e2c1263bb..7dd2ddffa 100644 --- a/lib/bolt/core/src/context/service.rs +++ b/lib/bolt/core/src/context/service.rs @@ -1320,10 +1320,6 @@ impl ServiceContextData { "TLS_ROOT_CA_CERT_PEM".into(), (*tls.root_ca_cert_pem).clone(), ); - env.insert( - "K8S_TRAEFIK_TUNNEL_EXTERNAL_IP".into(), - (*k8s_infra.traefik_tunnel_external_ip).clone(), - ); // } Ok(env) diff --git a/svc/pkg/cluster/worker/src/workers/server_install/install_scripts/components/traefik.rs b/svc/pkg/cluster/worker/src/workers/server_install/install_scripts/components/traefik.rs index ea48c099a..6be5accdb 100644 --- a/svc/pkg/cluster/worker/src/workers/server_install/install_scripts/components/traefik.rs +++ b/svc/pkg/cluster/worker/src/workers/server_install/install_scripts/components/traefik.rs @@ -168,7 +168,7 @@ pub fn tunnel(name: &str) -> GlobalResult { Ok(instance(Instance { name: name.to_string(), static_config: tunnel_static_config(), - dynamic_config: tunnel_dynamic_config(&util::env::var("K8S_TRAEFIK_TUNNEL_EXTERNAL_IP")?), + dynamic_config: tunnel_dynamic_config(&util::env::var("RIVET_HOST_TUNNEL")?), tcp_server_transports, })) } @@ -194,7 +194,7 @@ fn tunnel_static_config() -> String { config } -fn tunnel_dynamic_config(tunnel_external_ip: &str) -> String { +fn tunnel_dynamic_config(host_tunnel: &str) -> String { let mut config = String::new(); for TunnelService { name, .. } in TUNNEL_SERVICES.iter() { config.push_str(&formatdoc!( @@ -208,7 +208,7 @@ fn tunnel_dynamic_config(tunnel_external_ip: &str) -> String { serversTransport = "{name}" [[tcp.services.{name}.loadBalancer.servers]] - address = "{tunnel_external_ip}:5000" + address = "{host_tunnel}" tls = true "# ))