Skip to content

Commit 3ce87f5

Browse files
committed
allow container params from config file
1 parent 1c8aee2 commit 3ce87f5

File tree

7 files changed

+65
-41
lines changed

7 files changed

+65
-41
lines changed

kurtosis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
name: "github.com/punkhazardlabs/ethereum-package"
1+
name: "github.com/ethpandaops/ethereum-package"

main.star

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ def run(plan, args={}):
8989
keymanager_enabled = args_with_right_defaults.keymanager_enabled
9090
apache_port = args_with_right_defaults.apache_port
9191
docker_cache_params = args_with_right_defaults.docker_cache_params
92-
txpool_viz_params = args_with_right_defaults.txpool_viz_params
9392

9493
prefunded_accounts = genesis_constants.PRE_FUNDED_ACCOUNTS
9594
if (
@@ -486,7 +485,7 @@ def run(plan, args={}):
486485
plan,
487486
txpool_viz_config_template,
488487
all_participants,
489-
txpool_viz_params,
488+
args_with_right_defaults.txpool_viz_params,
490489
global_node_selectors
491490
)
492491
elif additional_service == "forkmon":

src/package_io/constants.star

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ MEV_RS_MEV_TYPE = "mev-rs"
9393
COMMIT_BOOST_MEV_TYPE = "commit-boost"
9494
DEFAULT_DORA_IMAGE = "ethpandaops/dora:latest"
9595
DEFAULT_SPAMOOR_IMAGE = "ethpandaops/spamoor:latest"
96+
DEFAULT_TXPOOL_VIZ_IMAGE = "punkhazardlabs/txpool-viz:latest"
9697
DEFAULT_ASSERTOOR_IMAGE = "ethpandaops/assertoor:latest"
9798
DEFAULT_SNOOPER_IMAGE = "ethpandaops/rpc-snooper:latest"
9899
DEFAULT_ETHEREUM_GENESIS_GENERATOR_IMAGE = (

src/package_io/input_parser.star

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ ATTR_TO_BE_SKIPPED_AT_ROOT = (
7474
"dora_params",
7575
"docker_cache_params",
7676
"assertoor_params",
77+
"txpool_viz_params",
7778
"prometheus_params",
7879
"grafana_params",
7980
"tx_fuzz_params",
@@ -114,7 +115,6 @@ def input_parser(plan, input_args):
114115
result["global_node_selectors"] = {}
115116
result["port_publisher"] = get_port_publisher_params("default")
116117
result["spamoor_params"] = get_default_spamoor_params()
117-
result["txpool_viz_params"] = get_txpool_viz_params(input_args)
118118

119119
if constants.NETWORK_NAME.shadowfork in result["network_params"]["network"]:
120120
shadow_base = result["network_params"]["network"].split("-shadowfork")[0]
@@ -180,6 +180,8 @@ def input_parser(plan, input_args):
180180
for sub_attr in input_args["spamoor_params"]:
181181
sub_value = input_args["spamoor_params"][sub_attr]
182182
result["spamoor_params"][sub_attr] = sub_value
183+
elif attr == "txpool_viz_params":
184+
result["txpool_viz_params"] = get_txpool_viz_params(input_args)
183185
elif attr == "ethereum_genesis_generator_params":
184186
for sub_attr in input_args["ethereum_genesis_generator_params"]:
185187
sub_value = input_args["ethereum_genesis_generator_params"][sub_attr]
@@ -537,6 +539,18 @@ def input_parser(plan, input_args):
537539
spammers=result["spamoor_params"]["spammers"],
538540
extra_args=result["spamoor_params"]["extra_args"],
539541
),
542+
txpool_viz_params=struct(
543+
image=result["txpool_viz_params"]["image"],
544+
min_cpu=result["txpool_viz_params"]["min_cpu"],
545+
max_cpu=result["txpool_viz_params"]["max_cpu"],
546+
min_mem=result["txpool_viz_params"]["min_mem"],
547+
max_mem=result["txpool_viz_params"]["max_mem"],
548+
extra_args=result["txpool_viz_params"]["extra_args"],
549+
polling=result["txpool_viz_params"]["polling"],
550+
filters=result["txpool_viz_params"]["filters"],
551+
focil_enabled=result["txpool_viz_params"]["focil_enabled"],
552+
log_level=result["txpool_viz_params"]["log_level"],
553+
),
540554
additional_services=result["additional_services"],
541555
wait_for_finalization=result["wait_for_finalization"],
542556
global_log_level=result["global_log_level"],
@@ -587,7 +601,6 @@ def input_parser(plan, input_args):
587601
"public_port_start"
588602
],
589603
),
590-
txpool_viz_params=result["txpool_viz_params"]
591604
)
592605

