mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-03 05:10:55 +00:00
guest: set hostname from launch config
This commit is contained in:
parent
6cd8cc12db
commit
377b837db9
@ -5,7 +5,7 @@ use ipnetwork::IpNetwork;
|
|||||||
use krata::ethtool::EthtoolHandle;
|
use krata::ethtool::EthtoolHandle;
|
||||||
use krata::idm::client::IdmClient;
|
use krata::idm::client::IdmClient;
|
||||||
use krata::launchcfg::{LaunchInfo, LaunchNetwork};
|
use krata::launchcfg::{LaunchInfo, LaunchNetwork};
|
||||||
use libc::{setsid, TIOCSCTTY};
|
use libc::{sethostname, setsid, TIOCSCTTY};
|
||||||
use log::{trace, warn};
|
use log::{trace, warn};
|
||||||
use nix::ioctl_write_int_bad;
|
use nix::ioctl_write_int_bad;
|
||||||
use nix::unistd::{dup2, execve, fork, ForkResult, Pid};
|
use nix::unistd::{dup2, execve, fork, ForkResult, Pid};
|
||||||
@ -91,6 +91,18 @@ impl GuestInit {
|
|||||||
self.nuke_initrd().await?;
|
self.nuke_initrd().await?;
|
||||||
self.bind_new_root().await?;
|
self.bind_new_root().await?;
|
||||||
|
|
||||||
|
if let Some(hostname) = launch.hostname.clone() {
|
||||||
|
let result = unsafe {
|
||||||
|
sethostname(
|
||||||
|
hostname.as_bytes().as_ptr() as *mut libc::c_char,
|
||||||
|
hostname.len(),
|
||||||
|
)
|
||||||
|
};
|
||||||
|
if result != 0 {
|
||||||
|
warn!("failed to set hostname: {}", result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if let Some(network) = &launch.network {
|
if let Some(network) = &launch.network {
|
||||||
trace!("initializing network");
|
trace!("initializing network");
|
||||||
if let Err(error) = self.network_setup(network).await {
|
if let Err(error) = self.network_setup(network).await {
|
||||||
|
@ -29,6 +29,7 @@ pub struct LaunchNetwork {
|
|||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Debug)]
|
||||||
pub struct LaunchInfo {
|
pub struct LaunchInfo {
|
||||||
|
pub hostname: Option<String>,
|
||||||
pub network: Option<LaunchNetwork>,
|
pub network: Option<LaunchNetwork>,
|
||||||
pub env: HashMap<String, String>,
|
pub env: HashMap<String, String>,
|
||||||
pub run: Option<Vec<String>>,
|
pub run: Option<Vec<String>>,
|
||||||
|
@ -64,6 +64,12 @@ impl GuestLauncher {
|
|||||||
let ipv6_network_mask: u32 = 10;
|
let ipv6_network_mask: u32 = 10;
|
||||||
|
|
||||||
let launch_config = LaunchInfo {
|
let launch_config = LaunchInfo {
|
||||||
|
hostname: Some(
|
||||||
|
request
|
||||||
|
.name
|
||||||
|
.map(|x| x.to_string())
|
||||||
|
.unwrap_or_else(|| format!("krata-{}", uuid)),
|
||||||
|
),
|
||||||
network: Some(LaunchNetwork {
|
network: Some(LaunchNetwork {
|
||||||
link: "eth0".to_string(),
|
link: "eth0".to_string(),
|
||||||
ipv4: LaunchNetworkIpv4 {
|
ipv4: LaunchNetworkIpv4 {
|
||||||
|
Loading…
Reference in New Issue
Block a user