mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-27 15:57:09 +00:00
Merge pull request #553 from jodh-intel/2.0-dev-agent-support-unix-address
server: Allow address to be specified
This commit is contained in:
commit
fd3b9ff9ed
@ -3,6 +3,7 @@
|
|||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
//
|
//
|
||||||
use rustjail::errors::*;
|
use rustjail::errors::*;
|
||||||
|
use std::env;
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::time;
|
use std::time;
|
||||||
|
|
||||||
@ -17,6 +18,9 @@ const CONTAINER_PIPE_SIZE_OPTION: &str = "agent.container_pipe_size";
|
|||||||
const DEFAULT_LOG_LEVEL: slog::Level = slog::Level::Info;
|
const DEFAULT_LOG_LEVEL: slog::Level = slog::Level::Info;
|
||||||
const DEFAULT_HOTPLUG_TIMEOUT: time::Duration = time::Duration::from_secs(3);
|
const DEFAULT_HOTPLUG_TIMEOUT: time::Duration = time::Duration::from_secs(3);
|
||||||
const DEFAULT_CONTAINER_PIPE_SIZE: i32 = 0;
|
const DEFAULT_CONTAINER_PIPE_SIZE: i32 = 0;
|
||||||
|
const VSOCK_ADDR: &str = "vsock://-1";
|
||||||
|
const VSOCK_PORT: u16 = 1024;
|
||||||
|
const SERVER_ADDR_ENV_VAR: &str = "KATA_AGENT_SERVER_ADDR";
|
||||||
|
|
||||||
// FIXME: unused
|
// FIXME: unused
|
||||||
const TRACE_MODE_FLAG: &str = "agent.trace";
|
const TRACE_MODE_FLAG: &str = "agent.trace";
|
||||||
@ -31,6 +35,7 @@ pub struct agentConfig {
|
|||||||
pub debug_console_vport: i32,
|
pub debug_console_vport: i32,
|
||||||
pub log_vport: i32,
|
pub log_vport: i32,
|
||||||
pub container_pipe_size: i32,
|
pub container_pipe_size: i32,
|
||||||
|
pub server_addr: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl agentConfig {
|
impl agentConfig {
|
||||||
@ -43,6 +48,7 @@ impl agentConfig {
|
|||||||
debug_console_vport: 0,
|
debug_console_vport: 0,
|
||||||
log_vport: 0,
|
log_vport: 0,
|
||||||
container_pipe_size: DEFAULT_CONTAINER_PIPE_SIZE,
|
container_pipe_size: DEFAULT_CONTAINER_PIPE_SIZE,
|
||||||
|
server_addr: format!("{}:{}", VSOCK_ADDR, VSOCK_PORT),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,6 +97,10 @@ impl agentConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let Ok(addr) = env::var(SERVER_ADDR_ENV_VAR) {
|
||||||
|
self.server_addr = addr;
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -72,8 +72,6 @@ use uevent::watch_uevents;
|
|||||||
mod rpc;
|
mod rpc;
|
||||||
|
|
||||||
const NAME: &str = "kata-agent";
|
const NAME: &str = "kata-agent";
|
||||||
const VSOCK_ADDR: &str = "vsock://-1";
|
|
||||||
const VSOCK_PORT: u16 = 1024;
|
|
||||||
const KERNEL_CMDLINE_FILE: &str = "/proc/cmdline";
|
const KERNEL_CMDLINE_FILE: &str = "/proc/cmdline";
|
||||||
const CONSOLE_PATH: &str = "/dev/console";
|
const CONSOLE_PATH: &str = "/dev/console";
|
||||||
|
|
||||||
@ -247,7 +245,7 @@ fn start_sandbox(logger: &Logger, config: &agentConfig, init_mode: bool) -> Resu
|
|||||||
sandbox.lock().unwrap().sender = Some(tx);
|
sandbox.lock().unwrap().sender = Some(tx);
|
||||||
|
|
||||||
//vsock:///dev/vsock, port
|
//vsock:///dev/vsock, port
|
||||||
let mut server = rpc::start(sandbox.clone(), VSOCK_ADDR, VSOCK_PORT);
|
let mut server = rpc::start(sandbox.clone(), config.server_addr.as_str());
|
||||||
|
|
||||||
let _ = server.start().unwrap();
|
let _ = server.start().unwrap();
|
||||||
|
|
||||||
|
@ -1452,7 +1452,7 @@ fn find_process<'a>(
|
|||||||
Ok(p)
|
Ok(p)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn start<S: Into<String>>(s: Arc<Mutex<Sandbox>>, host: S, port: u16) -> ttrpc::Server {
|
pub fn start(s: Arc<Mutex<Sandbox>>, server_address: &str) -> ttrpc::Server {
|
||||||
let agent_service = Box::new(agentService {
|
let agent_service = Box::new(agentService {
|
||||||
sandbox: s,
|
sandbox: s,
|
||||||
test: 1,
|
test: 1,
|
||||||
@ -1468,17 +1468,13 @@ pub fn start<S: Into<String>>(s: Arc<Mutex<Sandbox>>, host: S, port: u16) -> ttr
|
|||||||
|
|
||||||
let hservice = protocols::health_ttrpc::create_health(health_worker);
|
let hservice = protocols::health_ttrpc::create_health(health_worker);
|
||||||
|
|
||||||
let mut addr: String = host.into();
|
|
||||||
addr.push_str(":");
|
|
||||||
addr.push_str(&port.to_string());
|
|
||||||
|
|
||||||
let server = ttrpc::Server::new()
|
let server = ttrpc::Server::new()
|
||||||
.bind(addr.as_str())
|
.bind(server_address)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.register_service(aservice)
|
.register_service(aservice)
|
||||||
.register_service(hservice);
|
.register_service(hservice);
|
||||||
|
|
||||||
info!(sl!(), "ttRPC server started");
|
info!(sl!(), "ttRPC server started"; "address" => server_address);
|
||||||
|
|
||||||
server
|
server
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user