593606

@@ -1676,8 +1689,15 @@ def get_default_ethereum_genesis_generator_params():
16761689
"image": constants.DEFAULT_ETHEREUM_GENESIS_GENERATOR_IMAGE,
16771690
}
16781691
def get_txpool_viz_params(input_args):
1692+
min_cpu = input_args.get("txpool_viz_params", {}).get("min_cpu", False)
1693+
max_cpu = input_args.get("txpool_viz_params", {}).get("max_cpu", False)
1694+
min_mem = input_args.get("txpool_viz_params", {}).get("min_mem", False)
1695+
max_mem = input_args.get("txpool_viz_params", {}).get("max_mem", False)
1696+
extra_args = input_args.get("txpool_viz_params", {}).get("extra_args", [])
16791697
polling_args = input_args.get("txpool_viz_params", {}).get("polling", {})
16801698
filters_args = input_args.get("txpool_viz_params", {}).get("filters", {})
1699+
focil_enabled = input_args.get("txpool_viz_params", {}).get("focil_enabled", "false")
1700+
log_level = input_args.get("txpool_viz_params", {}).get("log_level", "info")
16811701

16821702
polling_config = {
16831703
"interval": polling_args.get("interval", "0.5s"),
@@ -1688,14 +1708,16 @@ def get_txpool_viz_params(input_args):
16881708
"min_gas_price": filters_args.get("min_gas_price", "1gwei"),
16891709
}
16901710

1691-
focil_enabled = filters_args.get("focil_enabled", "false")
1692-
1693-
log_level = filters_args.get("log_level", "info")
1694-
16951711
return {
1712+
"image": constants.DEFAULT_TXPOOL_VIZ_IMAGE,
1713+
"min_cpu": min_cpu,
1714+
"max_cpu": max_cpu,
1715+
"min_mem": min_mem,
1716+
"max_mem": max_mem,
1717+
"extra_args": extra_args,
16961718
"polling": polling_config,
16971719
"filters": filters_config,
16981720
"focil_enabled": focil_enabled,
1699-
"log_level": log_level
1721+
"log_level": log_level,
17001722
}
17011723

