diff --git a/cli/src/clients/admin_client.rs b/cli/src/clients/admin_client.rs index bbbf9f6756..de149c41c4 100644 --- a/cli/src/clients/admin_client.rs +++ b/cli/src/clients/admin_client.rs @@ -114,6 +114,7 @@ pub struct AdminClient { pub(crate) request_timeout: Duration, pub(crate) admin_api_version: AdminApiVersion, pub(crate) restate_server_version: Option, + pub(crate) advertised_ingress_address: Option, } impl AdminClient { @@ -139,6 +140,7 @@ impl AdminClient { request_timeout: CliContext::get().request_timeout(), admin_api_version: AdminApiVersion::Unknown, restate_server_version: None, + advertised_ingress_address: None, }; if let Ok(envelope) = client.version().await { @@ -195,6 +197,8 @@ impl AdminClient { ) { client.restate_server_version = Some(version_information.version); client.admin_api_version = admin_api_version; + client.advertised_ingress_address = + version_information.ingress_endpoint.map(|u| u.to_string()); Ok(client) } else { bail!("The CLI is not compatible with the Restate server '{}'. Please update the CLI to match the Restate server version '{}'.", client.base_url, version_information.version); diff --git a/cli/src/commands/whoami.rs b/cli/src/commands/whoami.rs index c405b2b219..304b960e86 100644 --- a/cli/src/commands/whoami.rs +++ b/cli/src/commands/whoami.rs @@ -198,6 +198,15 @@ pub async fn run(State(env): State) { match client.health().await { Ok(envelope) if envelope.status_code().is_success() => { c_success!("Admin Service '{}' is healthy!", client.base_url); + if let Some(advertised_ingress_address) = client.advertised_ingress_address { + let mut table = Table::new(); + table.load_preset(comfy_table::presets::NOTHING); + table.add_row(vec![ + "Advertised ingress address", + &advertised_ingress_address, + ]); + c_println!("{}", table); + } } Ok(envelope) => { c_error!("Admin Service '{}' is unhealthy:", client.base_url);