k8s_openapi_ext/get/
container.rs1use 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}