-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathvalues.tpl.yaml
More file actions
147 lines (144 loc) · 4.61 KB
/
Copy pathvalues.tpl.yaml
File metadata and controls
147 lines (144 loc) · 4.61 KB
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
global:
enableReplication: true
replicationPlacment: "001"
{{- if .ReplaceImages }}
registry: "proxy.replicated.com/library/"
{{- end }}
master:
{{- if .ReplaceImages }}
imageOverride: '{{ ImageString (index .Images "seaweedfs") }}'
{{- end }}
replicas: 3
nodeSelector: ~
disableHttp: true
volumeSizeLimitMB: 30000
raftHashicorp: true
raftBootstrap: true # masters would crash when raftHashicorp=true and raftBootstrap=false
data:
hostPathPrefix: "/var/lib/embedded-cluster/seaweedfs/ssd"
logs:
hostPathPrefix: "/var/lib/embedded-cluster/seaweedfs/storage"
affinity: |
# schedule on control-plane nodes
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
# schedule on different nodes when possible
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- seaweedfs
- key: app.kubernetes.io/component
operator: In
values:
- master
topologyKey: "kubernetes.io/hostname"
config: |-
[master.maintenance]
# periodically run these scripts are the same as running them from 'weed shell'
# note: running 'fs.meta.save' then 'fs.meta.load' will ensure metadata of all filers
# are in sync in case of data loss from 1 or more filers
scripts = """
ec.encode -fullPercent=95 -quietFor=1h
ec.rebuild -force
ec.balance -force
volume.balance -force
volume.configure.replication -replication 001 -collectionPattern *
volume.fix.replication
fs.meta.save -o filer-backup.meta
fs.meta.load filer-backup.meta
"""
sleep_minutes = 17 # sleep minutes between each script execution
volume:
# replicas must be at least replication (2) + 1 = 3
replicas: 3
nodeSelector: ~
{{- if .ReplaceImages }}
imageOverride: '{{ ImageString (index .Images "seaweedfs") }}'
{{- end }}
podAnnotations:
backup.velero.io/backup-volumes: data
affinity: |
# schedule on control-plane nodes
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
# schedule on different nodes when possible
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- seaweedfs
- key: app.kubernetes.io/component
operator: In
values:
- volume
topologyKey: "kubernetes.io/hostname"
dataDirs:
- name: data
type: "persistentVolumeClaim"
# openebs-hostpath storage does not limit the size of the volume
size: "10Gi"
storageClass: "openebs-hostpath"
# set this to a high number so we dont have to worry about storage limit (50 * 30GB = 1500GB)
maxVolumes: 50
filer:
replicas: 3
nodeSelector: ~
{{- if .ReplaceImages }}
imageOverride: '{{ ImageString (index .Images "seaweedfs") }}'
{{- end }}
podAnnotations:
backup.velero.io/backup-volumes: data-filer,seaweedfs-filer-log-volume
affinity: |
# schedule on control-plane nodes
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/control-plane
operator: Exists
# schedule on different nodes when possible
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- seaweedfs
- key: app.kubernetes.io/component
operator: In
values:
- filer
topologyKey: "kubernetes.io/hostname"
data:
type: "persistentVolumeClaim"
# openebs-hostpath storage does not limit the size of the volume
size: "1Gi"
storageClass: "openebs-hostpath"
logs:
type: "persistentVolumeClaim"
# openebs-hostpath storage does not limit the size of the volume
size: "1Gi"
storageClass: "openebs-hostpath"
s3:
enabled: true
enableAuth: true
existingConfigSecret: secret-seaweedfs-s3
createBuckets:
- name: registry
anonymousRead: false