Skip to content
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1243,7 +1243,7 @@ ethereum_metrics_exporter_enabled: true

## Custom labels for Docker and Kubernetes

There are 4 custom labels that can be used to identify the nodes in the network. These labels are used to identify the nodes in the network and can be used to run chaos tests on specific nodes. An example for these labels are as follows:
There are 6 custom labels that can be used to identify the nodes in the network. These labels are used to identify the nodes in the network and can be used to run chaos tests on specific nodes. An example for these labels are as follows:

Execution Layer (EL) nodes:

Expand All @@ -1253,6 +1253,7 @@ Execution Layer (EL) nodes:
"kurtosistech.com.custom/ethereum-package.client-language:": "go",
"kurtosistech.com.custom/ethereum-package.client-type": "execution",
"kurtosistech.com.custom/ethereum-package.connected-client": "lighthouse",
"kurtosistech.com.custom/ethereum-package.node-index": "1",
```

Consensus Layer (CL) nodes - Beacon:
Expand All @@ -1263,6 +1264,7 @@ Consensus Layer (CL) nodes - Beacon:
"kurtosistech.com.custom/ethereum-package.client-language:": "rust",
"kurtosistech.com.custom/ethereum-package.client-type": "beacon",
"kurtosistech.com.custom/ethereum-package.connected-client": "geth",
"kurtosistech.com.custom/ethereum-package.node-index": "1",
```

