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}