-
Notifications
You must be signed in to change notification settings - Fork 2.2k
/
statefulset-executor.yml
89 lines (89 loc) · 2.38 KB
/
statefulset-executor.yml
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
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {name}
namespace: {namespace}
spec:
replicas: {replicas}
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: {name}
template:
metadata:
labels:
app: {name}
jina_deployment_name: {jina_deployment_name}
shard_id: {shard_id}
pod_type: {pod_type}
ns: {namespace}
annotations:
linkerd.io/inject: enabled
spec:
containers:
- name: executor
image: {image}
imagePullPolicy: {pull_policy}
command: {command}
args: {args}
ports:
- containerPort: {port}
envFrom:
- configMapRef:
name: {name}-configmap
env:
- name: POD_UID
valueFrom:
fieldRef:
fieldPath: metadata.uid
- name: JINA_DEPLOYMENT_NAME
value: {jina_deployment_name}
- name: K8S_STATEFULSET_NAME
value: {name}
- name: K8S_NAMESPACE_NAME
value: {namespace}
- name: K8S_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
startupProbe:
exec:
command:
- jina
- ping
- executor
- 127.0.0.1:{port}
initialDelaySeconds: 5
periodSeconds: {period_seconds}
failureThreshold: {failure_threshold}
timeoutSeconds: 10
livenessProbe:
exec:
command:
- jina
- ping
- executor
- 127.0.0.1:{port}
initialDelaySeconds: 30
periodSeconds: 5
timeoutSeconds: 10
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "sleep 2"]
volumeMounts:
- name: {name}-volume
mountPath: "{volume_path}"
volumeClaimTemplates:
- metadata:
name: {name}-volume
spec:
accessModes: {accessModes} # best default accessModes
storageClassName: {storageClassName} # best storage class
resources:
requests:
storage: {storageCapacity} # best storage class