Make admin server optional

This commit is contained in:
Alex 2022-03-10 10:51:40 +01:00
parent a19341b188
commit 9b2b531f4d
Signed by untrusted user: lx
GPG key ID: 0E496D15096376BE
2 changed files with 15 additions and 8 deletions

View file

@ -68,10 +68,14 @@ pub async fn run_server(config_file: PathBuf) -> Result<(), Error> {
wait_from(watch_cancel.clone()),
));
info!("Configure and run admin web server...");
let admin_server = tokio::spawn(
admin_server_init.run(config.admin.api_bind_addr, wait_from(watch_cancel.clone())),
);
let admin_server = if let Some(admin_bind_addr) = config.admin.api_bind_addr {
info!("Configure and run admin web server...");
Some(tokio::spawn(
admin_server_init.run(admin_bind_addr, wait_from(watch_cancel.clone())),
))
} else {
None
};
// Stuff runs
@ -82,8 +86,10 @@ pub async fn run_server(config_file: PathBuf) -> Result<(), Error> {
if let Err(e) = web_server.await? {
warn!("Web server exited with error: {}", e);
}
if let Err(e) = admin_server.await? {
warn!("Admin web server exited with error: {}", e);
if let Some(a) = admin_server {
if let Err(e) = a.await? {
warn!("Admin web server exited with error: {}", e);
}
}
// Remove RPC handlers for system to break reference cycles

View file

@ -75,6 +75,7 @@ pub struct Config {
pub s3_web: WebConfig,
/// Configuration for the admin API endpoint
#[serde(default = "Default::default")]
pub admin: AdminConfig,
}
@ -100,10 +101,10 @@ pub struct WebConfig {
}
/// Configuration for the admin and monitoring HTTP API
#[derive(Deserialize, Debug, Clone)]
#[derive(Deserialize, Debug, Clone, Default)]
pub struct AdminConfig {
/// Address and port to bind for admin API serving
pub api_bind_addr: SocketAddr,
pub api_bind_addr: Option<SocketAddr>,
/// OTLP server to where to export traces
pub trace_sink: Option<String>,
}