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}