src/package_io/sanity_check.star

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,11 @@ SUBCATEGORY_PARAMS = {
300300
"other",
301301
],
302302
"txpool_viz_params": [
303+
"min_cpu",
304+
"max_cpu",
305+
"min_mem",
306+
"max_mem",
307+
"extra_args",
303308
"polling",
304309
"filters",
305310
"focil_enabled",

src/txpool_viz/txpool_viz.star

Lines changed: 26 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ TXPOOL_VIZ_SERVICE_NAME="txpool-viz"
88
TXPOOL_VIZ_CONFIG_FILENAME = "config.yaml"
99
TXPOOL_VIZ_CONFIG_PATH="/cfg/"
1010

11-
# The min/max CPU/memory that txpool-viz can use
11+
# The min/max CPU/memory that txpool-viz can use.
1212
MIN_CPU = 100
13-
MAX_CPU = 10000
14-
MIN_MEMORY = 128
15-
MAX_MEMORY = 8192
13+
MAX_CPU = 1000
14+
MIN_MEM = 128
15+
MAX_MEM = 1024
1616

1717
def launch_txpool_viz(
1818
plan,
1919
config_template,
2020
network_participants,
21-
txpoolviz_params,
21+
txpool_viz_params,
2222
global_node_selectors
2323
):
24-
endpoint_list = []
24+
endpoints_list = []
2525
for participant in network_participants:
2626
el_metrics_info = participant.el_context.el_metrics_info
27-
endpoint_list.append({
27+
endpoints_list.append({
2828
"Name": el_metrics_info[0]["name"] if el_metrics_info else "unknown",
2929
"RPCUrl": participant.el_context.rpc_http_url,
3030
"Socket": participant.el_context.ws_url
@@ -37,14 +37,8 @@ def launch_txpool_viz(
3737
"BeaconUrl": participant.cl_context.beacon_http_url,
3838
})
3939

40-
41-
txpoolviz_params["endpoints"] = endpoint_list
42-
txpoolviz_params["beacon_endpoints"] = beacon_endpoints
43-
44-
txpoolviz_params["endpoints"] = endpoint_list
45-
46-
# // config data & template
47-
template_data = txpool_viz_config_template_data(txpoolviz_params)
40+
# config data & template
41+
template_data = txpool_viz_config_template_data(txpool_viz_params, endpoints_list, beacon_endpoints)
4842

4943
template_and_data = shared_utils.new_template_and_data(
5044
config_template, template_data
@@ -63,7 +57,7 @@ def launch_txpool_viz(
6357
service_name="txpool-viz-postgres",
6458
)
6559

66-
# add redis server
60+
# attaching redis server
6761
redis = redis_module.run(
6862
plan,
6963
service_name="txpool-viz-redis",
@@ -78,41 +72,42 @@ def launch_txpool_viz(
7872
"ENV": "prod" # Default for Kurtosis
7973
}
8074

81-
service_config = get_service_config(environment_variables, txpoolviz_params, global_node_selectors, config_files_artifact_name)
75+
service_config = get_service_config(environment_variables, txpool_viz_params, global_node_selectors, config_files_artifact_name)
8276

8377
txpoolviz = plan.add_service(TXPOOL_VIZ_SERVICE_NAME, config=service_config)
8478

8579
def get_service_config(environment_variables, txpool_viz_params, node_selectors, files_artifact):
8680
return ServiceConfig(
87-
image="punkhazardlabs/txpool-viz:dev",
81+
image=txpool_viz_params.image,
8882
ports= {
8983
shared_utils.HTTP_APPLICATION_PROTOCOL: PortSpec(
9084
number=HTTP_PORT_NUMBER,
9185
application_protocol=shared_utils.HTTP_APPLICATION_PROTOCOL,
9286
transport_protocol=shared_utils.TCP_PROTOCOL,
9387
),
9488
},
95-
env_vars = environment_variables,
96-
min_cpu=MIN_CPU,
97-
max_cpu=MAX_CPU,
98-
min_memory=MIN_MEMORY,
99-
max_memory=MAX_MEMORY,
89+
env_vars=environment_variables,
90+
min_cpu=txpool_viz_params.min_cpu or MIN_CPU,
91+
max_cpu=txpool_viz_params.max_cpu or MAX_CPU,
92+
min_memory=txpool_viz_params.min_mem or MIN_MEM,
93+
max_memory=txpool_viz_params.max_mem or MAX_MEM,
10094
files = {
10195
TXPOOL_VIZ_CONFIG_PATH : files_artifact
10296
},
10397
node_selectors=node_selectors,
10498
)
10599

106-
def txpool_viz_config_template_data(config):
100+
def txpool_viz_config_template_data(config, endpoints_list, beacon_endpoints):
107101
cfg = {
108-
"Endpoints": config["endpoints"],
109-
"Polling": config["polling"],
110-
"Filters": config["filters"],
111-
"LogLevel": config["log_level"],
102+
"Endpoints": endpoints_list,
103+
"Polling": config.polling,
104+
"Filters": config.filters,
105+
"LogLevel": config.log_level,
106+
"ExtraArgs": config.extra_args
112107
}
113108

114-
if config["focil_enabled"] == "true":
115-
cfg["FocilEnabled"]= config["focil_enabled"]
116-
cfg["BeaconEndpoints"] = config["beacon_endpoints"]
109+
if config.focil_enabled == "true":
110+
cfg["FocilEnabled"] = config.focil_enabled
111+
cfg["BeaconEndpoints"] = beacon_endpoints
117112

118113
return cfg

static_files/txpool-viz-config/config.yaml.tmpl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ filters:
2222
min_gas_price: {{ .Filters.MinGasPrice }}
2323

2424
log_level: "{{ .LogLevel }}"
25+
26+
extra_args: {{ .ExtraArgs }}

0 commit comments

Comments
 (0)