k8s_openapi_ext/get/
container.rs

1use super::*;
2
3pub use ephemeral::EphemeralContainerGetExt;
4pub use status::ContainerStatusGetExt;
5
6mod ephemeral;
7mod status;
8
9pub trait ContainerGetExt {
10    fn myself(&self) -> &corev1::Container;
11
12    fn name(&self) -> &str {
13        &self.myself().name
14    }
15
16    fn ports(&self) -> Option<&[corev1::ContainerPort]> {
17        self.myself().ports.as_deref()
18    }
19
20    fn liveness_probe(&self) -> Option<&corev1::Probe> {
21        self.myself().liveness_probe.as_ref()
22    }
23
24    fn readiness_probe(&self) -> Option<&corev1::Probe> {
25        self.myself().readiness_probe.as_ref()
26    }
27
28    fn startup_probe(&self) -> Option<&corev1::Probe> {
29        self.myself().startup_probe.as_ref()
30    }
31
32    fn resources(&self) -> Option<&corev1::ResourceRequirements> {
33        self.myself().resources.as_ref()
34    }
35
36    fn port_by_name(&self, name: impl AsRef<str>) -> Option<&corev1::ContainerPort> {
37        let name = name.as_ref();
38        self.ports()?
39            .iter()
40            .find(|port| port.name.as_deref() == Some(name))
41    }
42}
43
44impl ContainerGetExt for corev1::Container {
45    #[inline(always)]
46    fn myself(&self) -> &corev1::Container {
47        self
48    }
49}