Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: update RemoteConfig to handle multi-cluster networking #1348

Merged

Conversation

leninmehedy
Copy link
Member

@leninmehedy leninmehedy commented Feb 11, 2025

Description

This pull request changes the following:

  • add support for new data types ClusterRef and Cluster
  • update RemoteConfig to handle multi-cluster networking
  • fix typo: replays -> relays

Related Issues

Screenshots

Screenshot 2025-02-11 at 7 26 15 PM

@leninmehedy leninmehedy requested a review from a team as a code owner February 11, 2025 05:47
@leninmehedy leninmehedy requested review from matteriben and jeromy-cannon and removed request for matteriben February 11, 2025 05:47
Copy link
Contributor

github-actions bot commented Feb 11, 2025

Unit Test Results - Linux

  1 files  ±0   60 suites  +1   1s ⏱️ -1s
239 tests +8  239 ✅ +8  0 💤 ±0  0 ❌ ±0 
248 runs  +8  248 ✅ +8  0 💤 ±0  0 ❌ ±0 

Results for commit aa67689. ± Comparison against base commit 757156a.

This pull request removes 3 and adds 11 tests. Note that renamed tests count towards both.
should fail if cluster is string ‑ ConsensusNodeComponent should fail if cluster is string
should fail if name is string ‑ ConsensusNodeComponent should fail if name is string
should fail if namespace is string ‑ ConsensusNodeComponent should fail if namespace is string
should convert clusters map to an object ‑ Cluster should convert clusters map to an object
should convert to an object ‑ Cluster should convert to an object
should fail if cluster is not a string ‑ ConsensusNodeComponent should fail if cluster is not a string
should fail if name is not a string ‑ Cluster should fail if name is not a string
should fail if name is not a string ‑ ConsensusNodeComponent should fail if name is not a string
should fail if name is not provided ‑ Cluster should fail if name is not provided
should fail if namespace is not a string ‑ Cluster should fail if namespace is not a string
should fail if namespace is not a string ‑ ConsensusNodeComponent should fail if namespace is not a string
should fail if namespace is not provided ‑ Cluster should fail if namespace is not provided
should fail if nodeId is negative ‑ ConsensusNodeComponent should fail if nodeId is negative
…

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Feb 11, 2025

Unit Test Results - Windows

  1 files  ±0   60 suites  +1   3s ⏱️ ±0s
239 tests +8  239 ✅ +8  0 💤 ±0  0 ❌ ±0 
248 runs  +8  248 ✅ +8  0 💤 ±0  0 ❌ ±0 

Results for commit aa67689. ± Comparison against base commit 757156a.

This pull request removes 3 and adds 11 tests. Note that renamed tests count towards both.
should fail if cluster is string ‑ ConsensusNodeComponent should fail if cluster is string
should fail if name is string ‑ ConsensusNodeComponent should fail if name is string
should fail if namespace is string ‑ ConsensusNodeComponent should fail if namespace is string
should convert clusters map to an object ‑ Cluster should convert clusters map to an object
should convert to an object ‑ Cluster should convert to an object
should fail if cluster is not a string ‑ ConsensusNodeComponent should fail if cluster is not a string
should fail if name is not a string ‑ Cluster should fail if name is not a string
should fail if name is not a string ‑ ConsensusNodeComponent should fail if name is not a string
should fail if name is not provided ‑ Cluster should fail if name is not provided
should fail if namespace is not a string ‑ Cluster should fail if namespace is not a string
should fail if namespace is not a string ‑ ConsensusNodeComponent should fail if namespace is not a string
should fail if namespace is not provided ‑ Cluster should fail if namespace is not provided
should fail if nodeId is negative ‑ ConsensusNodeComponent should fail if nodeId is negative
…

♻️ This comment has been updated with latest results.

…upport for CusterRef type

Signed-off-by: Lenin Mehedy <lenin.mehedy@swirldslabs.com>
@leninmehedy leninmehedy force-pushed the 01345-update-remote-config-with-multi-cluster-support branch from 6cf0fc1 to 55494a2 Compare February 11, 2025 05:51
Copy link
Contributor

E2E Test Report

 17 files  ±0  126 suites  ±0   1h 27m 26s ⏱️ + 1m 21s
