Skip to content

Commit de1990e

Browse files
committed
Add support for RAFT_METADATA_ONLY_VOTERS setting
1 parent 8b2b1a0 commit de1990e

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

.cicd/test.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,10 @@ function check_creates_template() {
231231
check_setting_has_value "--set replicas=100" "name: RAFT_JOIN" "value: \"weaviate-0,weaviate-1,weaviate-2,weaviate-3,weaviate-4\""
232232
check_setting_has_value "--set replicas=100" "name: RAFT_BOOTSTRAP_EXPECT" "value: \"5\""
233233

234+
check_setting_has_value "--set replicas=9 --set env.RAFT_METADATA_ONLY_VOTERS=true" "name: RAFT_BOOTSTRAP_EXPECT" "value: \"3\""
235+
check_setting_has_value "--set replicas=9 --set env.RAFT_METADATA_ONLY_VOTERS=true" "name: RAFT_METADATA_ONLY_VOTERS" "value: \"true\""
236+
check_setting_has_value "--set replicas=3 --set env.RAFT_METADATA_ONLY_VOTERS=false" "name: RAFT_BOOTSTRAP_EXPECT" "value: \"3\""
237+
234238
_settingPassageQueryOn="--set modules.text2vec-contextionary.enabled=false --set modules.text2vec-transformers.passageQueryServices.passage.enabled=true --set modules.text2vec-transformers.passageQueryServices.query.enabled=true"
235239
check_setting_has_value "$_settingPassageQueryOn" "name: TRANSFORMERS_PASSAGE_INFERENCE_API" "value: http://transformers-inference-passage.default.svc.cluster.local.:8080"
236240
check_setting_has_value "$_settingPassageQueryOn" "name: TRANSFORMERS_QUERY_INFERENCE_API" "value: http://transformers-inference-query.default.svc.cluster.local.:8080"

weaviate/templates/_helpers.tpl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,10 @@ Raft cluster configuration settings
181181
{{- define "raft_configuration" -}}
182182
{{- $replicas := .Values.replicas | int -}}
183183
{{- $voters := .Values.env.RAFT_BOOTSTRAP_EXPECT | int -}}
184+
{{- $metada_only_voters := false -}}
185+
{{- if not (empty .Values.env.RAFT_METADATA_ONLY_VOTERS) -}}
186+
{{- $metada_only_voters = .Values.env.RAFT_METADATA_ONLY_VOTERS -}}
187+
{{- end -}}
184188
{{- if empty .Values.env.RAFT_BOOTSTRAP_EXPECT -}}
185189
{{- if ge $replicas 10 -}}
186190
{{- $voters = 5 -}}
@@ -216,4 +220,7 @@ Raft cluster configuration settings
216220
- name: RAFT_BOOTSTRAP_EXPECT
217221
value: "{{ $voters }}"
218222
{{- end -}}
223+
{{- if and ($metada_only_voters) (le $replicas $voters) -}}
224+
{{- fail "env.RAFT_METADATA_ONLY_VOTERS is true then .replicas size must be greater than env.RAFT_BOOTSTRAP_EXPECT" -}}
225+
{{- end -}}
219226
{{- end -}}

weaviate/values.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,11 @@ env:
275275
# then RAFT_BOOTSTRAP_EXPECT needs to be equal 2 also.
276276
# RAFT_JOIN: "weaviate-0"
277277

278+
# Set to true if voters nodes should handle only schema. With this setting enabled
279+
# voter nodes will not accept any data, one needs to resize the cluster using replicas
280+
# setting so that replicas > voters.
281+
# RAFT_METADATA_ONLY_VOTERS: false
282+
278283
# The aggressiveness of the Go Garbage Collector. 100 is the default value.
279284
GOGC: 100
280285

0 commit comments

Comments
 (0)