Skip to content

Commit e7ba6f8

Browse files
chore(apollo_deployments): unify deployment functions
1 parent d8ea152 commit e7ba6f8

File tree

4 files changed

+76
-179
lines changed

4 files changed

+76
-179
lines changed

crates/apollo_deployments/src/deployment.rs

+58-5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ const DEPLOYMENT_CONFIG_DIR_NAME: &str = "deployment_configs/";
2121
const DEPLOYMENT_FILE_NAME: &str = "deployment_config_override.json";
2222
const INSTANCE_FILE_NAME: &str = "instance_config_override.json";
2323

24+
const MAX_NODE_ID: usize = 9; // Currently supporting up to 9 nodes, to avoid more complicated string manipulations.
25+
2426
#[derive(Clone, Debug, PartialEq, Serialize)]
2527
pub struct Deployment {
2628
chain_id: ChainId,
@@ -252,13 +254,13 @@ pub struct InstanceConfigOverride {
252254

253255
impl InstanceConfigOverride {
254256
pub fn new(
255-
consensus_bootstrap_peer_multiaddr: &'static str,
257+
consensus_bootstrap_peer_multiaddr: impl ToString,
256258
consensus_bootstrap_peer_multiaddr_is_none: bool,
257-
consensus_secret_key: &'static str,
258-
mempool_bootstrap_peer_multiaddr: &'static str,
259+
consensus_secret_key: impl ToString,
260+
mempool_bootstrap_peer_multiaddr: impl ToString,
259261
mempool_bootstrap_peer_multiaddr_is_none: bool,
260-
mempool_secret_key: &'static str,
261-
validator_id: &'static str,
262+
mempool_secret_key: impl ToString,
263+
validator_id: impl ToString,
262264
) -> Self {
263265
Self {
264266
consensus_bootstrap_peer_multiaddr: consensus_bootstrap_peer_multiaddr.to_string(),
@@ -271,3 +273,54 @@ impl InstanceConfigOverride {
271273
}
272274
}
273275
}
276+
277+
pub(crate) fn create_hybrid_instance_config_override(
278+
id: usize,
279+
namespace: &'static str,
280+
) -> InstanceConfigOverride {
281+
let accepted_node_id_range = 1..=MAX_NODE_ID;
282+
assert!(
283+
accepted_node_id_range.contains(&id),
284+
"Node id {} is out of range {:?}",
285+
id,
286+
accepted_node_id_range
287+
);
288+
289+
// TODO(Tsabary): these should be derived from the hybrid deployment module, and used
290+
// consistently throughout the code.
291+
292+
const FIRST_NODE_ADDRESS: &str = "12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5";
293+
const CORE_SERVICE_NAME: &str = "sequencer-core-service";
294+
const CORE_SERVICE_PORT: u16 = 53080;
295+
296+
const MEMPOOL_SERVICE_NAME: &str = "sequencer-mempool-service";
297+
const MEMPOOL_SERVICE_PORT: u16 = 53200;
298+
299+
if id == 1 {
300+
InstanceConfigOverride::new(
301+
"",
302+
true,
303+
"0x0101010101010101010101010101010101010101010101010101010101010101",
304+
"",
305+
true,
306+
"0x0101010101010101010101010101010101010101010101010101010101010101",
307+
"0x1",
308+
)
309+
} else {
310+
InstanceConfigOverride::new(
311+
format!(
312+
"/dns/{}.{}.svc.cluster.local/tcp/{}/p2p/{}",
313+
CORE_SERVICE_NAME, namespace, CORE_SERVICE_PORT, FIRST_NODE_ADDRESS
314+
),
315+
false,
316+
format!("0x010101010101010101010101010101010101010101010101010101010101010{}", id),
317+
format!(
318+
"/dns/{}.{}.svc.cluster.local/tcp/{}/p2p/{}",
319+
MEMPOOL_SERVICE_NAME, namespace, MEMPOOL_SERVICE_PORT, FIRST_NODE_ADDRESS
320+
),
321+
false,
322+
format!("0x010101010101010101010101010101010101010101010101010101010101010{}", id),
323+
format!("0x{}", id),
324+
)
325+
}
326+
}

crates/apollo_deployments/src/deployment_definitions/sepolia_integration.rs

+6-58
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ use std::path::PathBuf;
33
use starknet_api::core::ChainId;
44

55
use crate::deployment::{
6+
create_hybrid_instance_config_override,
67
ConfigOverride,
78
Deployment,
89
DeploymentConfigOverride,
9-
InstanceConfigOverride,
1010
};
1111
use crate::deployment_definitions::{Environment, BASE_APP_CONFIG_PATH};
1212
use crate::service::{DeploymentName, ExternalSecret};
@@ -20,82 +20,30 @@ const SEPOLIA_INTEGRATION_DEPLOYMENT_CONFIG_OVERRIDE: DeploymentConfigOverride =
2020
"0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",
2121
);
2222

23-
fn sepolia_integration_node_0_instance_config_override() -> InstanceConfigOverride {
24-
InstanceConfigOverride::new(
25-
"",
26-
true,
27-
"0x0101010101010101010101010101010101010101010101010101010101010101",
28-
"",
29-
true,
30-
"0x0101010101010101010101010101010101010101010101010101010101010101",
31-
"0x1",
32-
)
33-
}
34-
35-
fn sepolia_integration_node_1_instance_config_override() -> InstanceConfigOverride {
36-
InstanceConfigOverride::new(
37-
"/dns/sequencer-core-service.apollo-sepolia-integration-0.svc.cluster.local/tcp/53080/p2p/\
38-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
39-
false,
40-
"0x0101010101010101010101010101010101010101010101010101010101010102",
41-
"/dns/sequencer-mempool-service.apollo-sepolia-integration-0.svc.cluster.local/tcp/53200/\
42-
p2p/12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
43-
false,
44-
"0x0101010101010101010101010101010101010101010101010101010101010102",
45-
"0x2",
46-
)
47-
}
48-
49-
fn sepolia_integration_node_2_instance_config_override() -> InstanceConfigOverride {
50-
InstanceConfigOverride::new(
51-
"/dns/sequencer-core-service.apollo-sepolia-integration-0.svc.cluster.local/tcp/53080/p2p/\
52-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
53-
false,
54-
"0x0101010101010101010101010101010101010101010101010101010101010103",
55-
"/dns/sequencer-mempool-service.apollo-sepolia-integration-0.svc.cluster.local/tcp/53200/\
56-
p2p/12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
57-
false,
58-
"0x0101010101010101010101010101010101010101010101010101010101010103",
59-
"0x3",
60-
)
61-
}
62-
63-
fn sepolia_integration_node_3_instance_config_override() -> InstanceConfigOverride {
64-
InstanceConfigOverride::new(
65-
"/dns/sequencer-core-service.apollo-sepolia-integration-0.svc.cluster.local/tcp/53080/p2p/\
66-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
67-
false,
68-
"0x0101010101010101010101010101010101010101010101010101010101010104",
69-
"/dns/sequencer-mempool-service.apollo-sepolia-integration-0.svc.cluster.local/tcp/53200/\
70-
p2p/12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
71-
false,
72-
"0x0101010101010101010101010101010101010101010101010101010101010104",
73-
"0x4",
74-
)
75-
}
23+
const FIRST_NODE_NAMESPACE: &str = "apollo-sepolia-integration-0";
7624

7725
fn sepolia_integration_node_0_config_override() -> ConfigOverride {
7826
ConfigOverride::new(
7927
SEPOLIA_INTEGRATION_DEPLOYMENT_CONFIG_OVERRIDE,
80-
sepolia_integration_node_0_instance_config_override(),
28+
create_hybrid_instance_config_override(1, FIRST_NODE_NAMESPACE),
8129
)
8230
}
8331
fn sepolia_integration_node_1_config_override() -> ConfigOverride {
8432
ConfigOverride::new(
8533
SEPOLIA_INTEGRATION_DEPLOYMENT_CONFIG_OVERRIDE,
86-
sepolia_integration_node_1_instance_config_override(),
34+
create_hybrid_instance_config_override(2, FIRST_NODE_NAMESPACE),
8735
)
8836
}
8937
fn sepolia_integration_node_2_config_override() -> ConfigOverride {
9038
ConfigOverride::new(
9139
SEPOLIA_INTEGRATION_DEPLOYMENT_CONFIG_OVERRIDE,
92-
sepolia_integration_node_2_instance_config_override(),
40+
create_hybrid_instance_config_override(3, FIRST_NODE_NAMESPACE),
9341
)
9442
}
9543
fn sepolia_integration_node_3_config_override() -> ConfigOverride {
9644
ConfigOverride::new(
9745
SEPOLIA_INTEGRATION_DEPLOYMENT_CONFIG_OVERRIDE,
98-
sepolia_integration_node_3_instance_config_override(),
46+
create_hybrid_instance_config_override(4, FIRST_NODE_NAMESPACE),
9947
)
10048
}
10149

crates/apollo_deployments/src/deployment_definitions/testing_env_2.rs

+6-58
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ use std::path::PathBuf;
33
use starknet_api::core::ChainId;
44

55
use crate::deployment::{
6+
create_hybrid_instance_config_override,
67
ConfigOverride,
78
Deployment,
89
DeploymentConfigOverride,
9-
InstanceConfigOverride,
1010
};
1111
use crate::deployment_definitions::{Environment, BASE_APP_CONFIG_PATH};
1212
use crate::service::{DeploymentName, ExternalSecret};
@@ -20,82 +20,30 @@ const TESTING_ENV_2_DEPLOYMENT_CONFIG_OVERRIDE: DeploymentConfigOverride =
2020
"0x4718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",
2121
);
2222

23-
fn testing_env_2_node_0_instance_config_override() -> InstanceConfigOverride {
24-
InstanceConfigOverride::new(
25-
"",
26-
true,
27-
"0x0101010101010101010101010101010101010101010101010101010101010101",
28-
"",
29-
true,
30-
"0x0101010101010101010101010101010101010101010101010101010101010101",
31-
"0x1",
32-
)
33-
}
34-
35-
fn testing_env_2_node_1_instance_config_override() -> InstanceConfigOverride {
36-
InstanceConfigOverride::new(
37-
"/dns/sequencer-core-service.sequencer-test-sepolia-0.svc.cluster.local/tcp/53080/p2p/\
38-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
39-
false,
40-
"0x0101010101010101010101010101010101010101010101010101010101010102",
41-
"/dns/sequencer-mempool-service.sequencer-test-sepolia-0.svc.cluster.local/tcp/53200/p2p/\
42-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
43-
false,
44-
"0x0101010101010101010101010101010101010101010101010101010101010102",
45-
"0x2",
46-
)
47-
}
48-
49-
fn testing_env_2_node_2_instance_config_override() -> InstanceConfigOverride {
50-
InstanceConfigOverride::new(
51-
"/dns/sequencer-core-service.sequencer-test-sepolia-0.svc.cluster.local/tcp/53080/p2p/\
52-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
53-
false,
54-
"0x0101010101010101010101010101010101010101010101010101010101010103",
55-
"/dns/sequencer-mempool-service.sequencer-test-sepolia-0.svc.cluster.local/tcp/53200/p2p/\
56-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
57-
false,
58-
"0x0101010101010101010101010101010101010101010101010101010101010103",
59-
"0x3",
60-
)
61-
}
62-
63-
fn testing_env_2_node_3_instance_config_override() -> InstanceConfigOverride {
64-
InstanceConfigOverride::new(
65-
"/dns/sequencer-core-service.sequencer-test-sepolia-0.svc.cluster.local/tcp/53080/p2p/\
66-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
67-
false,
68-
"0x0101010101010101010101010101010101010101010101010101010101010104",
69-
"/dns/sequencer-mempool-service.sequencer-test-sepolia-0.svc.cluster.local/tcp/53200/p2p/\
70-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
71-
false,
72-
"0x0101010101010101010101010101010101010101010101010101010101010104",
73-
"0x4",
74-
)
75-
}
23+
const FIRST_NODE_NAMESPACE: &str = "sequencer-test-sepolia-0";
7624

7725
fn testing_env_2_node_0_config_override() -> ConfigOverride {
7826
ConfigOverride::new(
7927
TESTING_ENV_2_DEPLOYMENT_CONFIG_OVERRIDE,
80-
testing_env_2_node_0_instance_config_override(),
28+
create_hybrid_instance_config_override(1, FIRST_NODE_NAMESPACE),
8129
)
8230
}
8331
fn testing_env_2_node_1_config_override() -> ConfigOverride {
8432
ConfigOverride::new(
8533
TESTING_ENV_2_DEPLOYMENT_CONFIG_OVERRIDE,
86-
testing_env_2_node_1_instance_config_override(),
34+
create_hybrid_instance_config_override(2, FIRST_NODE_NAMESPACE),
8735
)
8836
}
8937
fn testing_env_2_node_2_config_override() -> ConfigOverride {
9038
ConfigOverride::new(
9139
TESTING_ENV_2_DEPLOYMENT_CONFIG_OVERRIDE,
92-
testing_env_2_node_2_instance_config_override(),
40+
create_hybrid_instance_config_override(3, FIRST_NODE_NAMESPACE),
9341
)
9442
}
9543
fn testing_env_2_node_3_config_override() -> ConfigOverride {
9644
ConfigOverride::new(
9745
TESTING_ENV_2_DEPLOYMENT_CONFIG_OVERRIDE,
98-
testing_env_2_node_3_instance_config_override(),
46+
create_hybrid_instance_config_override(4, FIRST_NODE_NAMESPACE),
9947
)
10048
}
10149

crates/apollo_deployments/src/deployment_definitions/testing_env_3.rs

+6-58
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ use std::path::PathBuf;
33
use starknet_api::core::ChainId;
44

55
use crate::deployment::{
6+
create_hybrid_instance_config_override,
67
ConfigOverride,
78
Deployment,
89
DeploymentConfigOverride,
9-
InstanceConfigOverride,
1010
};
1111
use crate::deployment_definitions::{Environment, BASE_APP_CONFIG_PATH};
1212
use crate::service::{DeploymentName, ExternalSecret};
@@ -20,82 +20,30 @@ const TESTING_ENV_3_DEPLOYMENT_CONFIG_OVERRIDE: DeploymentConfigOverride =
2020
"0x54a93d918d62b2fb62b25e77d9cb693bd277ab7e6fa236e53af263f1adb40e4",
2121
);
2222

