mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-30 04:34:27 +00:00
agent: add the FSGroup support
Signed-off-by: Fupan Li <fupan.lfp@antgroup.com>
This commit is contained in:
parent
ff7874bc23
commit
9cb15ab4c5
@ -16,13 +16,14 @@ use crate::{
|
||||
ARPNeighbor, ARPNeighbors, AddArpNeighborRequest, AgentDetails, BlkioStats,
|
||||
BlkioStatsEntry, CgroupStats, CheckRequest, CloseStdinRequest, ContainerID,
|
||||
CopyFileRequest, CpuStats, CpuUsage, CreateContainerRequest, CreateSandboxRequest, Device,
|
||||
Empty, ExecProcessRequest, GuestDetailsResponse, HealthCheckResponse, HugetlbStats,
|
||||
IPAddress, IPFamily, Interface, Interfaces, KernelModule, MemHotplugByProbeRequest,
|
||||
MemoryData, MemoryStats, NetworkStats, OnlineCPUMemRequest, PidsStats, ReadStreamRequest,
|
||||
ReadStreamResponse, RemoveContainerRequest, ReseedRandomDevRequest, Route, Routes,
|
||||
SetGuestDateTimeRequest, SignalProcessRequest, StatsContainerResponse, Storage, StringUser,
|
||||
ThrottlingData, TtyWinResizeRequest, UpdateContainerRequest, UpdateInterfaceRequest,
|
||||
UpdateRoutesRequest, VersionCheckResponse, WaitProcessRequest, WriteStreamRequest,
|
||||
Empty, ExecProcessRequest, FSGroup, FSGroupChangePolicy, GuestDetailsResponse,
|
||||
HealthCheckResponse, HugetlbStats, IPAddress, IPFamily, Interface, Interfaces,
|
||||
KernelModule, MemHotplugByProbeRequest, MemoryData, MemoryStats, NetworkStats,
|
||||
OnlineCPUMemRequest, PidsStats, ReadStreamRequest, ReadStreamResponse,
|
||||
RemoveContainerRequest, ReseedRandomDevRequest, Route, Routes, SetGuestDateTimeRequest,
|
||||
SignalProcessRequest, StatsContainerResponse, Storage, StringUser, ThrottlingData,
|
||||
TtyWinResizeRequest, UpdateContainerRequest, UpdateInterfaceRequest, UpdateRoutesRequest,
|
||||
VersionCheckResponse, WaitProcessRequest, WriteStreamRequest,
|
||||
},
|
||||
OomEventResponse, WaitProcessResponse, WriteStreamResponse,
|
||||
};
|
||||
@ -72,6 +73,22 @@ impl From<empty::Empty> for Empty {
|
||||
}
|
||||
}
|
||||
|
||||
impl From<FSGroup> for agent::FSGroup {
|
||||
fn from(from: FSGroup) -> Self {
|
||||
let policy = match from.group_change_policy {
|
||||
FSGroupChangePolicy::Always => types::FSGroupChangePolicy::Always,
|
||||
FSGroupChangePolicy::OnRootMismatch => types::FSGroupChangePolicy::OnRootMismatch,
|
||||
};
|
||||
|
||||
Self {
|
||||
group_id: from.group_id,
|
||||
group_change_policy: policy,
|
||||
unknown_fields: Default::default(),
|
||||
cached_size: Default::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<StringUser> for agent::StringUser {
|
||||
fn from(from: StringUser) -> Self {
|
||||
Self {
|
||||
@ -105,6 +122,7 @@ impl From<Storage> for agent::Storage {
|
||||
driver_options: from_vec(from.driver_options),
|
||||
source: from.source,
|
||||
fstype: from.fs_type,
|
||||
fs_group: from_option(from.fs_group),
|
||||
options: from_vec(from.options),
|
||||
mount_point: from.mount_point,
|
||||
unknown_fields: Default::default(),
|
||||
|
@ -12,7 +12,7 @@ logging::logger_with_subsystem!(sl, "agent");
|
||||
pub mod kata;
|
||||
mod log_forwarder;
|
||||
mod sock;
|
||||
mod types;
|
||||
pub mod types;
|
||||
pub use types::{
|
||||
ARPNeighbor, ARPNeighbors, AddArpNeighborRequest, BlkioStatsEntry, CheckRequest,
|
||||
CloseStdinRequest, ContainerID, ContainerProcessID, CopyFileRequest, CreateContainerRequest,
|
||||
|
@ -15,6 +15,24 @@ impl Empty {
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for FSGroupChangePolicy {
|
||||
fn default() -> Self {
|
||||
FSGroupChangePolicy::Always
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum FSGroupChangePolicy {
|
||||
Always = 0,
|
||||
OnRootMismatch = 1,
|
||||
}
|
||||
|
||||
#[derive(Debug, PartialEq, Clone, Default)]
|
||||
pub struct FSGroup {
|
||||
pub group_id: u32,
|
||||
pub group_change_policy: FSGroupChangePolicy,
|
||||
}
|
||||
|
||||
#[derive(PartialEq, Clone, Default)]
|
||||
pub struct StringUser {
|
||||
pub uid: String,
|
||||
@ -37,6 +55,7 @@ pub struct Storage {
|
||||
pub driver_options: Vec<String>,
|
||||
pub source: String,
|
||||
pub fs_type: String,
|
||||
pub fs_group: Option<FSGroup>,
|
||||
pub options: Vec<String>,
|
||||
pub mount_point: String,
|
||||
}
|
||||
|
@ -78,6 +78,7 @@ impl ShareFs for ShareVirtioFsInline {
|
||||
driver_options: Vec::new(),
|
||||
source: String::from(MOUNT_GUEST_TAG),
|
||||
fs_type: String::from(FS_TYPE_VIRTIO_FS),
|
||||
fs_group: None,
|
||||
options: shared_options,
|
||||
mount_point: String::from(KATA_GUEST_SHARE_DIR),
|
||||
};
|
||||
|
@ -45,6 +45,7 @@ impl ShmVolume {
|
||||
driver_options: Vec::new(),
|
||||
source: String::from("shm"),
|
||||
fs_type: String::from("tmpfs"),
|
||||
fs_group: None,
|
||||
options,
|
||||
mount_point: mount_path.to_string(),
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user