k8s_openapi_ext/ext/
pod_template_spec.rs1use super::*;
2
3pub trait PodTemplateSpecExt {
4 fn new(name: impl ToString) -> Self;
5
6 fn labels(self, labels: impl IntoIterator<Item = (impl ToString, impl ToString)>) -> Self;
7
8 fn pod_spec(self, spec: corev1::PodSpec) -> Self;
9}
10
11impl PodTemplateSpecExt for corev1::PodTemplateSpec {
12 fn new(name: impl ToString) -> Self {
13 Self {
14 metadata: Some(metadata(name)),
15 spec: None,
16 }
17 }
18
19 fn labels(self, labels: impl IntoIterator<Item = (impl ToString, impl ToString)>) -> Self {
20 let labels = labels
21 .into_iter()
22 .map(|(key, value)| (key.to_string(), value.to_string()))
23 .collect();
24 let mut metadata = self.metadata.unwrap_or_default();
25 metadata.labels = Some(labels);
26 Self {
27 metadata: Some(metadata),
28 ..self
29 }
30 }
31
32 fn pod_spec(self, spec: corev1::PodSpec) -> Self {
33 Self {
34 spec: Some(spec),
35 ..self
36 }
37 }
38}