k8s_openapi_ext/get/
replicaset.rs

1use super::*;
2
3pub use condition::ReplicaSetConditionGetExt;
4
5mod condition;
6
7pub trait ReplicaSetGetExt {
8    fn spec(&self) -> Option<&appsv1::ReplicaSetSpec>;
9    fn status(&self) -> Option<&appsv1::ReplicaSetStatus>;
10
11    fn min_ready_seconds(&self) -> Option<i32> {
12        self.spec()?.min_ready_seconds
13    }
14
15    fn spec_replicas(&self) -> Option<i32> {
16        self.spec()?.replicas
17    }
18
19    fn selector(&self) -> Option<&metav1::LabelSelector> {
20        self.spec().map(|spec| &spec.selector)
21    }
22
23    fn template(&self) -> Option<&corev1::PodTemplateSpec> {
24        self.spec()?.template.as_ref()
25    }
26
27    fn available_replicas(&self) -> Option<i32> {
28        self.status()?.available_replicas
29    }
30
31    fn ready_replicas(&self) -> Option<i32> {
32        self.status()?.ready_replicas
33    }
34
35    fn fully_labeled_replicas(&self) -> Option<i32> {
36        self.status()?.fully_labeled_replicas
37    }
38    fn status_replicas(&self) -> Option<i32> {
39        self.status().map(|status| status.replicas)
40    }
41
42    fn observed_generation(&self) -> Option<i64> {
43        self.status()?.observed_generation
44    }
45
46    fn conditions(&self) -> Option<&[appsv1::ReplicaSetCondition]> {
47        self.status()?.conditions.as_deref()
48    }
49}
50
51impl ReplicaSetGetExt for appsv1::ReplicaSet {
52    fn spec(&self) -> Option<&appsv1::ReplicaSetSpec> {
53        self.spec.as_ref()
54    }
55
56    fn status(&self) -> Option<&appsv1::ReplicaSetStatus> {
57        self.status.as_ref()
58    }
59}