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

feat: add basic multi-cluster support to solo network deploy #1389

Merged
merged 33 commits into from
Feb 14, 2025

Conversation

jeromy-cannon
Copy link
Contributor

@jeromy-cannon jeromy-cannon commented Feb 13, 2025

Description

This pull request changes the following:

  • add basic multi-cluster support to solo network deploy
  • renamed flag from --cluster-name to --cluster-ref
  • added retry for Copy local build to Node
  • use the new dns base and template to generate config.txt and genesis-network.json plus node-add config.txt patch

Related Issues

jeromy-cannon and others added 19 commits February 13, 2025 10:59
commit 40f5cc4
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 23:00:17 2025 +0000

    added dns templating for fully qualified domain name

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 929fdaa
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 19:10:33 2025 +0000

    got further into node add

    Signed-off-by: Jeromy Cannon <[email protected]>

commit b9f6d10
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 17:24:29 2025 +0000

    removed final todo for network deploy

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 03ad78f
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 16:55:15 2025 +0000

    removed todo in addNodesAndProxies

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 54cc58f
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 16:42:13 2025 +0000

    removed todo in title: 'Check auxiliary pods are ready'

    Signed-off-by: Jeromy Cannon <[email protected]>

commit e060218
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 16:38:09 2025 +0000

    removed todo in title: 'Check proxy pods are running', envoy proxy

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 9b43649
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 16:36:45 2025 +0000

    removed todo in title: 'Check proxy pods are running'

    Signed-off-by: Jeromy Cannon <[email protected]>

commit d08a239
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 16:28:25 2025 +0000

    removed todo in           title: 'Check node pods are running',

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 075051d
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 16:25:16 2025 +0000

    removed todo in           title: 'Check if cluster setup chart is installed',

    Signed-off-by: Jeromy Cannon <[email protected]>

commit ad56068
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 16:10:16 2025 +0000

    fixed minor issue

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 310a1cb
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 15:36:06 2025 +0000

    patched NetworkCommand to work for test cases

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 98ba704
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 14:40:42 2025 +0000

    fixed keysConfigBuilder

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 04dce8d
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 14:34:45 2025 +0000

    fixed import error

    Signed-off-by: Jeromy Cannon <[email protected]>

commit d15efd7
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 14:34:23 2025 +0000

    fixed unit test cases

    Signed-off-by: Jeromy Cannon <[email protected]>

commit 40200a7
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 13:26:24 2025 +0000

    fixed some unit test cases

    Signed-off-by: Jeromy Cannon <[email protected]>

