diff --git a/src/libs/kata-sys-util/src/spec.rs b/src/libs/kata-sys-util/src/spec.rs index b606d1194db5..24bcf16e91b2 100644 --- a/src/libs/kata-sys-util/src/spec.rs +++ b/src/libs/kata-sys-util/src/spec.rs @@ -68,7 +68,7 @@ pub fn get_container_type(spec: &oci::Spec) -> Result { pub fn get_shim_id_info() -> Result { let spec = load_oci_spec()?; match get_container_type(&spec)? { - ContainerType::PodSandbox => Ok(ShimIdInfo::Sandbox), + ContainerType::PodSandbox | ContainerType::SingleContainer => Ok(ShimIdInfo::Sandbox), ContainerType::PodContainer => { for k in CRI_SANDBOX_ID_KEY_LIST { if let Some(sandbox_id) = spec.annotations.get(*k) { diff --git a/src/libs/kata-types/src/container.rs b/src/libs/kata-types/src/container.rs index 3a64a4dd7fae..31e729ab855c 100644 --- a/src/libs/kata-types/src/container.rs +++ b/src/libs/kata-types/src/container.rs @@ -19,6 +19,8 @@ pub(crate) const SANDBOX: &str = "sandbox"; // docker: a sandbox sandbox container pub(crate) const PODSANDBOX: &str = "podsandbox"; +pub(crate) const SINGLE_CONTAINER: &str = "single_container"; + const STATE_READY: &str = "ready"; const STATE_RUNNING: &str = "running"; const STATE_STOPPED: &str = "stopped"; @@ -45,6 +47,8 @@ pub enum ContainerType { PodContainer, /// A pod sandbox. PodSandbox, + /// A single container. + SingleContainer, } impl ContainerType { @@ -64,6 +68,7 @@ impl Display for ContainerType { match self { ContainerType::PodContainer => write!(f, "{}", POD_CONTAINER), ContainerType::PodSandbox => write!(f, "{}", POD_SANDBOX), + ContainerType::SingleContainer => write!(f, "{}", SINGLE_CONTAINER), } } } diff --git a/src/libs/kata-types/src/k8s.rs b/src/libs/kata-types/src/k8s.rs index ee392a94a8d6..2b5971ccc10a 100644 --- a/src/libs/kata-types/src/k8s.rs +++ b/src/libs/kata-types/src/k8s.rs @@ -69,7 +69,7 @@ pub fn container_type(spec: &oci::Spec) -> ContainerType { } } - ContainerType::PodSandbox + ContainerType::SingleContainer } /// Determine the k8s sandbox ID from OCI annotations. @@ -269,7 +269,7 @@ mod tests { // default assert_eq!( container_type_with_id(&spec), - (ContainerType::PodSandbox, None) + (ContainerType::SingleContainer, None) ); // crio sandbox diff --git a/src/runtime-rs/crates/shim/src/shim_start.rs b/src/runtime-rs/crates/shim/src/shim_start.rs index 0759891710a5..67fa8c5be873 100644 --- a/src/runtime-rs/crates/shim/src/shim_start.rs +++ b/src/runtime-rs/crates/shim/src/shim_start.rs @@ -38,7 +38,7 @@ impl ShimExecutor { let (container_type, id) = k8s::container_type_with_id(&spec); match container_type { - ContainerType::PodSandbox => { + ContainerType::PodSandbox | ContainerType::SingleContainer => { let address = self.socket_address(&self.args.id)?; let socket = new_listener(&address)?; let child_pid = self.create_shim_process(socket)?;