/
google-cloud-filestore-pv.libsonnet
103 lines (98 loc) · 2.35 KB
/
google-cloud-filestore-pv.libsonnet
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
{
local k = import "k.libsonnet",
new(_env, _params):: {
local params = _params + _env,
local persistentVolume = {
apiVersion: "v1",
kind: "PersistentVolume",
metadata: {
name: params.name,
namespace: params.namespace,
},
spec: {
capacity: {
storage: params.storageCapacity,
},
accessModes: [
"ReadWriteMany",
],
nfs: {
path: params.path,
server: params.serverIP,
},
},
},
persistentVolume:: persistentVolume,
local persistentVolumeClaim = {
apiVersion: "v1",
kind: "PersistentVolumeClaim",
metadata: {
name: params.name,
namespace: params.namespace,
},
spec: {
accessModes: [
"ReadWriteMany",
],
storageClassName: "",
resources: {
requests: {
storage: params.storageCapacity,
},
},
},
},
persistentVolumeClaim:: persistentVolumeClaim,
// Set 777 permissions on the GCFS NFS so that non-root users
// like jovyan can use that NFS share
local gcfsPersmissions = {
apiVersion: "batch/v1",
kind: "Job",
metadata: {
name: "set-gcfs-permissions",
namespace: params.namespace,
},
spec: {
template: {
spec: {
containers: [
{
name: "set-gcfs-permissions",
image: params.image,
command: [
"chmod",
"777",
"/kubeflow-gcfs",
],
volumeMounts: [
{
mountPath: "/kubeflow-gcfs",
name: params.name,
},
],
},
],
restartPolicy: "OnFailure",
volumes: [
{
name: params.name,
persistentVolumeClaim: {
claimName: params.name,
readOnly: false,
},
},
],
},
},
},
},
gcfsPersmissions:: gcfsPersmissions,
parts:: self,
all:: [
self.persistentVolume,
self.persistentVolumeClaim,
self.gcfsPersmissions,
],
list(obj=self.all):: k.core.v1.list.new(obj,),
},
}