Skip to content

Commit fc4378d

Browse files
k8s deployment manifests for the master store
Signed-off-by: Gregory Pereira <grpereir@redhat.com>
1 parent 375cded commit fc4378d

10 files changed

Lines changed: 355 additions & 129 deletions

File tree

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
namespace: mooncake
4+
resources:
5+
- ../mooncake-master-deployment
6+
- servicemonitor.yaml
7+
8+
labels:
9+
- pairs:
10+
app.kubernetes.io/name: mooncake-master
11+
app.kubernetes.io/component: master
12+
app.kubernetes.io/part-of: mooncake
13+
includeTemplates: true
14+
includeSelectors: true
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
apiVersion: monitoring.coreos.com/v1
2+
kind: ServiceMonitor
3+
metadata:
4+
name: mooncake-master
5+
labels:
6+
app.kubernetes.io/name: mooncake-master
7+
app.kubernetes.io/component: master
8+
app.kubernetes.io/part-of: mooncake
9+
spec:
10+
selector:
11+
matchLabels:
12+
app.kubernetes.io/name: mooncake-master
13+
endpoints:
14+
- port: metrics
15+
interval: 15s
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: mooncake-master-config
5+
data:
6+
master.yaml: |
7+
rpc_port: 50051
8+
rpc_thread_num: 4
9+
rpc_address: "0.0.0.0"
10+
rpc_conn_timeout_seconds: 0
11+
rpc_enable_tcp_no_delay: true
12+
13+
enable_metric_reporting: true
14+
metrics_port: 9003
15+
16+
enable_http_metadata_server: true
17+
http_metadata_server_host: "0.0.0.0"
18+
http_metadata_server_port: 8080
19+
20+
default_kv_lease_ttl: 5000
21+
default_kv_soft_pin_ttl: 1800000
22+
allow_evict_soft_pinned_objects: true
23+
eviction_ratio: 0.05
24+
eviction_high_watermark_ratio: 0.95
25+
26+
memory_allocator: "offset"
27+
allocation_strategy: "random"
28+
29+
enable_snapshot: true
30+
enable_snapshot_restore: true
31+
snapshot_interval_seconds: 60
32+
snapshot_retention_count: 3
33+
snapshot_object_store_type: "local"
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: mooncake-master
5+
spec:
6+
replicas: 1
7+
strategy:
8+
type: Recreate
9+
template:
10+
metadata:
11+
annotations:
12+
prometheus.io/scrape: "true"
13+
prometheus.io/port: "9003"
14+
prometheus.io/path: "/metrics"
15+
spec:
16+
containers:
17+
- name: mooncake-master
18+
image: mooncake-master
19+
command: ["mooncake_master"]
20+
args:
21+
- "--config_path=/etc/mooncake/master.yaml"
22+
env:
23+
- name: MOONCAKE_SNAPSHOT_LOCAL_PATH
24+
value: "/data/snapshots"
25+
ports:
26+
- name: rpc
27+
containerPort: 50051
28+
protocol: TCP
29+
- name: metrics
30+
containerPort: 9003
31+
protocol: TCP
32+
- name: metadata
33+
containerPort: 8080
34+
protocol: TCP
35+
readinessProbe:
36+
tcpSocket:
37+
port: rpc
38+
initialDelaySeconds: 5
39+
periodSeconds: 10
40+
livenessProbe:
41+
tcpSocket:
42+
port: rpc
43+
initialDelaySeconds: 10
44+
periodSeconds: 15
45+
resources:
46+
requests:
47+
cpu: "1"
48+
memory: "1Gi"
49+
limits:
50+
cpu: "4"
51+
memory: "4Gi"
52+
volumeMounts:
53+
- name: config
54+
mountPath: /etc/mooncake
55+
readOnly: true
56+
- name: snapshots
57+
mountPath: /data/snapshots
58+
volumes:
59+
- name: config
60+
configMap:
61+
name: mooncake-master-config
62+
- name: snapshots
63+
persistentVolumeClaim:
64+
claimName: mooncake-master-snapshots
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
namespace: mooncake
4+
resources:
5+
- namespace.yaml
6+
- configmap.yaml
7+
- pvc.yaml
8+
- deployment.yaml
9+
- service.yaml
10+
11+
labels:
12+
- pairs:
13+
app.kubernetes.io/name: mooncake-master
14+
app.kubernetes.io/component: master
15+
app.kubernetes.io/part-of: mooncake
16+
includeTemplates: true
17+
includeSelectors: true
18+
19+
images:
20+
- name: mooncake-master
21+
newName: quay.io/grpereir/mooncake-master
22+
newTag: test
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: mooncake
Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
labels:
5+
app.kubernetes.io/component: master
6+
app.kubernetes.io/name: mooncake-master
7+
app.kubernetes.io/part-of: mooncake
8+
name: mooncake
9+
---
10+
apiVersion: v1
11+
data:
12+
master.yaml: |
13+
rpc_port: 50051
14+
rpc_thread_num: 4
15+
rpc_address: "0.0.0.0"
16+
rpc_conn_timeout_seconds: 0
17+
rpc_enable_tcp_no_delay: true
18+
19+
enable_metric_reporting: true
20+
metrics_port: 9003
21+
22+
enable_http_metadata_server: true
23+
http_metadata_server_host: "0.0.0.0"
24+
http_metadata_server_port: 8080
25+
26+
default_kv_lease_ttl: 5000
27+
default_kv_soft_pin_ttl: 1800000
28+
allow_evict_soft_pinned_objects: true
29+
eviction_ratio: 0.05
30+
eviction_high_watermark_ratio: 0.95
31+
32+
memory_allocator: "offset"
33+
allocation_strategy: "random"
34+
35+
enable_snapshot: true
36+
enable_snapshot_restore: true
37+
snapshot_interval_seconds: 60
38+
snapshot_retention_count: 3
39+
snapshot_object_store_type: "local"
40+
kind: ConfigMap
41+
metadata:
42+
labels:
43+
app.kubernetes.io/component: master
44+
app.kubernetes.io/name: mooncake-master
45+
app.kubernetes.io/part-of: mooncake
46+
name: mooncake-master-config
47+
namespace: mooncake
48+
---
49+
apiVersion: v1
50+
kind: Service
51+
metadata:
52+
labels:
53+
app.kubernetes.io/component: master
54+
app.kubernetes.io/name: mooncake-master
55+
app.kubernetes.io/part-of: mooncake
56+
name: mooncake-master
57+
namespace: mooncake
58+
spec:
59+
ports:
60+
- name: rpc
61+
port: 50051
62+
protocol: TCP
63+
targetPort: rpc
64+
- name: metadata
65+
port: 8080
66+
protocol: TCP
67+
targetPort: metadata
68+
- name: metrics
69+
port: 9003
70+
protocol: TCP
71+
targetPort: metrics
72+
selector:
73+
app.kubernetes.io/component: master
74+
app.kubernetes.io/name: mooncake-master
75+
app.kubernetes.io/part-of: mooncake
76+
type: ClusterIP
77+
---
78+
apiVersion: v1
79+
kind: PersistentVolumeClaim
80+
metadata:
81+
labels:
82+
app.kubernetes.io/component: master
83+
app.kubernetes.io/name: mooncake-master
84+
app.kubernetes.io/part-of: mooncake
85+
name: mooncake-master-snapshots
86+
namespace: mooncake
87+
spec:
88+
accessModes:
89+
- ReadWriteOnce
90+
resources:
91+
requests:
92+
storage: 10Gi
93+
---
94+
apiVersion: apps/v1
95+
kind: Deployment
96+
metadata:
97+
labels:
98+
app.kubernetes.io/component: master
99+
app.kubernetes.io/name: mooncake-master
100+
app.kubernetes.io/part-of: mooncake
101+
name: mooncake-master
102+
namespace: mooncake
103+
spec:
104+
replicas: 1
105+
selector:
106+
matchLabels:
107+
app.kubernetes.io/component: master
108+
app.kubernetes.io/name: mooncake-master
109+
app.kubernetes.io/part-of: mooncake
110+
strategy:
111+
type: Recreate
112+
template:
113+
metadata:
114+
labels:
115+
app.kubernetes.io/component: master
116+
app.kubernetes.io/name: mooncake-master
117+
app.kubernetes.io/part-of: mooncake
118+
spec:
119+
containers:
120+
- args:
121+
- --config_path=/etc/mooncake/master.yaml
122+
command:
123+
- mooncake_master
124+
env:
125+
- name: MOONCAKE_SNAPSHOT_LOCAL_PATH
126+
value: /data/snapshots
127+
image: quay.io/grpereir/mooncake-master:test
128+
livenessProbe:
129+
initialDelaySeconds: 10
130+
periodSeconds: 15
131+
tcpSocket:
132+
port: rpc
133+
name: mooncake-master
134+
ports:
135+
- containerPort: 50051
136+
name: rpc
137+
protocol: TCP
138+
- containerPort: 9003
139+
name: metrics
140+
protocol: TCP
141+
- containerPort: 8080
142+
name: metadata
143+
protocol: TCP
144+
readinessProbe:
145+
initialDelaySeconds: 5
146+
periodSeconds: 10
147+
tcpSocket:
148+
port: rpc
149+
resources:
150+
limits:
151+
cpu: "4"
152+
memory: 4Gi
153+
requests:
154+
cpu: "1"
155+
memory: 1Gi
156+
volumeMounts:
157+
- mountPath: /etc/mooncake
158+
name: config
159+
readOnly: true
160+
- mountPath: /data/snapshots
161+
name: snapshots
162+
volumes:
163+
- configMap:
164+
name: mooncake-master-config
165+
name: config
166+
- name: snapshots
167+
persistentVolumeClaim:
168+
claimName: mooncake-master-snapshots
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
apiVersion: v1
2+
kind: PersistentVolumeClaim
3+
metadata:
4+
name: mooncake-master-snapshots
5+
spec:
6+
accessModes:
7+
- ReadWriteOnce
8+
resources:
9+
requests:
10+
storage: 10Gi
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: mooncake-master
5+
labels:
6+
app.kubernetes.io/name: mooncake-master
7+
app.kubernetes.io/component: master
8+
app.kubernetes.io/part-of: mooncake
9+
spec:
10+
type: ClusterIP
11+
selector:
12+
app.kubernetes.io/name: mooncake-master
13+
ports:
14+
- name: rpc
15+
port: 50051
16+
targetPort: rpc
17+
protocol: TCP
18+
- name: metadata
19+
port: 8080
20+
targetPort: metadata
21+
protocol: TCP
22+
- name: metrics
23+
port: 9003
24+
targetPort: metrics
25+
protocol: TCP

0 commit comments

Comments
 (0)