Consensus Layer (CL) nodes - Validator:
Expand All @@ -1273,13 +1275,15 @@ Consensus Layer (CL) nodes - Validator:
"kurtosistech.com.custom/ethereum-package.client-language:": "rust",
"kurtosistech.com.custom/ethereum-package.client-type": "validator",
"kurtosistech.com.custom/ethereum-package.connected-client": "geth",
"kurtosistech.com.custom/ethereum-package.node-index": "1",
```

* `ethereum-package.client` describes which client is running on the node.
* `ethereum-package.client-image` describes the image that is used for the client.
* `ethereum-package.client-type` describes the type of client that is running on the node (`execution`,`beacon` or `validator`).
* `ethereum-package.connected-client` describes the CL/EL client that is connected to the EL/CL client.
* `ethereum-package.client-language` describes the implementation language of the running service.
* `ethereum-package.node-index` describes the index of the node (participant) that the service belongs to.

## Proposer Builder Separation (PBS) emulation

Expand Down
3 changes: 2 additions & 1 deletion src/cl/grandine/grandine_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,8 @@ def get_beacon_config(
client_type=constants.CLIENT_TYPES.cl,
image=participant.cl_image[-constants.MAX_LABEL_LENGTH :],
connected_client=el_context.client_name,
extra_labels=participant.cl_extra_labels,
extra_labels=participant.cl_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/cl/lighthouse/lighthouse_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,8 @@ def get_beacon_config(
client_type=constants.CLIENT_TYPES.cl,
image=participant.cl_image[-constants.MAX_LABEL_LENGTH :],
connected_client=el_context.client_name,
extra_labels=participant.cl_extra_labels,
extra_labels=participant.cl_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/cl/lodestar/lodestar_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,8 @@ def get_beacon_config(
client_type=constants.CLIENT_TYPES.cl,
image=participant.cl_image[-constants.MAX_LABEL_LENGTH :],
connected_client=el_context.client_name,
extra_labels=participant.cl_extra_labels,
extra_labels=participant.cl_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/cl/nimbus/nimbus_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,8 @@ def get_beacon_config(
client_type=constants.CLIENT_TYPES.cl,
image=participant.cl_image[-constants.MAX_LABEL_LENGTH :],
connected_client=el_context.client_name,
extra_labels=participant.cl_extra_labels,
extra_labels=participant.cl_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/cl/prysm/prysm_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,8 @@ def get_beacon_config(
client_type=constants.CLIENT_TYPES.cl,
image=participant.cl_image[-constants.MAX_LABEL_LENGTH :],
connected_client=el_context.client_name,
extra_labels=participant.cl_extra_labels,
extra_labels=participant.cl_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/cl/teku/teku_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,8 @@ def get_beacon_config(
client_type=constants.CLIENT_TYPES.cl,
image=participant.cl_image[-constants.MAX_LABEL_LENGTH :],
connected_client=el_context.client_name,
extra_labels=participant.cl_extra_labels,
extra_labels=participant.cl_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/el/besu/besu_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.el,
image=participant.el_image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_client_name,
extra_labels=participant.el_extra_labels,
extra_labels=participant.el_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"user": User(uid=0, gid=0),
Expand Down
3 changes: 2 additions & 1 deletion src/el/erigon/erigon_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.el,
image=participant.el_image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_client_name,
extra_labels=participant.el_extra_labels,
extra_labels=participant.el_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/el/ethereumjs/ethereumjs_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.el,
image=participant.el_image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_client_name,
extra_labels=participant.el_extra_labels,
extra_labels=participant.el_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/el/geth/geth_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.el,
image=participant.el_image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_client_name,
extra_labels=participant.el_extra_labels,
extra_labels=participant.el_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/el/nethermind/nethermind_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.el,
image=participant.el_image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_client_name,
extra_labels=participant.el_extra_labels,
extra_labels=participant.el_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/el/nimbus-eth1/nimbus_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.el,
image=participant.el_image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_client_name,
extra_labels=participant.el_extra_labels,
extra_labels=participant.el_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/el/reth/reth_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.el,
image=participant.el_image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_client_name,
extra_labels=participant.el_extra_labels,
extra_labels=participant.el_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 3 additions & 0 deletions src/mev/commit-boost/mev_boost/mev_boost_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ def launch(
el_cl_genesis_data,
global_node_selectors,
public_ports,
index,
)

mev_boost_service = plan.add_service(service_name, config)
Expand All @@ -95,6 +96,7 @@ def get_config(
el_cl_genesis_data,
node_selectors,
public_ports,
participant_index,
):
return ServiceConfig(
image=image,
Expand All @@ -114,6 +116,7 @@ def get_config(
min_memory=MIN_MEMORY,
max_memory=MAX_MEMORY,
node_selectors=node_selectors,
labels={constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
)


Expand Down
10 changes: 10 additions & 0 deletions src/mev/flashbots/mev_boost/mev_boost_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ def launch(
participant,
seconds_per_slot,
public_ports,
index,
)

mev_boost_service = plan.add_service(service_name, config)
Expand All @@ -74,6 +75,7 @@ def get_config(
participant,
seconds_per_slot,
public_ports,
participant_index,
):
command = mev_boost_args

Expand All @@ -99,6 +101,14 @@ def get_config(
min_memory=MIN_MEMORY,
max_memory=MAX_MEMORY,
node_selectors=node_selectors,
labels=shared_utils.label_maker(
client="mev-boost",
client_type="mev",
image=mev_boost_image[-constants.MAX_LABEL_LENGTH :],
connected_client="{0}-{1}".format(participant.cl_type, participant.el_type),
extra_labels={constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
supernode=participant.supernode,
),
)


Expand Down
3 changes: 3 additions & 0 deletions src/mev/mev-rs/mev_boost/mev_boost_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ def launch(
el_cl_genesis_data,
global_node_selectors,
public_ports,
index,
)

mev_boost_service = plan.add_service(service_name, config)
Expand All @@ -99,6 +100,7 @@ def get_config(
el_cl_genesis_data,
node_selectors,
public_ports,
participant_index,
):
return ServiceConfig(
image=image,
Expand All @@ -117,6 +119,7 @@ def get_config(
min_memory=MIN_MEMORY,
max_memory=MAX_MEMORY,
node_selectors=node_selectors,
labels={constants.NODE_INDEX_LABEL_KEY: str(participant_index + 1)},
)


Expand Down
3 changes: 3 additions & 0 deletions src/package_io/constants.star
Original file line number Diff line number Diff line change
Expand Up @@ -332,6 +332,9 @@ CLIENT_LANGUAGES = {
# Label key constant for client language
CLIENT_LANGUAGE_LABEL_KEY = "ethereum-package.client-language"

# Label key constant for node index
NODE_INDEX_LABEL_KEY = "ethereum-package.node-index"

VOLUME_SIZE["mainnet-shadowfork"] = VOLUME_SIZE["mainnet"]
VOLUME_SIZE["sepolia-shadowfork"] = VOLUME_SIZE["sepolia"]
VOLUME_SIZE["holesky-shadowfork"] = VOLUME_SIZE["holesky"]
Expand Down
3 changes: 2 additions & 1 deletion src/remote_signer/remote_signer_launcher.star
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.remote_signer,
image=image,
connected_client=vc_type,
extra_labels=participant.remote_signer_extra_labels,
extra_labels=participant.remote_signer_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(remote_signer_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/vc/lighthouse.star
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.validator,
image=image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_context.client_name,
extra_labels=participant.vc_extra_labels,
extra_labels=participant.vc_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(vc_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/vc/lodestar.star
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.validator,
image=image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_context.client_name,
extra_labels=participant.vc_extra_labels,
extra_labels=participant.vc_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(vc_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/vc/nimbus.star
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.validator,
image=image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_context.client_name,
extra_labels=participant.vc_extra_labels,
extra_labels=participant.vc_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(vc_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/vc/prysm.star
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.validator,
image=image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_context.client_name,
extra_labels=participant.vc_extra_labels,
extra_labels=participant.vc_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(vc_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/vc/teku.star
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.validator,
image=image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_context.client_name,
extra_labels=participant.vc_extra_labels,
extra_labels=participant.vc_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(vc_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
3 changes: 2 additions & 1 deletion src/vc/vero.star
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ def get_config(
client_type=constants.CLIENT_TYPES.validator,
image=image[-constants.MAX_LABEL_LENGTH :],
connected_client=cl_context.client_name,
extra_labels=participant.vc_extra_labels,
extra_labels=participant.vc_extra_labels
| {constants.NODE_INDEX_LABEL_KEY: str(vc_index + 1)},
supernode=participant.supernode,
),
"tolerations": tolerations,
Expand Down
Loading