diff --git a/linkerd/app/src/env.rs b/linkerd/app/src/env.rs index bb09f6c173..bd4052223f 100644 --- a/linkerd/app/src/env.rs +++ b/linkerd/app/src/env.rs @@ -444,7 +444,8 @@ pub fn parse_config(strings: &S) -> Result let trace_protocol = strings.get(ENV_TRACE_PROTOCOL); let trace_service_name = strings.get(ENV_TRACE_SERVICE_NAME); - let trace_collector_addr = parse_control_addr(strings, ENV_TRACE_COLLECTOR_SVC_BASE); + let trace_collector_addr = + parse_optionally_named_control_addr(strings, ENV_TRACE_COLLECTOR_SVC_BASE); let gateway_suffixes = parse(strings, ENV_INBOUND_GATEWAY_SUFFIXES, parse_dns_suffixes); @@ -1133,6 +1134,21 @@ pub fn parse_backoff( pub fn parse_control_addr( strings: &S, base: &str, +) -> Result, EnvError> { + parse_control_addr_inner(strings, base, false) +} + +pub fn parse_optionally_named_control_addr( + strings: &S, + base: &str, +) -> Result, EnvError> { + parse_control_addr_inner(strings, base, true) +} + +fn parse_control_addr_inner( + strings: &S, + base: &str, + name_optional: bool, ) -> Result, EnvError> { let a = parse(strings, &format!("{base}_ADDR"), parse_addr)?; let n = parse(strings, &format!("{base}_NAME"), parse_dns_name)?; @@ -1142,6 +1158,10 @@ pub fn parse_control_addr( addr: addr.clone(), identity: Conditional::None(tls::NoClientTls::Loopback), })), + (Some(ref addr), None) if name_optional => Ok(Some(ControlAddr { + addr: addr.clone(), + identity: Conditional::None(tls::NoClientTls::Disabled), + })), (Some(addr), Some(name)) => Ok(Some(ControlAddr { addr, identity: Conditional::Some(tls::ClientTls::new(