commit d6ca20e
Author: Jeromy Cannon <[email protected]>
Date:   Wed Feb 12 12:38:54 2025 +0000

    Squashed commit of the following:

    commit 5b3d68a
    Author: Lenin Mehedy <[email protected]>
    Date:   Wed Feb 12 23:37:56 2025 +1100

        feat: handle multiple contexts during network deploy (#1369)

        Signed-off-by: Lenin Mehedy <[email protected]>

    commit ea24bc4
    Author: Jeromy Cannon <[email protected]>
    Date:   Wed Feb 12 00:19:23 2025 +0000

        more todos

        Signed-off-by: Jeromy Cannon <[email protected]>

    commit 71388dd
    Author: Jeromy Cannon <[email protected]>
    Date:   Wed Feb 12 00:10:26 2025 +0000

        pushing latest

        Signed-off-by: Jeromy Cannon <[email protected]>

    commit 209c2cd
    Author: Jeromy Cannon <[email protected]>
    Date:   Tue Feb 11 21:53:15 2025 +0000

        updated cluster ref flag description

        Signed-off-by: Jeromy Cannon <[email protected]>

    commit 1a0a337
    Author: Jeromy Cannon <[email protected]>
    Date:   Tue Feb 11 21:52:12 2025 +0000

        renamed flag clusterName to clusterRef

        Signed-off-by: Jeromy Cannon <[email protected]>

    commit f4087bf
    Author: Jeromy Cannon <[email protected]>
    Date:   Tue Feb 11 21:41:02 2025 +0000

        saving progress

        Signed-off-by: Jeromy Cannon <[email protected]>

    commit 537fc1a
    Author: Jeromy Cannon <[email protected]>
    Date:   Tue Feb 11 20:51:03 2025 +0000

        set the networks deploy config with the contexts and the consensus nodes for later use

        Signed-off-by: Jeromy Cannon <[email protected]>

    commit e86e94c
    Author: Jeromy Cannon <[email protected]>
    Date:   Tue Feb 11 20:07:53 2025 +0000

        added base test for getContexts

        Signed-off-by: Jeromy Cannon <[email protected]>

    Signed-off-by: Jeromy Cannon <[email protected]>

Signed-off-by: Jeromy Cannon <[email protected]>
It reads a bit confusing, but let's just go with it for now.

Signed-off-by: Lenin Mehedy <[email protected]>
…ster-ref in consensus-node component

Signed-off-by: Lenin Mehedy <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
@jeromy-cannon jeromy-cannon self-assigned this Feb 13, 2025
@jeromy-cannon jeromy-cannon changed the title 01357 multi cluster network deploy part 3 feat: add basic multi-cluster support to solo network deploy Feb 13, 2025
Copy link
Contributor

github-actions bot commented Feb 13, 2025

Unit Test Results - Linux

  1 files  ±0   62 suites  +1   2s ⏱️ ±0s
240 tests +3  240 ✅ +3  0 💤 ±0  0 ❌ ±0 
249 runs  +3  249 ✅ +3  0 💤 ±0  0 ❌ ±0 

Results for commit e8bebc4. ± Comparison against base commit fa1787e.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Feb 13, 2025

Unit Test Results - Windows

  1 files  ±0   62 suites  +1   5s ⏱️ +2s
240 tests +3  240 ✅ +3  0 💤 ±0  0 ❌ ±0 
249 runs  +3  249 ✅ +3  0 💤 ±0  0 ❌ ±0 

Results for commit e8bebc4. ± Comparison against base commit fa1787e.

♻️ This comment has been updated with latest results.

@jeromy-cannon jeromy-cannon marked this pull request as ready for review February 14, 2025 03:02
@jeromy-cannon jeromy-cannon requested review from a team and leninmehedy as code owners February 14, 2025 03:02
leninmehedy
leninmehedy previously approved these changes Feb 14, 2025
@leninmehedy leninmehedy self-requested a review February 14, 2025 05:54
Copy link
Contributor

github-actions bot commented Feb 14, 2025

E2E Test Report

 17 files  126 suites   1h 38m 2s ⏱️
270 tests 270 ✅ 0 💤 0 ❌
285 runs  285 ✅ 0 💤 0 ❌

Results for commit e8bebc4.

♻️ This comment has been updated with latest results.

Copy link

codacy-production bot commented Feb 14, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.92% (target: -1.00%) 81.68%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (fa1787e) 23932 20061 83.83%
Head commit (e8bebc4) 24872 (+940) 21077 (+1016) 84.74% (+0.92%)

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 (#1389) 1086 887 81.68%

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 14, 2025

Codecov Report

Attention: Patch coverage is 80.84715% with 208 lines in your changes missing coverage. Please review.

Project coverage is 83.70%. Comparing base (fa1787e) to head (e8bebc4).
Report is 47 commits behind head on main.

Files with missing lines Patch % Lines
src/commands/network.ts 61.72% 157 Missing and 3 partials ⚠️
src/commands/node/configs.ts 88.52% 6 Missing and 1 partial ⚠️
src/core/helpers.ts 77.41% 6 Missing and 1 partial ⚠️
src/commands/flags.ts 91.42% 6 Missing ⚠️
src/commands/node/tasks.ts 93.25% 5 Missing and 1 partial ⚠️
src/core/config/remote/remote_config_manager.ts 78.57% 5 Missing and 1 partial ⚠️
src/core/platform_installer.ts 86.95% 6 Missing ⚠️
src/commands/deployment.ts 70.58% 5 Missing ⚠️
...network_models/genesis_network_data_constructor.ts 79.16% 4 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1389      +/-   ##
==========================================
+ Coverage   82.73%   83.70%   +0.96%     
==========================================
  Files         130      131       +1     
  Lines       23932    24872     +940     
  Branches     1600     2442     +842     
==========================================
+ Hits        19801    20820    +1019     
+ Misses       4052     3822     -230     
- Partials       79      230     +151     
Files with missing lines Coverage Δ
src/commands/account.ts 75.53% <100.00%> (-0.04%) ⬇️
src/commands/base.ts 97.00% <100.00%> (+2.08%) ⬆️
src/commands/cluster/configs.ts 83.06% <100.00%> (ø)
src/commands/cluster/flags.ts 100.00% <100.00%> (ø)
src/commands/cluster/index.ts 34.69% <100.00%> (-0.66%) ⬇️
src/commands/cluster/tasks.ts 83.48% <100.00%> (+0.71%) ⬆️
src/commands/explorer.ts 73.20% <100.00%> (+2.77%) ⬆️
src/commands/mirror_node.ts 71.37% <100.00%> (+1.65%) ⬆️
src/commands/node/flags.ts 100.00% <100.00%> (ø)
src/commands/node/handlers.ts 92.05% <100.00%> (+7.51%) ⬆️
... and 20 more

... and 35 files with indirect coverage changes

Impacted file tree graph

@jeromy-cannon jeromy-cannon merged commit 22ed9ae into main Feb 14, 2025
39 of 41 checks passed
@jeromy-cannon jeromy-cannon deleted the 01357-multi-cluster-network-deploy-part-3 branch February 14, 2025 08:40
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
6 participants