k8s_openapi_ext/ext/
volume.rs

1use super::*;
2
3pub trait VolumeExt: Sized {
4    fn secret(name: impl ToString, secret: corev1::SecretVolumeSource) -> Self;
5    fn configmap(name: impl ToString, configmap: corev1::ConfigMapVolumeSource) -> Self;
6    fn emptydir(name: impl ToString, emptydir: corev1::EmptyDirVolumeSource) -> Self;
7}
8
9impl VolumeExt for corev1::Volume {
10    fn secret(name: impl ToString, secret: corev1::SecretVolumeSource) -> Self {
11        let name = name.to_string();
12        Self {
13            name,
14            secret: Some(secret),
15            // aws_elastic_block_store: todo!(),
16            // azure_disk: todo!(),
17            // azure_file: todo!(),
18            // cephfs: todo!(),
19            // cinder: todo!(),
20            // config_map: todo!(),
21            // csi: todo!(),
22            // downward_api: todo!(),
23            // empty_dir: todo!(),
24            // ephemeral: todo!(),
25            // fc: todo!(),
26            // flex_volume: todo!(),
27            // flocker: todo!(),
28            // gce_persistent_disk: todo!(),
29            // git_repo: todo!(),
30            // glusterfs: todo!(),
31            // host_path: todo!(),
32            // iscsi: todo!(),
33            // nfs: todo!(),
34            // persistent_volume_claim: todo!(),
35            // photon_persistent_disk: todo!(),
36            // portworx_volume: todo!(),
37            // projected: todo!(),
38            // quobyte: todo!(),
39            // rbd: todo!(),
40            // scale_io: todo!(),
41            // storageos: todo!(),
42            // vsphere_volume: todo!(),
43            ..default()
44        }
45    }
46
47    fn configmap(name: impl ToString, configmap: corev1::ConfigMapVolumeSource) -> Self {
48        let name = name.to_string();
49        Self {
50            name,
51            config_map: Some(configmap),
52            // aws_elastic_block_store: todo!(),
53            // azure_disk: todo!(),
54            // azure_file: todo!(),
55            // cephfs: todo!(),
56            // cinder: todo!(),
57            // config_map: todo!(),
58            // csi: todo!(),
59            // downward_api: todo!(),
60            // empty_dir: todo!(),
61            // ephemeral: todo!(),
62            // fc: todo!(),
63            // flex_volume: todo!(),
64            // flocker: todo!(),
65            // gce_persistent_disk: todo!(),
66            // git_repo: todo!(),
67            // glusterfs: todo!(),
68            // host_path: todo!(),
69            // image: todo!(),
70            // iscsi: todo!(),
71            // nfs: todo!(),
72            // persistent_volume_claim: todo!(),
73            // photon_persistent_disk: todo!(),
74            // portworx_volume: todo!(),
75            // projected: todo!(),
76            // quobyte: todo!(),
77            // rbd: todo!(),
78            // scale_io: todo!(),
79            // secret: todo!(),
80            // storageos: todo!(),
81            // vsphere_volume: todo!(),
82            ..default()
83        }
84    }
85
86    fn emptydir(name: impl ToString, emptydir: corev1::EmptyDirVolumeSource) -> Self {
87        let name = name.to_string();
88        Self {
89            name,
90            empty_dir: Some(emptydir),
91            // aws_elastic_block_store: todo!(),
92            // azure_disk: todo!(),
93            // azure_file: todo!(),
94            // cephfs: todo!(),
95            // cinder: todo!(),
96            // config_map: todo!(),
97            // csi: todo!(),
98            // downward_api: todo!(),
99            // ephemeral: todo!(),
100            // fc: todo!(),
101            // flex_volume: todo!(),
102            // flocker: todo!(),
103            // gce_persistent_disk: todo!(),
104            // git_repo: todo!(),
105            // glusterfs: todo!(),
106            // host_path: todo!(),
107            // image: todo!(),
108            // iscsi: todo!(),
109            // nfs: todo!(),
110            // persistent_volume_claim: todo!(),
111            // photon_persistent_disk: todo!(),
112            // portworx_volume: todo!(),
113            // projected: todo!(),
114            // quobyte: todo!(),
115            // rbd: todo!(),
116            // scale_io: todo!(),
117            // secret: todo!(),
118            // storageos: todo!(),
119            // vsphere_volume: todo!(),
120            ..default()
121        }
122    }
123}