forked from ethpandaops/optimism-package
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlauncher.star
More file actions
101 lines (85 loc) · 3 KB
/
Copy pathlauncher.star
File metadata and controls
101 lines (85 loc) · 3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
_file = import_module("/src/util/file.star")
_net = import_module("/src/util/net.star")
_ethereum_package_constants = import_module(
"github.com/ethpandaops/ethereum-package/src/package_io/constants.star"
)
_observability = import_module("/src/observability/observability.star")
_prometheus = import_module("/src/observability/prometheus/prometheus_launcher.star")
DATA_DIR = "/etc/kona-supervisor"
DEPENDENCY_SET_FILE_NAME = "dependency_set.json"
def launch(
plan,
params,
l1_config_env_vars,
l2s,
jwt_file,
deployment_output,
observability_helper,
):
supervisor_l2s = [
l2 for l2 in l2s if l2.network_id in params.superchain.participants
]
config = _get_config(
plan=plan,
params=params,
l1_config_env_vars=l1_config_env_vars,
l2s=supervisor_l2s,
jwt_file=jwt_file,
deployment_output=deployment_output,
observability_helper=observability_helper,
)
service = plan.add_service(params.service_name, config)
_observability.register_op_service_metrics_job(
observability_helper,
service,
)
return struct(service=service, l2s=supervisor_l2s)
def _get_config(
plan,
params,
l1_config_env_vars,
l2s,
jwt_file,
deployment_output,
observability_helper,
):
ports = _net.ports_to_port_specs(params.ports)
datadir = params.superchain.dependency_set.name
cmd = ["kona-supervisor"] + params.extra_params
# apply customizations
if observability_helper.enabled:
_observability.configure_op_service_metrics(cmd, ports)
return ServiceConfig(
image=params.image,
ports=ports,
files={
DATA_DIR: params.superchain.dependency_set.name,
_ethereum_package_constants.GENESIS_DATA_MOUNTPOINT_ON_CLIENTS: deployment_output,
_ethereum_package_constants.JWT_MOUNTPOINT_ON_CLIENTS: jwt_file,
},
env_vars={
"DATADIR": "/db",
"DEPENDENCY_SET": "{0}/{1}".format(
DATA_DIR, params.superchain.dependency_set.path
),
"ROLLUP_CONFIG_PATHS": _ethereum_package_constants.GENESIS_DATA_MOUNTPOINT_ON_CLIENTS
+ "/rollup-*.json",
"L1_RPC": l1_config_env_vars["L1_RPC_URL"],
"L2_CONSENSUS_NODES": ",".join(
[
_net.service_url(
participant.cl_context.ip_addr,
params.superchain.ports[_net.INTEROP_RPC_PORT_NAME],
)
for l2 in l2s
for participant in l2.participants
]
),
"L2_CONSENSUS_JWT_SECRET": _ethereum_package_constants.JWT_MOUNT_PATH_ON_CONTAINER,
"RPC_ADDR": "0.0.0.0",
"RPC_PORT": str(params.ports[_net.RPC_PORT_NAME].number),
"RPC_ENABLE_ADMIN": "true",
},
cmd=cmd,
private_ip_address_placeholder=_ethereum_package_constants.PRIVATE_IP_ADDRESS_PLACEHOLDER,
)