Editor
/components/mongo.js
xxxxxxxxxx
1
import { Deployment } from "kubernetes-models/apps/v1/Deployment";
2
import { Service } from "kubernetes-models/v1/Service";
3
import { PersistentVolumeClaim } from "kubernetes-models/v1/PersistentVolumeClaim";
4
import env from "@kosko/env";
5
6
const params = env.component("mongo");
7
8
const metadata = { name: "mongo", namespace: params.namespace };
9
const labels = { app: "mongo" };
10
11
const pvc = new PersistentVolumeClaim({
12
metadata,
13
spec: {
14
accessModes: ["ReadWriteOnce"],
15
resources: {
16
requests: {
17
storage: params.storageSize
18
}
19
}
20
}
21
});
22
23
const deployment = new Deployment({
24
metadata,
25
spec: {
26
replicas: 1,
27
strategy: {
28
type: "Recreate"
29
},
30
selector: {
31
matchLabels: labels
32
},
33
template: {
34
metadata: { labels },
35
spec: {
36
containers: [
37
{
38
image: "mongo:4.4",
39
name: "mongo",
40
ports: [{ containerPort: 27017 }],
41
env: [
42
{
43
name: "MONGO_INITDB_DATABASE",
44
value: params.database
45
}
46
],
47
volumeMounts: [
48
{
49
name: "data",
50
mountPath: "/data/db"
51
}
52
]
53
}
54
],
55
volumes: [
56
{
57
name: "data",
58
persistentVolumeClaim: {
59
claimName: metadata.name
60
}
61
}
62
]
63
}
64
}
65
}
66
});
67
68
const service = new Service({
69
metadata,
70
spec: {
71
selector: labels,
72
ports: [{ port: 27017 }]
73
}
74
});
75
76
export default [pvc, deployment, service];
77
Preview
1
1
Errors