Skip to content

Commit 4d42649

Browse files
authored
YDBOPS-11583: [ydbd_slice] distconf support (#19476)
1 parent 6d5f3ec commit 4d42649

File tree

10 files changed

+441
-134
lines changed

10 files changed

+441
-134
lines changed

ydb/tools/cfg/base.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,7 @@ def normalize_domain(domain_name):
272272

273273
class ClusterDetailsProvider(object):
274274
def __init__(self, template, host_info_provider, validator=None, database=None, use_new_style_cfg=False):
275+
275276
if not validator:
276277
validator = validation.default_validator()
277278

@@ -449,7 +450,7 @@ def hosts(self):
449450
if self._hosts is not None:
450451
return self._hosts
451452
futures = []
452-
for node_id, host_description in enumerate(self.__cluster_description.get("hosts"), 1):
453+
for node_id, host_description in enumerate(self.__cluster_description.get("hosts", []), 1):
453454
futures.append(self._thread_pool.submit(self.__collect_host_info, node_id, host_description))
454455

455456
r = []

ydb/tools/cfg/templates.py

Lines changed: 125 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,37 @@
6969
7070
"""
7171

72+
73+
CONFIG_V2 = """kikimr_auth_token_file="${kikimr_home}/token/kikimr.token"
74+
kikimr_config="${kikimr_home}/cfg"
75+
kikimr_auth_token_file="${kikimr_home}/token/kikimr.token"
76+
kikimr_key_file="${kikimr_config}/key.txt"
77+
78+
kikimr_arg="${kikimr_arg} server --config-dir ${kikimr_config} --node static"
79+
kikimr_arg="${kikimr_arg}${kikimr_mon_port:+ --mon-port ${kikimr_mon_port}}"
80+
kikimr_arg="${kikimr_arg}${kikimr_mon_threads:+ --mon-threads ${kikimr_mon_threads}}"
81+
kikimr_arg="${kikimr_arg}${kikimr_grpc_port:+ --grpc-port ${kikimr_grpc_port}}"
82+
kikimr_arg="${kikimr_arg}${kikimr_ic_port:+ --ic-port ${kikimr_ic_port}}"
83+
84+
if [ ! -z "${kikimr_mon_address}" ]; then
85+
kikimr_arg="${kikimr_arg}${kikimr_mon_address:+ --mon-address ${kikimr_mon_address}}"
86+
else
87+
echo "Monitoring address is not defined."
88+
fi
89+
90+
if [ -f "${kikimr_auth_token_file}" ]; then
91+
kikimr_arg="${kikimr_arg}${kikimr_auth_token_file:+ --auth-token-file ${kikimr_auth_token_file}}"
92+
fi
93+
94+
if [ -f "${kikimr_key_file}" ]; then
95+
kikimr_arg="${kikimr_arg}${kikimr_key_file:+ --key-file ${kikimr_key_file}}"
96+
else
97+
echo "Key file not found!"
98+
fi
99+
kikimr_arg="${kikimr_arg}${kikimr_ca:+ --ca=${kikimr_ca}}${kikimr_cert:+ --cert=${kikimr_cert}}${kikimr_key:+ --key=${kikimr_key}}"
100+
101+
"""
102+
72103
NEW_STYLE_DYNAMIC_CFG = """kikimr_grpc_port="${kikimr_grpc_port:? expected not empty var}"
73104
kikimr_home="${kikimr_home:? expected not empty var}"
74105
kikimr_ic_port="${kikimr_ic_port:? expected not empty var}"
@@ -116,6 +147,52 @@
116147
fi
117148
"""
118149

150+
DYNAMIC_CFG_V2 = """kikimr_grpc_port="${kikimr_grpc_port:? expected not empty var}"
151+
kikimr_home="${kikimr_home:? expected not empty var}"
152+
kikimr_ic_port="${kikimr_ic_port:? expected not empty var}"
153+
kikimr_binaries_base_path="/Berkanavt/kikimr"
154+
kikimr_mbus_port="${kikimr_mbus_port:? expected not empty var}"
155+
kikimr_mon_address=""
156+
kikimr_mon_port="${kikimr_mon_port:? expected not empty var}"
157+
kikimr_node_broker_port="2135"
158+
kikimr_syslog_service_tag="${kikimr_syslog_service_tag:? expected not empty var}"
159+
kikimr_tenant="${kikimr_tenant:? expected not empty var}"
160+
kikimr_config="${kikimr_home}/cfg"
161+
kikimr_auth_token_file="${kikimr_home}/token/kikimr.token"
162+
163+
#Custom config
164+
[ -s /etc/default/kikimr.custom ] && . /etc/default/kikimr.custom
165+
166+
kikimr_arg="${kikimr_arg} server --config-dir ${kikimr_config} --tenant ${kikimr_tenant}"
167+
kikimr_arg="${kikimr_arg}${kikimr_mon_port:+ --mon-port ${kikimr_mon_port}}"
168+
kikimr_arg="${kikimr_arg}${kikimr_grpc_port:+ --grpc-port ${kikimr_grpc_port}}"
169+
kikimr_arg="${kikimr_arg}${kikimr_ic_port:+ --ic-port ${kikimr_ic_port}}"
170+
kikimr_arg="${kikimr_arg}${kikimr_node_broker_port:+ --node-broker-port ${kikimr_node_broker_port}}"
171+
kikimr_arg="${kikimr_arg}${kikimr_syslog_service_tag:+ --syslog-service-tag ${kikimr_syslog_service_tag}}"
172+
173+
if [ -f "${kikimr_auth_token_file}" ]; then
174+
kikimr_arg="${kikimr_arg}${kikimr_auth_token_file:+ --auth-token-file ${kikimr_auth_token_file}}"
175+
fi
176+
177+
if [ ! -z "${kikimr_kafka_port}" ]; then
178+
kikimr_arg="${kikimr_arg}${kikimr_kafka_port:+ --kafka-port ${kikimr_kafka_port}}"
179+
else
180+
echo "Kafka port is not defined."
181+
fi
182+
183+
if [ ! -z "${kikimr_grpcs_port}" ]; then
184+
kikimr_arg="${kikimr_arg}${kikimr_grpcs_port:+ --grpcs-port ${kikimr_grpcs_port}}"
185+
else
186+
echo "GRPCs port is not defined."
187+
fi
188+
189+
if [ -f "${kikimr_key_file}" ]; then
190+
kikimr_arg="${kikimr_arg}${kikimr_key_file:+ --key-file ${kikimr_key_file}}"
191+
else
192+
echo "Key file not found!"
193+
fi
194+
"""
195+
119196
DEFAULT_ARGUMENTS_SET = """
120197
kikimr_arg="${kikimr_arg} server"
121198
kikimr_arg="${kikimr_arg}${kikimr_loglevel:+ --log-level ${kikimr_loglevel}} --syslog"
@@ -193,7 +270,7 @@ def local_vars(
193270
grpc_port=2135,
194271
mbus_port=2134,
195272
kikimr_home='/Berkanavt/kikimr',
196-
kikimr_binaries_base_path='/Berkanavt/kikimr',
273+
kikimr_binaries_base_path="",
197274
pq_enable=True,
198275
sqs_port=8771,
199276
sqs_enable=False,
@@ -239,7 +316,8 @@ def local_vars(
239316
[
240317
('kikimr_ic_port', ic_port),
241318
('kikimr_mon_port', mon_port),
242-
('kikimr_home', kikimr_home),
319+
('kikimr_grpc_port', grpc_port),
320+
('kikimr_home', kikimr_home)
243321
]
244322
)
245323

@@ -372,6 +450,14 @@ def dynamic_cfg_new_style(
372450
)
373451

374452

453+
def dynamic_cfg_new_style_v2():
454+
return "\n".join(
455+
[
456+
DYNAMIC_CFG_V2,
457+
]
458+
)
459+
460+
375461
def kikimr_cfg_for_static_node_new_style(
376462
ic_port=19001,
377463
mon_port=8765,
@@ -396,8 +482,8 @@ def kikimr_cfg_for_static_node_new_style(
396482
kikimr_home=kikimr_home,
397483
enable_cores=enable_cores,
398484
cert_params=cert_params,
399-
default_log_level=None,
400-
kikimr_binaries_base_path=None,
485+
default_log_level=0,
486+
kikimr_binaries_base_path="",
401487
new_style_kikimr_cfg=new_style_kikimr_cfg,
402488
mbus_enabled=mbus_enabled,
403489
pq_enable=pq_enable,
@@ -408,6 +494,41 @@ def kikimr_cfg_for_static_node_new_style(
408494
)
409495

410496

497+
def kikimr_cfg_for_static_node_new_style_v2(
498+
ic_port=19001,
499+
mon_port=8765,
500+
grpc_port=2135,
501+
mon_address="",
502+
enable_cores=False,
503+
kikimr_home='/Berkanavt/kikimr',
504+
tenant=None,
505+
cert_params=None,
506+
new_style_kikimr_cfg=True,
507+
mbus_enabled=False,
508+
pq_enable=True,
509+
):
510+
return "\n".join(
511+
[
512+
local_vars(
513+
tenant,
514+
ic_port=ic_port,
515+
mon_address=mon_address,
516+
mon_port=mon_port,
517+
grpc_port=grpc_port,
518+
kikimr_home=kikimr_home,
519+
enable_cores=enable_cores,
520+
cert_params=cert_params,
521+
kikimr_binaries_base_path="",
522+
new_style_kikimr_cfg=new_style_kikimr_cfg,
523+
mbus_enabled=mbus_enabled,
524+
pq_enable=pq_enable,
525+
),
526+
CONFIG_V2,
527+
]
528+
+ mbus_arguments(mbus_enabled)
529+
)
530+
531+
411532
def kikimr_cfg_for_static_node(
412533
tenant=None,
413534
ic_port=19001,

ydb/tools/cfg/validation.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -904,6 +904,11 @@
904904
"minLength": 1,
905905
"enum": Erasure.all_erasure_type_names(),
906906
},
907+
"erasure": {
908+
"type": "string",
909+
"minLength": 1,
910+
"enum": Erasure.all_erasure_type_names(),
911+
},
907912
"fail_domain_type": {
908913
"type": "string",
909914
"minLength": 1,
@@ -952,7 +957,10 @@
952957
"yql_analytics": copy.deepcopy(YQL_SCHEMA),
953958
"yq": copy.deepcopy(YQ_SCHEMA),
954959
},
955-
"required": ["static_erasure", "hosts"],
960+
"anyOf": [
961+
{"required": ["static_erasure", "hosts"]},
962+
{"required": ["erasure", "hosts"]},
963+
],
956964
}
957965

958966

0 commit comments

Comments
 (0)