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}
7
8impl VolumeExt for corev1::Volume {
9 fn secret(name: impl ToString, secret: corev1::SecretVolumeSource) -> Self {
10 let name = name.to_string();
11 Self {
12 name,
13 secret: Some(secret),
14 // aws_elastic_block_store: todo!(),
15 // azure_disk: todo!(),
16 // azure_file: todo!(),
17 // cephfs: todo!(),
18 // cinder: todo!(),
19 // config_map: todo!(),
20 // csi: todo!(),
21 // downward_api: todo!(),
22 // empty_dir: todo!(),
23 // ephemeral: todo!(),
24 // fc: todo!(),
25 // flex_volume: todo!(),
26 // flocker: todo!(),
27 // gce_persistent_disk: todo!(),
28 // git_repo: todo!(),
29 // glusterfs: todo!(),
30 // host_path: todo!(),
31 // iscsi: todo!(),
32 // nfs: todo!(),
33 // persistent_volume_claim: todo!(),
34 // photon_persistent_disk: todo!(),
35 // portworx_volume: todo!(),
36 // projected: todo!(),
37 // quobyte: todo!(),
38 // rbd: todo!(),
39 // scale_io: todo!(),
40 // storageos: todo!(),
41 // vsphere_volume: todo!(),
42 ..default()
43 }
44 }
45
46 fn configmap(name: impl ToString, configmap: corev1::ConfigMapVolumeSource) -> Self {
47 let name = name.to_string();
48 Self {
49 name,
50 config_map: Some(configmap),
51 // aws_elastic_block_store: todo!(),
52 // azure_disk: todo!(),
53 // azure_file: todo!(),
54 // cephfs: todo!(),
55 // cinder: todo!(),
56 // config_map: todo!(),
57 // csi: todo!(),
58 // downward_api: todo!(),
59 // empty_dir: todo!(),
60 // ephemeral: todo!(),
61 // fc: todo!(),
62 // flex_volume: todo!(),
63 // flocker: todo!(),
64 // gce_persistent_disk: todo!(),
65 // git_repo: todo!(),
66 // glusterfs: todo!(),
67 // host_path: todo!(),
68 // image: todo!(),
69 // iscsi: todo!(),
70 // nfs: todo!(),
71 // persistent_volume_claim: todo!(),
72 // photon_persistent_disk: todo!(),
73 // portworx_volume: todo!(),
74 // projected: todo!(),
75 // quobyte: todo!(),
76 // rbd: todo!(),
77 // scale_io: todo!(),
78 // secret: todo!(),
79 // storageos: todo!(),
80 // vsphere_volume: todo!(),
81 ..default()
82 }
83 }
84}