23-
fn testing_env_3_node_0_instance_config_override() -> InstanceConfigOverride {
24-
InstanceConfigOverride::new(
25-
"",
26-
true,
27-
"0x0101010101010101010101010101010101010101010101010101010101010101",
28-
"",
29-
true,
30-
"0x0101010101010101010101010101010101010101010101010101010101010101",
31-
"0x1",
32-
)
33-
}
34-
35-
fn testing_env_3_node_1_instance_config_override() -> InstanceConfigOverride {
36-
InstanceConfigOverride::new(
37-
"/dns/sequencer-core-service.sequencer-test-3-node-0.svc.cluster.local/tcp/53080/p2p/\
38-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
39-
false,
40-
"0x0101010101010101010101010101010101010101010101010101010101010102",
41-
"/dns/sequencer-mempool-service.sequencer-test-3-node-0.svc.cluster.local/tcp/53200/p2p/\
42-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
43-
false,
44-
"0x0101010101010101010101010101010101010101010101010101010101010102",
45-
"0x2",
46-
)
47-
}
48-
49-
fn testing_env_3_node_2_instance_config_override() -> InstanceConfigOverride {
50-
InstanceConfigOverride::new(
51-
"/dns/sequencer-core-service.sequencer-test-3-node-0.svc.cluster.local/tcp/53080/p2p/\
52-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
53-
false,
54-
"0x0101010101010101010101010101010101010101010101010101010101010103",
55-
"/dns/sequencer-mempool-service.sequencer-test-3-node-0.svc.cluster.local/tcp/53200/p2p/\
56-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
57-
false,
58-
"0x0101010101010101010101010101010101010101010101010101010101010103",
59-
"0x3",
60-
)
61-
}
62-
63-
fn testing_env_3_node_3_instance_config_override() -> InstanceConfigOverride {
64-
InstanceConfigOverride::new(
65-
"/dns/sequencer-core-service.sequencer-test-3-node-0.svc.cluster.local/tcp/53080/p2p/\
66-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
67-
false,
68-
"0x0101010101010101010101010101010101010101010101010101010101010104",
69-
"/dns/sequencer-mempool-service.sequencer-test-3-node-0.svc.cluster.local/tcp/53200/p2p/\
70-
12D3KooWK99VoVxNE7XzyBwXEzW7xhK7Gpv85r9F3V3fyKSUKPH5",
71-
false,
72-
"0x0101010101010101010101010101010101010101010101010101010101010104",
73-
"0x4",
74-
)
75-
}
23+
const FIRST_NODE_NAMESPACE: &str = "sequencer-test-3-node-0";
7624

7725
fn testing_env_3_node_0_config_override() -> ConfigOverride {
7826
ConfigOverride::new(
7927
TESTING_ENV_3_DEPLOYMENT_CONFIG_OVERRIDE,
80-
testing_env_3_node_0_instance_config_override(),
28+
create_hybrid_instance_config_override(1, FIRST_NODE_NAMESPACE),
8129
)
8230
}
8331
fn testing_env_3_node_1_config_override() -> ConfigOverride {
8432
ConfigOverride::new(
8533
TESTING_ENV_3_DEPLOYMENT_CONFIG_OVERRIDE,
86-
testing_env_3_node_1_instance_config_override(),
34+
create_hybrid_instance_config_override(2, FIRST_NODE_NAMESPACE),
8735
)
8836
}
8937
fn testing_env_3_node_2_config_override() -> ConfigOverride {
9038
ConfigOverride::new(
9139
TESTING_ENV_3_DEPLOYMENT_CONFIG_OVERRIDE,
92-
testing_env_3_node_2_instance_config_override(),
40+
create_hybrid_instance_config_override(3, FIRST_NODE_NAMESPACE),
9341
)
9442
}
9543
fn testing_env_3_node_3_config_override() -> ConfigOverride {
9644
ConfigOverride::new(
9745
TESTING_ENV_3_DEPLOYMENT_CONFIG_OVERRIDE,
98-
testing_env_3_node_3_instance_config_override(),
46+
create_hybrid_instance_config_override(4, FIRST_NODE_NAMESPACE),
9947
)
10048
}
10149

0 commit comments

Comments
 (0)