-
Notifications
You must be signed in to change notification settings - Fork 127
/
volume.go
62 lines (52 loc) · 1.78 KB
/
volume.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
/*
Copyright 2017 The go-marathon Authors All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package marathon
// PodVolume describes a volume on the host
type PodVolume struct {
Name string `json:"name,omitempty"`
Host string `json:"host,omitempty"`
Secret string `json:"secret,omitempty"`
Persistent *PersistentVolume `json:"persistent,omitempty"`
}
// PodVolumeMount describes how to mount a volume into a task
type PodVolumeMount struct {
Name string `json:"name,omitempty"`
MountPath string `json:"mountPath,omitempty"`
ReadOnly *bool `json:"readOnly,omitempty"`
}
// NewPodVolume creates a new PodVolume
func NewPodVolume(name, path string) *PodVolume {
return &PodVolume{
Name: name,
Host: path,
}
}
// NewPodVolume creates a new PodVolume for file based secrets
func NewPodVolumeSecret(name, secretPath string) *PodVolume {
return &PodVolume{
Name: name,
Secret: secretPath,
}
}
// NewPodVolumeMount creates a new PodVolumeMount
func NewPodVolumeMount(name, mount string) *PodVolumeMount {
return &PodVolumeMount{
Name: name,
MountPath: mount,
}
}
// SetPersistentVolume sets the persistence settings of a PodVolume
func (pv *PodVolume) SetPersistentVolume(p *PersistentVolume) *PodVolume {
pv.Persistent = p
return pv
}