Commit 82ec85e8 authored by Barnabas Busa's avatar Barnabas Busa Committed by GitHub

feat: add custom label configuration option (#375)

parent 32f862be
...@@ -123,6 +123,10 @@ participants: ...@@ -123,6 +123,10 @@ participants:
# A list of optional extra env_vars the el container should spin up with # A list of optional extra env_vars the el container should spin up with
el_extra_env_vars: {} el_extra_env_vars: {}
# A list of optional extra labels the el container should spin up with
# Example; el_extra_labels: {"ethereum-package.partition": "1"}
el_extra_labels: {}
# The type of CL client that should be started # The type of CL client that should be started
# Valid values are nimbus, lighthouse, lodestar, teku, and prysm # Valid values are nimbus, lighthouse, lodestar, teku, and prysm
cl_client_type: lighthouse cl_client_type: lighthouse
...@@ -147,10 +151,18 @@ participants: ...@@ -147,10 +151,18 @@ participants:
# If the client combines the Beacon & validator nodes (e.g. Teku, Nimbus), then this list will be passed to the combined Beacon-validator node # If the client combines the Beacon & validator nodes (e.g. Teku, Nimbus), then this list will be passed to the combined Beacon-validator node
beacon_extra_params: [] beacon_extra_params: []
# A list of optional extra labels that will be passed to the CL client Beacon container.
# Example; beacon_extra_labels: {"ethereum-package.partition": "1"}
beacon_extra_labels: {}
# A list of optional extra params that will be passed to the CL client validator container for modifying its behaviour # A list of optional extra params that will be passed to the CL client validator container for modifying its behaviour
# If the client combines the Beacon & validator nodes (e.g. Teku, Nimbus), then this list will also be passed to the combined Beacon-validator node # If the client combines the Beacon & validator nodes (e.g. Teku, Nimbus), then this list will also be passed to the combined Beacon-validator node
validator_extra_params: [] validator_extra_params: []
# A list of optional extra labels that will be passed to the CL client validator container.
# Example; validator_extra_labels: {"ethereum-package.partition": "1"}
validator_extra_labels: {}
# A set of parameters the node needs to reach an external block building network # A set of parameters the node needs to reach an external block building network
# If `null` then the builder infrastructure will not be instantiated # If `null` then the builder infrastructure will not be instantiated
# Example: # Example:
......
...@@ -3,11 +3,14 @@ participants: ...@@ -3,11 +3,14 @@ participants:
el_client_image: ethereum/client-go:latest el_client_image: ethereum/client-go:latest
el_client_log_level: "" el_client_log_level: ""
el_extra_params: [] el_extra_params: []
el_extra_labels: {}
cl_client_type: lighthouse cl_client_type: lighthouse
cl_client_image: sigp/lighthouse:latest cl_client_image: sigp/lighthouse:latest
cl_client_log_level: "" cl_client_log_level: ""
beacon_extra_params: [] beacon_extra_params: []
beacon_extra_labels: {}
validator_extra_params: [] validator_extra_params: []
validator_extra_labels: {}
builder_network_params: null builder_network_params: null
validator_count: null validator_count: null
snooper_enabled: false snooper_enabled: false
......
...@@ -115,6 +115,8 @@ def launch( ...@@ -115,6 +115,8 @@ def launch(
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_validator_params, extra_validator_params,
extra_beacon_labels,
extra_validator_labels,
): ):
beacon_node_service_name = "{0}".format(service_name) beacon_node_service_name = "{0}".format(service_name)
validator_node_service_name = "{0}-{1}".format( validator_node_service_name = "{0}-{1}".format(
...@@ -144,6 +146,7 @@ def launch( ...@@ -144,6 +146,7 @@ def launch(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_beacon_labels,
) )
beacon_service = plan.add_service(beacon_node_service_name, beacon_config) beacon_service = plan.add_service(beacon_node_service_name, beacon_config)
...@@ -172,6 +175,7 @@ def launch( ...@@ -172,6 +175,7 @@ def launch(
v_min_mem, v_min_mem,
v_max_mem, v_max_mem,
extra_validator_params, extra_validator_params,
extra_validator_labels,
) )
validator_service = plan.add_service( validator_service = plan.add_service(
...@@ -242,6 +246,7 @@ def get_beacon_config( ...@@ -242,6 +246,7 @@ def get_beacon_config(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_params, extra_params,
extra_labels,
): ):
# If snooper is enabled use the snooper engine context, otherwise use the execution client context # If snooper is enabled use the snooper engine context, otherwise use the execution client context
if snooper_enabled: if snooper_enabled:
...@@ -347,6 +352,7 @@ def get_beacon_config( ...@@ -347,6 +352,7 @@ def get_beacon_config(
constants.CLIENT_TYPES.cl, constants.CLIENT_TYPES.cl,
image, image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
...@@ -363,6 +369,7 @@ def get_validator_config( ...@@ -363,6 +369,7 @@ def get_validator_config(
v_min_mem, v_min_mem,
v_max_mem, v_max_mem,
extra_params, extra_params,
extra_labels,
): ):
validator_keys_dirpath = shared_utils.path_join( validator_keys_dirpath = shared_utils.path_join(
VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS, VALIDATOR_KEYS_MOUNTPOINT_ON_CLIENTS,
...@@ -420,6 +427,7 @@ def get_validator_config( ...@@ -420,6 +427,7 @@ def get_validator_config(
constants.CLIENT_TYPES.validator, constants.CLIENT_TYPES.validator,
image, image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
......
...@@ -91,6 +91,8 @@ def launch( ...@@ -91,6 +91,8 @@ def launch(
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_validator_params, extra_validator_params,
extra_beacon_labels,
extra_validator_labels,
): ):
beacon_node_service_name = "{0}".format(service_name) beacon_node_service_name = "{0}".format(service_name)
validator_node_service_name = "{0}-{1}".format( validator_node_service_name = "{0}-{1}".format(
...@@ -119,6 +121,7 @@ def launch( ...@@ -119,6 +121,7 @@ def launch(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_beacon_labels,
) )
beacon_service = plan.add_service(beacon_node_service_name, beacon_config) beacon_service = plan.add_service(beacon_node_service_name, beacon_config)
...@@ -148,6 +151,7 @@ def launch( ...@@ -148,6 +151,7 @@ def launch(
v_min_mem, v_min_mem,
v_max_mem, v_max_mem,
extra_validator_params, extra_validator_params,
extra_validator_labels,
) )
plan.add_service(validator_node_service_name, validator_config) plan.add_service(validator_node_service_name, validator_config)
...@@ -208,6 +212,7 @@ def get_beacon_config( ...@@ -208,6 +212,7 @@ def get_beacon_config(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_params, extra_params,
extra_labels,
): ):
el_client_rpc_url_str = "http://{0}:{1}".format( el_client_rpc_url_str = "http://{0}:{1}".format(
el_client_context.ip_addr, el_client_context.ip_addr,
...@@ -292,6 +297,7 @@ def get_beacon_config( ...@@ -292,6 +297,7 @@ def get_beacon_config(
constants.CLIENT_TYPES.cl, constants.CLIENT_TYPES.cl,
image, image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
...@@ -309,6 +315,7 @@ def get_validator_config( ...@@ -309,6 +315,7 @@ def get_validator_config(
v_min_mem, v_min_mem,
v_max_mem, v_max_mem,
extra_params, extra_params,
extra_labels,
): ):
root_dirpath = shared_utils.path_join( root_dirpath = shared_utils.path_join(
CONSENSUS_DATA_DIRPATH_ON_SERVICE_CONTAINER, service_name CONSENSUS_DATA_DIRPATH_ON_SERVICE_CONTAINER, service_name
...@@ -364,6 +371,7 @@ def get_validator_config( ...@@ -364,6 +371,7 @@ def get_validator_config(
constants.CLIENT_TYPES.validator, constants.CLIENT_TYPES.validator,
image, image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
......
...@@ -93,6 +93,8 @@ def launch( ...@@ -93,6 +93,8 @@ def launch(
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_validator_params, extra_validator_params,
extra_beacon_labels,
extra_validator_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, NIMBUS_LOG_LEVELS participant_log_level, global_log_level, NIMBUS_LOG_LEVELS
...@@ -113,6 +115,8 @@ def launch( ...@@ -113,6 +115,8 @@ def launch(
bn_min_mem = int(v_min_mem) if (int(v_min_mem) > bn_min_mem) else bn_min_mem bn_min_mem = int(v_min_mem) if (int(v_min_mem) > bn_min_mem) else bn_min_mem
bn_max_mem = int(v_max_mem) if (int(v_max_mem) > bn_max_mem) else bn_max_mem bn_max_mem = int(v_max_mem) if (int(v_max_mem) > bn_max_mem) else bn_max_mem
extra_labels = extra_beacon_labels | extra_validator_labels
config = get_config( config = get_config(
launcher.el_cl_genesis_data, launcher.el_cl_genesis_data,
image, image,
...@@ -127,6 +131,7 @@ def launch( ...@@ -127,6 +131,7 @@ def launch(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_params, extra_params,
extra_labels,
) )
nimbus_service = plan.add_service(service_name, config) nimbus_service = plan.add_service(service_name, config)
...@@ -181,6 +186,7 @@ def get_config( ...@@ -181,6 +186,7 @@ def get_config(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_params, extra_params,
extra_labels,
): ):
# If snooper is enabled use the snooper engine context, otherwise use the execution client context # If snooper is enabled use the snooper engine context, otherwise use the execution client context
if snooper_enabled: if snooper_enabled:
...@@ -320,6 +326,7 @@ def get_config( ...@@ -320,6 +326,7 @@ def get_config(
constants.CLIENT_TYPES.cl, constants.CLIENT_TYPES.cl,
image, image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
......
...@@ -104,6 +104,8 @@ def launch( ...@@ -104,6 +104,8 @@ def launch(
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_validator_params, extra_validator_params,
extra_beacon_labels,
extra_validator_labels,
): ):
split_images = images.split(IMAGE_SEPARATOR_DELIMITER) split_images = images.split(IMAGE_SEPARATOR_DELIMITER)
if len(split_images) != EXPECTED_NUM_IMAGES: if len(split_images) != EXPECTED_NUM_IMAGES:
...@@ -146,6 +148,7 @@ def launch( ...@@ -146,6 +148,7 @@ def launch(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_beacon_labels,
) )
beacon_service = plan.add_service(beacon_node_service_name, beacon_config) beacon_service = plan.add_service(beacon_node_service_name, beacon_config)
...@@ -176,6 +179,7 @@ def launch( ...@@ -176,6 +179,7 @@ def launch(
v_min_mem, v_min_mem,
v_max_mem, v_max_mem,
extra_validator_params, extra_validator_params,
extra_validator_labels,
launcher.prysm_password_relative_filepath, launcher.prysm_password_relative_filepath,
launcher.prysm_password_artifact_uuid, launcher.prysm_password_artifact_uuid,
) )
...@@ -248,6 +252,7 @@ def get_beacon_config( ...@@ -248,6 +252,7 @@ def get_beacon_config(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_params, extra_params,
extra_labels,
): ):
# If snooper is enabled use the snooper engine context, otherwise use the execution client context # If snooper is enabled use the snooper engine context, otherwise use the execution client context
if snooper_enabled: if snooper_enabled:
...@@ -321,6 +326,7 @@ def get_beacon_config( ...@@ -321,6 +326,7 @@ def get_beacon_config(
constants.CLIENT_TYPES.cl, constants.CLIENT_TYPES.cl,
beacon_image, beacon_image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
...@@ -339,6 +345,7 @@ def get_validator_config( ...@@ -339,6 +345,7 @@ def get_validator_config(
v_min_mem, v_min_mem,
v_max_mem, v_max_mem,
extra_params, extra_params,
extra_labels,
prysm_password_relative_filepath, prysm_password_relative_filepath,
prysm_password_artifact_uuid, prysm_password_artifact_uuid,
): ):
...@@ -395,6 +402,7 @@ def get_validator_config( ...@@ -395,6 +402,7 @@ def get_validator_config(
constants.CLIENT_TYPES.validator, constants.CLIENT_TYPES.validator,
validator_image, validator_image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
......
...@@ -95,6 +95,8 @@ def launch( ...@@ -95,6 +95,8 @@ def launch(
snooper_engine_context, snooper_engine_context,
extra_beacon_params, extra_beacon_params,
extra_validator_params, extra_validator_params,
extra_beacon_labels,
extra_validator_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, TEKU_LOG_LEVELS participant_log_level, global_log_level, TEKU_LOG_LEVELS
...@@ -115,6 +117,8 @@ def launch( ...@@ -115,6 +117,8 @@ def launch(
bn_min_mem = int(v_min_mem) if (int(v_min_mem) > bn_min_mem) else bn_min_mem bn_min_mem = int(v_min_mem) if (int(v_min_mem) > bn_min_mem) else bn_min_mem
bn_max_mem = int(v_max_mem) if (int(v_max_mem) > bn_max_mem) else bn_max_mem bn_max_mem = int(v_max_mem) if (int(v_max_mem) > bn_max_mem) else bn_max_mem
extra_labels = extra_beacon_labels | extra_validator_labels
config = get_config( config = get_config(
launcher.el_cl_genesis_data, launcher.el_cl_genesis_data,
image, image,
...@@ -129,6 +133,7 @@ def launch( ...@@ -129,6 +133,7 @@ def launch(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_params, extra_params,
extra_labels,
) )
teku_service = plan.add_service(service_name, config) teku_service = plan.add_service(service_name, config)
...@@ -185,6 +190,7 @@ def get_config( ...@@ -185,6 +190,7 @@ def get_config(
snooper_enabled, snooper_enabled,
snooper_engine_context, snooper_engine_context,
extra_params, extra_params,
extra_labels,
): ):
# If snooper is enabled use the snooper engine context, otherwise use the execution client context # If snooper is enabled use the snooper engine context, otherwise use the execution client context
if snooper_enabled: if snooper_enabled:
...@@ -325,6 +331,7 @@ def get_config( ...@@ -325,6 +331,7 @@ def get_config(
constants.CLIENT_TYPES.cl, constants.CLIENT_TYPES.cl,
image, image,
el_client_context.client_name, el_client_context.client_name,
extra_labels,
), ),
) )
......
...@@ -74,6 +74,7 @@ def launch( ...@@ -74,6 +74,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, BESU_LOG_LEVELS participant_log_level, global_log_level, BESU_LOG_LEVELS
...@@ -99,6 +100,7 @@ def launch( ...@@ -99,6 +100,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
) )
service = plan.add_service(service_name, config) service = plan.add_service(service_name, config)
...@@ -136,6 +138,7 @@ def get_config( ...@@ -136,6 +138,7 @@ def get_config(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
cmd = [ cmd = [
"besu", "besu",
...@@ -207,6 +210,7 @@ def get_config( ...@@ -207,6 +210,7 @@ def get_config(
constants.CLIENT_TYPES.el, constants.CLIENT_TYPES.el,
image, image,
cl_client_name, cl_client_name,
extra_labels,
), ),
) )
......
...@@ -75,6 +75,7 @@ def launch( ...@@ -75,6 +75,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, ERIGON_LOG_LEVELS participant_log_level, global_log_level, ERIGON_LOG_LEVELS
...@@ -100,6 +101,7 @@ def launch( ...@@ -100,6 +101,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
) )
service = plan.add_service(service_name, config) service = plan.add_service(service_name, config)
...@@ -139,6 +141,7 @@ def get_config( ...@@ -139,6 +141,7 @@ def get_config(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
network_id = network_id network_id = network_id
...@@ -218,6 +221,7 @@ def get_config( ...@@ -218,6 +221,7 @@ def get_config(
constants.CLIENT_TYPES.el, constants.CLIENT_TYPES.el,
image, image,
cl_client_name, cl_client_name,
extra_labels,
), ),
) )
......
...@@ -79,6 +79,7 @@ def launch( ...@@ -79,6 +79,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, VERBOSITY_LEVELS participant_log_level, global_log_level, VERBOSITY_LEVELS
...@@ -103,6 +104,7 @@ def launch( ...@@ -103,6 +104,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
) )
service = plan.add_service(service_name, config) service = plan.add_service(service_name, config)
...@@ -138,6 +140,7 @@ def get_config( ...@@ -138,6 +140,7 @@ def get_config(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
cmd = [ cmd = [
"--gethGenesis=" "--gethGenesis="
...@@ -198,6 +201,7 @@ def get_config( ...@@ -198,6 +201,7 @@ def get_config(
constants.CLIENT_TYPES.el, constants.CLIENT_TYPES.el,
image, image,
cl_client_name, cl_client_name,
extra_labels,
), ),
) )
......
...@@ -85,6 +85,7 @@ def launch( ...@@ -85,6 +85,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, VERBOSITY_LEVELS participant_log_level, global_log_level, VERBOSITY_LEVELS
...@@ -109,6 +110,7 @@ def launch( ...@@ -109,6 +110,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
launcher.capella_fork_epoch, launcher.capella_fork_epoch,
launcher.electra_fork_epoch, launcher.electra_fork_epoch,
launcher.final_genesis_timestamp, launcher.final_genesis_timestamp,
...@@ -151,6 +153,7 @@ def get_config( ...@@ -151,6 +153,7 @@ def get_config(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
capella_fork_epoch, capella_fork_epoch,
electra_fork_epoch, electra_fork_epoch,
final_genesis_timestamp, final_genesis_timestamp,
...@@ -271,6 +274,7 @@ def get_config( ...@@ -271,6 +274,7 @@ def get_config(
constants.CLIENT_TYPES.el, constants.CLIENT_TYPES.el,
image, image,
cl_client_name, cl_client_name,
extra_labels,
), ),
) )
......
...@@ -73,6 +73,7 @@ def launch( ...@@ -73,6 +73,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, NETHERMIND_LOG_LEVELS participant_log_level, global_log_level, NETHERMIND_LOG_LEVELS
...@@ -97,6 +98,7 @@ def launch( ...@@ -97,6 +98,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
) )
service = plan.add_service(service_name, config) service = plan.add_service(service_name, config)
...@@ -134,6 +136,7 @@ def get_config( ...@@ -134,6 +136,7 @@ def get_config(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
cmd = [ cmd = [
"--log=" + log_level, "--log=" + log_level,
...@@ -193,6 +196,7 @@ def get_config( ...@@ -193,6 +196,7 @@ def get_config(
constants.CLIENT_TYPES.el, constants.CLIENT_TYPES.el,
image, image,
cl_client_name, cl_client_name,
extra_labels,
), ),
) )
......
...@@ -77,6 +77,7 @@ def launch( ...@@ -77,6 +77,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
log_level = input_parser.get_client_log_level_or_default( log_level = input_parser.get_client_log_level_or_default(
participant_log_level, global_log_level, VERBOSITY_LEVELS participant_log_level, global_log_level, VERBOSITY_LEVELS
...@@ -101,6 +102,7 @@ def launch( ...@@ -101,6 +102,7 @@ def launch(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
) )
service = plan.add_service(service_name, config) service = plan.add_service(service_name, config)
...@@ -137,6 +139,7 @@ def get_config( ...@@ -137,6 +139,7 @@ def get_config(
el_max_mem, el_max_mem,
extra_params, extra_params,
extra_env_vars, extra_env_vars,
extra_labels,
): ):
init_datadir_cmd_str = "reth init --datadir={0} --chain={1}".format( init_datadir_cmd_str = "reth init --datadir={0} --chain={1}".format(
EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER, EXECUTION_DATA_DIRPATH_ON_CLIENT_CONTAINER,
...@@ -210,6 +213,7 @@ def get_config( ...@@ -210,6 +213,7 @@ def get_config(
constants.CLIENT_TYPES.el, constants.CLIENT_TYPES.el,
image, image,
cl_client_name, cl_client_name,
extra_labels,
), ),
) )
......
...@@ -119,13 +119,16 @@ def input_parser(plan, input_args): ...@@ -119,13 +119,16 @@ def input_parser(plan, input_args):
el_client_type=participant["el_client_type"], el_client_type=participant["el_client_type"],
el_client_image=participant["el_client_image"], el_client_image=participant["el_client_image"],
el_client_log_level=participant["el_client_log_level"], el_client_log_level=participant["el_client_log_level"],
el_extra_params=participant["el_extra_params"],
el_extra_env_vars=participant["el_extra_env_vars"],
el_extra_labels=participant["el_extra_labels"],
cl_client_type=participant["cl_client_type"], cl_client_type=participant["cl_client_type"],
cl_client_image=participant["cl_client_image"], cl_client_image=participant["cl_client_image"],
cl_client_log_level=participant["cl_client_log_level"], cl_client_log_level=participant["cl_client_log_level"],
beacon_extra_params=participant["beacon_extra_params"], beacon_extra_params=participant["beacon_extra_params"],
el_extra_params=participant["el_extra_params"], beacon_extra_labels=participant["beacon_extra_labels"],
el_extra_env_vars=participant["el_extra_env_vars"],
validator_extra_params=participant["validator_extra_params"], validator_extra_params=participant["validator_extra_params"],
validator_extra_labels=participant["validator_extra_labels"],
builder_network_params=participant["builder_network_params"], builder_network_params=participant["builder_network_params"],
el_min_cpu=participant["el_min_cpu"], el_min_cpu=participant["el_min_cpu"],
el_max_cpu=participant["el_max_cpu"], el_max_cpu=participant["el_max_cpu"],
...@@ -405,13 +408,16 @@ def default_participant(): ...@@ -405,13 +408,16 @@ def default_participant():
"el_client_type": "geth", "el_client_type": "geth",
"el_client_image": "", "el_client_image": "",
"el_client_log_level": "", "el_client_log_level": "",
"el_extra_params": [],
"el_extra_env_vars": {},
"el_extra_labels": {},
"cl_client_type": "lighthouse", "cl_client_type": "lighthouse",
"cl_client_image": "", "cl_client_image": "",
"cl_client_log_level": "", "cl_client_log_level": "",
"beacon_extra_params": [], "beacon_extra_params": [],
"el_extra_params": [], "beacon_extra_labels": {},
"el_extra_env_vars": {},
"validator_extra_params": [], "validator_extra_params": [],
"validator_extra_labels": {},
"builder_network_params": None, "builder_network_params": None,
"el_min_cpu": 0, "el_min_cpu": 0,
"el_max_cpu": 0, "el_max_cpu": 0,
......
...@@ -215,6 +215,7 @@ def launch_participant_network( ...@@ -215,6 +215,7 @@ def launch_participant_network(
participant.el_max_mem, participant.el_max_mem,
participant.el_extra_params, participant.el_extra_params,
participant.el_extra_env_vars, participant.el_extra_env_vars,
participant.el_extra_labels,
) )
# Add participant el additional prometheus metrics # Add participant el additional prometheus metrics
...@@ -331,6 +332,8 @@ def launch_participant_network( ...@@ -331,6 +332,8 @@ def launch_participant_network(
snooper_engine_context, snooper_engine_context,
participant.beacon_extra_params, participant.beacon_extra_params,
participant.validator_extra_params, participant.validator_extra_params,
participant.beacon_extra_labels,
participant.validator_extra_labels,
) )
else: else:
boot_cl_client_ctx = all_cl_client_contexts boot_cl_client_ctx = all_cl_client_contexts
...@@ -356,6 +359,8 @@ def launch_participant_network( ...@@ -356,6 +359,8 @@ def launch_participant_network(
snooper_engine_context, snooper_engine_context,
participant.beacon_extra_params, participant.beacon_extra_params,
participant.validator_extra_params, participant.validator_extra_params,
participant.beacon_extra_labels,
participant.validator_extra_labels,
) )
# Add participant cl additional prometheus labels # Add participant cl additional prometheus labels
......
...@@ -62,10 +62,12 @@ def zfill_custom(value, width): ...@@ -62,10 +62,12 @@ def zfill_custom(value, width):
return ("0" * (width - len(str(value)))) + str(value) return ("0" * (width - len(str(value)))) + str(value)
def label_maker(client, client_type, image, connected_client): def label_maker(client, client_type, image, connected_client, extra_labels):
return { labels = {
"ethereum-package-client": client, "ethereum-package.client": client,
"ethereum-package-client-type": client_type, "ethereum-package.client-type": client_type,
"ethereum-package-client-image": image.replace("/", "-").replace(":", "-"), "ethereum-package.client-image": image.replace("/", "-").replace(":", "-"),
"ethereum-package-connected-client": connected_client, "ethereum-package.connected-client": connected_client,
} }
labels.update(extra_labels) # Add extra_labels to the labels dictionary
return labels
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment