From c70e180ace01be222793d56e41388d94b48f0d56 Mon Sep 17 00:00:00 2001 From: Javier Viola <363911+pepoviola@users.noreply.github.com> Date: Tue, 26 Mar 2024 23:54:59 +0100 Subject: [PATCH] fix(k8s): collator port assignment to use in cmd (#197) - [k8s] fix `cmd` generator for collators (needs to use exposed ports). --- crates/orchestrator/src/generators/command.rs | 38 +++++++++---------- crates/sdk/tests/smoke.rs | 10 +++++ 2 files changed, 29 insertions(+), 19 deletions(-) diff --git a/crates/orchestrator/src/generators/command.rs b/crates/orchestrator/src/generators/command.rs index 1baaec8..75a3acd 100644 --- a/crates/orchestrator/src/generators/command.rs +++ b/crates/orchestrator/src/generators/command.rs @@ -78,14 +78,17 @@ pub fn generate_for_cumulus_node( } // ports + let (prometheus_port, rpc_port, p2p_port) = + resolve_ports(node, options.use_default_ports_in_cmd); + tmp_args.push("--prometheus-port".into()); - tmp_args.push(node.prometheus_port.0.to_string()); + tmp_args.push(prometheus_port.to_string()); tmp_args.push("--rpc-port".into()); - tmp_args.push(node.rpc_port.0.to_string()); + tmp_args.push(rpc_port.to_string()); tmp_args.push("--listen-addr".into()); - tmp_args.push(format!("/ip4/0.0.0.0/tcp/{}/ws", node.p2p_port.0)); + tmp_args.push(format!("/ip4/0.0.0.0/tcp/{}/ws", p2p_port)); let mut collator_args: &[Arg] = &[]; let mut full_node_args: &[Arg] = &[]; @@ -248,30 +251,18 @@ pub fn generate_for_node( } // ports + let (prometheus_port, rpc_port, p2p_port) = + resolve_ports(node, options.use_default_ports_in_cmd); // Prometheus tmp_args.push("--prometheus-port".into()); - tmp_args.push(if options.use_default_ports_in_cmd { - PROMETHEUS_PORT.to_string() - } else { - node.prometheus_port.0.to_string() - }); + tmp_args.push(prometheus_port.to_string()); // RPC // TODO (team): do we want to support old --ws-port? tmp_args.push("--rpc-port".into()); - tmp_args.push(if options.use_default_ports_in_cmd { - RPC_PORT.to_string() - } else { - node.rpc_port.0.to_string() - }); + tmp_args.push(rpc_port.to_string()); - // P2P - let p2p_port = if options.use_default_ports_in_cmd { - P2P_PORT - } else { - node.p2p_port.0 - }; let listen_value = if let Some(listen_val) = args.iter().find_map(|arg| match arg { Arg::Flag(_) => None, Arg::Option(k, v) => { @@ -362,3 +353,12 @@ pub fn generate_for_node( (final_args.remove(0), final_args) } } + +/// Returns (prometheus, rpc, p2p) ports to use in the command +fn resolve_ports(node: &NodeSpec, use_default_ports_in_cmd: bool) -> (u16, u16, u16) { + if use_default_ports_in_cmd { + (PROMETHEUS_PORT, RPC_PORT, P2P_PORT) + } else { + (node.prometheus_port.0, node.rpc_port.0, node.p2p_port.0) + } +} diff --git a/crates/sdk/tests/smoke.rs b/crates/sdk/tests/smoke.rs index a022cbd..10b7031 100644 --- a/crates/sdk/tests/smoke.rs +++ b/crates/sdk/tests/smoke.rs @@ -119,6 +119,16 @@ async fn ci_k8s_basic_functionalities_should_works() { println!("parachains registered: {:?}", paras); + // collator + let collator = network.get_node("collator").unwrap(); + let client = collator.client::<subxt::PolkadotConfig>().await.unwrap(); + + // wait 3 blocks + let mut blocks = client.blocks().subscribe_finalized().await.unwrap().take(3); + while let Some(block) = blocks.next().await { + println!("Block (para) #{}", block.unwrap().header().number); + } + // tear down (optional if you don't detach the network) // network.destroy().await.unwrap(); } -- GitLab