-
Notifications
You must be signed in to change notification settings - Fork 4
/
volumes.go
77 lines (71 loc) · 1.95 KB
/
volumes.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package core
import (
"github.com/kartverket/skiperator/api/v1alpha1/podtypes"
"github.com/kartverket/skiperator/pkg/util"
corev1 "k8s.io/api/core/v1"
)
// Should we split this up? It seems handy to create both from one loop, but the function does two things
func GetContainerVolumeMountsAndPodVolumes(filesFrom []podtypes.FilesFrom) ([]corev1.Volume, []corev1.VolumeMount) {
containerVolumeMounts := []corev1.VolumeMount{
{
Name: "tmp",
MountPath: "/tmp",
},
}
podVolumes := []corev1.Volume{
{
Name: "tmp",
VolumeSource: corev1.VolumeSource{
EmptyDir: &corev1.EmptyDirVolumeSource{},
},
},
}
for _, file := range filesFrom {
volume := corev1.Volume{}
if len(file.ConfigMap) > 0 {
volume = corev1.Volume{
Name: file.ConfigMap,
VolumeSource: corev1.VolumeSource{
ConfigMap: &corev1.ConfigMapVolumeSource{
LocalObjectReference: corev1.LocalObjectReference{
Name: file.ConfigMap,
},
DefaultMode: util.PointTo(int32(420)),
},
},
}
} else if len(file.Secret) > 0 {
volume = corev1.Volume{
Name: file.Secret,
VolumeSource: corev1.VolumeSource{
Secret: &corev1.SecretVolumeSource{
SecretName: file.Secret,
DefaultMode: util.PointTo(int32(420)),
},
},
}
} else if len(file.EmptyDir) > 0 {
volume = corev1.Volume{
Name: file.EmptyDir,
VolumeSource: corev1.VolumeSource{
EmptyDir: &corev1.EmptyDirVolumeSource{},
},
}
} else if len(file.PersistentVolumeClaim) > 0 {
volume = corev1.Volume{
Name: file.PersistentVolumeClaim,
VolumeSource: corev1.VolumeSource{
PersistentVolumeClaim: &corev1.PersistentVolumeClaimVolumeSource{
ClaimName: file.PersistentVolumeClaim,
},
},
}
}
podVolumes = append(podVolumes, volume)
containerVolumeMounts = append(containerVolumeMounts, corev1.VolumeMount{
Name: volume.Name,
MountPath: file.MountPath,
})
}
return podVolumes, containerVolumeMounts
}