254 tests ±0  254 ✅ ±0  0 💤 ±0  0 ❌ ±0 
265 runs  ±0  265 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 55494a2. ± Comparison against base commit 757156a.

Copy link
Contributor

github-actions bot commented Feb 11, 2025

E2E Test Report

 17 files  ±0  126 suites  ±0   1h 27m 28s ⏱️ + 1m 23s
254 tests ±0  254 ✅ ±0  0 💤 ±0  0 ❌ ±0 
265 runs  ±0  265 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit aa67689. ± Comparison against base commit 757156a.

♻️ This comment has been updated with latest results.

Copy link

codacy-production bot commented Feb 11, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.06% (target: -1.00%) 82.93%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (757156a) 23219 19408 83.59%
Head commit (aa67689) 23347 (+128) 19528 (+120) 83.64% (+0.06%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#1348) 164 136 82.93%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more

Copy link

codecov bot commented Feb 11, 2025

Codecov Report

Attention: Patch coverage is 80.48780% with 32 lines in your changes missing coverage. Please review.

Project coverage is 82.56%. Comparing base (757156a) to head (aa67689).
Report is 66 commits behind head on main.

Files with missing lines Patch % Lines
...c/core/config/remote/remote_config_data_wrapper.ts 47.36% 10 Missing ⚠️
src/commands/network.ts 0.00% 7 Missing ⚠️
src/commands/node/handlers.ts 12.50% 7 Missing ⚠️
src/core/config/remote/listr_config_tasks.ts 14.28% 6 Missing ⚠️
src/core/config/remote/remote_config_manager.ts 77.77% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1348      +/-   ##
==========================================
+ Coverage   82.51%   82.56%   +0.04%     
==========================================
  Files         127      128       +1     
  Lines       23219    23347     +128     
  Branches     1556     1511      -45     
==========================================
+ Hits        19159    19276     +117     
- Misses       3959     4049      +90     
+ Partials      101       22      -79     
Files with missing lines Coverage Δ
src/core/config/remote/cluster.ts 100.00% <100.00%> (ø)
...rc/core/config/remote/components/base_component.ts 97.01% <100.00%> (ø)
...nfig/remote/components/consensus_node_component.ts 100.00% <100.00%> (ø)
src/core/config/remote/enumerations.ts 100.00% <100.00%> (ø)
src/core/config/remote/remote_config_manager.ts 71.34% <77.77%> (+0.16%) ⬆️
src/core/config/remote/listr_config_tasks.ts 59.03% <14.28%> (ø)
src/commands/network.ts 66.23% <0.00%> (-0.41%) ⬇️
src/commands/node/handlers.ts 84.52% <12.50%> (-0.51%) ⬇️
...c/core/config/remote/remote_config_data_wrapper.ts 89.15% <47.36%> (-3.30%) ⬇️

... and 24 files with indirect coverage changes

Impacted file tree graph

Signed-off-by: Lenin Mehedy <lenin.mehedy@swirldslabs.com>
@jeromy-cannon jeromy-cannon merged commit 77b769f into main Feb 11, 2025
43 of 44 checks passed
@jeromy-cannon jeromy-cannon deleted the 01345-update-remote-config-with-multi-cluster-support branch February 11, 2025 10:39
swirlds-automation added a commit that referenced this pull request Feb 20, 2025
## [0.35.0](v0.34.0...v0.35.0) (2025-02-20)

### Features

* Add adminKey flag to node setup command ([#1193](#1193)) ([b044fcc](b044fcc))
* add BaseCommand.getConsensusNodes() method ([#1364](#1364)) ([44703a4](44703a4))
* add BaseCommand.getContexts() method ([#1366](#1366)) ([7a5b05b](7a5b05b))
* add basic multi-cluster support to `solo network deploy` ([#1389](#1389)) ([22ed9ae](22ed9ae))
* add clusters fluent interface implementation ([#1291](#1291)) ([95c71f0](95c71f0))
* add concurrent to the task of copying hedera jar files to network node ([#1289](#1289)) ([c50f4c3](c50f4c3))
* add configmaps fluent interface implementation ([#1295](#1295)) ([2c5d6f3](2c5d6f3))
* add contexts fluent interface implementation ([#1297](#1297)) ([938a956](938a956))
* add factory and injection logic ([#1352](#1352)) ([c794610](c794610))
* add flags to support aws as storage destination ([#1372](#1372)) ([5ca0e47](5ca0e47))
* add secrets fluent interface implementation ([#1312](#1312)) ([fb92fd6](fb92fd6))
* add service and services fluent interface implementation ([#1303](#1303)) ([8ef6998](8ef6998))
* add support for --force-port-forward as a top level flag ([#1404](#1404)) ([5c18967](5c18967))
* add support for multi-cluster testing via KinD ([#1392](#1392)) ([ec7eca1](ec7eca1))
* add support for using load balancer address in gossip configuration ([#1405](#1405)) ([0e3f41f](0e3f41f))
* **cli:** add new command `solo deployment list` that lists deployments on that specific cluster ([#1220](#1220)) ([6b0b486](6b0b486))
* **cli:** reduce redundancy on context to cluster flags in command `deployment create` ([#1156](#1156)) ([4ab4dd5](4ab4dd5))
* create the v059x node-override.yaml via solo ([#1192](#1192)) ([283d35c](283d35c))
* **external-database:** add ability to pass readonly user to the external database ([#1350](#1350)) ([d9626ac](d9626ac))
* **local-remote-config:** added solo version to local config and remote config ([#1384](#1384)) ([2dca095](2dca095))
* **mirror-node:** Enhance mirror-node external database feature ([#1230](#1230)) ([bce75d5](bce75d5))
* **multi-cluster:** 'solo relay deploy' to handle cluster-ref value ([#1394](#1394)) ([e73114c](e73114c))
* **multi-cluster:** make remote config validation compatible with multi-cluster K8 implementation ([#1407](#1407)) ([7614a39](7614a39))
* **multi-cluster:** Update `solo node setup` to support multiple clusters ([#1368](#1368)) ([4618a43](4618a43))
* **remote-config:** instead of keeping just the command and the subcommand inside the remote config keep the flags as passed ([#1208](#1208)) ([a31498e](a31498e))
* **remote-config:** save reusable solo flags in remoteconfig ([#1191](#1191)) ([809d0ab](809d0ab))
* Separate concepts for namespace and deployment name ([#1231](#1231)) ([2566c90](2566c90))
* update solo to support pathPrefix of mirror node importer ([#1204](#1204)) ([d9a3592](d9a3592))

### Bug Fixes

* ensure network active check supports multi-cluster deployments ([#1431](#1431)) ([a07801f](a07801f))
* ensure staking updates support multi-cluster deployments  ([#1432](#1432)) ([ef5435e](ef5435e))
* fixed issue with taskfile forcing an incorrect cluster and context and added a dual cluster readme ([#1396](#1396)) ([cc672c2](cc672c2))
* fixed merge issue with incorrect license header ([#1235](#1235)) ([cb91806](cb91806))
* increase number of attempts to wait for active nodes ([#1430](#1430)) ([d113167](d113167))
* mirror node command changes required for multi-cluster support ([#1433](#1433)) ([f43870e](f43870e))
* **multi-cluster:** fix 'solo node setup' command, failing when running multiple clusters ([#1421](#1421)) ([eacdf1f](eacdf1f))
* **network-command:** wrong value passed to addDebugOptions inside the 'network' command ([#1415](#1415)) ([c2e5c3b](c2e5c3b))
* Resolve `cannot read properties of undefined `error thrown during `solo network deploy` ([#1410](#1410)) ([401b937](401b937))
* test script of google storage ([#1397](#1397)) ([370f57b](370f57b))
* update default solo helm chart version ([#1378](#1378)) ([5b5e276](5b5e276))
* update RemoteConfig to handle multi-cluster networking ([#1348](#1348)) ([77b769f](77b769f))
* use better internal IPs for 0.58.5+ ([#1429](#1429)) ([26279ac](26279ac))
@swirlds-automation
Copy link
Contributor

🎉 This PR is included in version 0.35.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@swirlds-automation
Copy link
Contributor

🎉 This PR is included in version 0.35.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

update RemoteConfig to handle multi-cluster networking
3 participants