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 support for flexible lease acquisition and production readiness #830

Merged
merged 29 commits into from
Nov 20, 2024

Conversation

nathanklick
Copy link
Member

@nathanklick nathanklick commented Nov 14, 2024

Description

This pull request changes the following:

  • Enhances leases to support additional edge cases where the lease can be automatically transitioned or renewed
  • Adds user, host, and process information and validation to the lease
  • Simplifies some logic and make classes more unit testable
  • Prepares lease classes to support IoC/DI containers
  • Moves leases closer to being production ready
  • Clearly separates Listr support from the core lease functionality
  • Improves handling of renewals and makes the renewal logic pluggable
  • removed swc switched to tsc, and module loading now loads imports with *.js instead of *.ts
  • removed ts-node switched to tsx to fix issues with mocha incorrect line numbers
  • fixed flag.ts loading order causing circular dependencies
  • fixed issue of incorrect usage of mocha expect and await

Outstanding Work Remaining

  • Add additional unit test coverage
  • Add TSDoc/JSDoc comments and additional inline code comments
  • Verify actual solo commands still behave as expected with similar output

Related Issues

@nathanklick nathanklick added Feature Enhancement Enhancing an existing feature driven by business requirements. Typically backwards compatible. P1 High priority issue. Required to be completed in the assigned milestone. labels Nov 14, 2024
@nathanklick nathanklick self-assigned this Nov 14, 2024
Copy link
Contributor

github-actions bot commented Nov 14, 2024

Unit Test Results - Linux

  1 files  ±0   35 suites  ±0   3s ⏱️ ±0s
 95 tests ±0   95 ✅ ±0  0 💤 ±0  0 ❌ ±0 
104 runs  ±0  104 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 07751b0. ± Comparison against base commit 6e472b5.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Nov 14, 2024

Unit Test Results - Windows

  1 files  ±0   35 suites  ±0   15s ⏱️ +4s
 95 tests ±0   95 ✅ ±0  0 💤 ±0  0 ❌ ±0 
104 runs  ±0  104 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 07751b0. ± Comparison against base commit 6e472b5.

♻️ This comment has been updated with latest results.

instamenta
instamenta previously approved these changes Nov 14, 2024
Copy link
Member

@leninmehedy leninmehedy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great. Added some nitpiks that may make the code a bit more readable. Since it is in DRAFT more, I would like do another review when it is ready.

src/core/lease.ts Outdated Show resolved Hide resolved
src/core/lease.ts Outdated Show resolved Hide resolved
src/core/lease.ts Outdated Show resolved Hide resolved
src/core/lease.ts Outdated Show resolved Hide resolved
src/core/lease_renewal.ts Outdated Show resolved Hide resolved
test/e2e/integration/core/lease.test.ts Show resolved Hide resolved
src/core/constants.ts Show resolved Hide resolved
src/core/helpers.ts Outdated Show resolved Hide resolved
src/core/lease.ts Outdated Show resolved Hide resolved
src/core/lease.ts Outdated Show resolved Hide resolved
jeromy-cannon
jeromy-cannon previously approved these changes Nov 18, 2024
Signed-off-by: Nathan Klick <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
jeromy-cannon and others added 9 commits November 20, 2024 15:46
Signed-off-by: Nathan Klick <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
… correct line numbers in stack traces during testing

Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Jeromy Cannon <[email protected]>
Signed-off-by: Nathan Klick <[email protected]>
jeromy-cannon
jeromy-cannon previously approved these changes Nov 20, 2024
Signed-off-by: Jeromy Cannon <[email protected]>
@jeromy-cannon jeromy-cannon marked this pull request as ready for review November 20, 2024 22:06
@jeromy-cannon jeromy-cannon requested review from a team as code owners November 20, 2024 22:06
jeromy-cannon
jeromy-cannon previously approved these changes Nov 20, 2024
Signed-off-by: Nathan Klick <[email protected]>
@nathanklick nathanklick merged commit 7fa86ad into main Nov 20, 2024
36 of 38 checks passed
@nathanklick nathanklick deleted the 00829-Lease-Flex branch November 20, 2024 23:02
swirlds-automation added a commit that referenced this pull request Dec 31, 2024
## [0.32.0](v0.31.1...v0.32.0) (2024-12-31)

### ⚠ BREAKING CHANGES

* update readme with warning about BREAKING CHANGE in this next release (#730)

### Features

* add ci test flow to test task command to launch solo ([#811](#811)) ([356f341](356f341))
* add example for using javascript SDK ([#832](#832)) ([1d9452e](1d9452e))
* add extended math utils and duration support ([#923](#923)) ([f5a69e7](f5a69e7))
* add separate commands for update ([#735](#735)) ([44c3132](44c3132))
* add solo smoke test to test flow ([#905](#905)) ([79410f0](79410f0))
* add support for flexible lease acquisition and production readiness ([#830](#830)) ([7fa86ad](7fa86ad))
* Add the ability to inject a ca certificate for use in gRPC and gRPC Web ([#753](#753)) ([2cd8a38](2cd8a38))
* add timeout flag to network destroy command ([#821](#821)) ([0fb570b](0fb570b))
* allow settings a reserved static IP address for the consensus nodes HAProxy and Envoy Proxy though the cli with flags ([#937](#937)) ([de9ec2e](de9ec2e))
* change mirror node and explorer from subchart to individual chart ([#743](#743)) ([58f0496](58f0496))
* Create a local config for storing configurations on the users machine ([#803](#803)) ([0a4382d](0a4382d))
* Create remote config  ([#862](#862)) ([e8fe739](e8fe739))
* dynamically construct the genesis-network.json and add it to the values file to be used during network deploy ([#982](#982)) ([1b9b7e6](1b9b7e6))
* expose pod check attempts and delays as environment controlled variables ([#812](#812)) ([a7b3279](a7b3279))
* Implement IOC ([#1010](#1010)) ([ed23a7b](ed23a7b))
* Implement solo context connect ([#863](#863)) ([782b3ec](782b3ec))
* Increase helm chart version and switch to use oci registry ([#788](#788)) ([1973275](1973275))
* **k8s:** introduce Kubernetes lease lock mechanism ([#707](#707)) ([f1b8089](f1b8089))
* new command to save state files and upload state files ([#849](#849)) ([d5a9a18](d5a9a18))
* removed caching of ConfigManager and its flags ([#713](#713)) ([76a61e3](76a61e3))
* Setup mirror node monitor pinger service ([#893](#893)) ([f4c4320](f4c4320))
* update `solo context connect` to connect to single remote cluster ([#993](#993)) ([c9711c5](c9711c5))
* Update document ([#956](#956)) ([b378937](b378937))
* update readme and hugo workflow ([#930](#930)) ([0e08abc](0e08abc))
* Validate a remote config ([#922](#922)) ([a7bbae0](a7bbae0))

### Bug Fixes

* add delay before calling script ([#955](#955)) ([76f4b81](76f4b81))
* allow expired leases to be overwritten ([#828](#828)) ([1fa1d78](1fa1d78))
* bump chart and hedera version,  re-enable node add ([#985](#985)) ([9cae011](9cae011))
* check if setup chart installed or not before network deploy ([#799](#799)) ([6930dab](6930dab))
* document typo ([#988](#988)) ([8e4fe04](8e4fe04))
* Error in `node update` separate commands when new admin key is not supplied ([#854](#854)) ([6e472b5](6e472b5))
* Examples of performance configs for HashSphere and Latitude ([#926](#926)) ([#957](#957)) ([928148b](928148b))
* fix missing file issues when running solo from npm install -g ([#736](#736)) ([2a5cfc1](2a5cfc1))
* fixed genesis-network.json file lock issue ([#1074](#1074)) ([e590516](e590516))
* flag check of node logs command and incorrect download source ([#848](#848)) ([03051f0](03051f0))
* inconsistent failures ([#866](#866)) ([13ea46d](13ea46d))
* local chart directory not being taken correctly ([#983](#983)) ([58e96e1](58e96e1))
* nextNode ID for release version > 0.56.0 ([#765](#765)) ([3b98dd6](3b98dd6))
* node id should start from `1` ([#884](#884)) ([d90c9b5](d90c9b5))
* node update with single node ([#981](#981)) ([74285bf](74285bf))
* patch issue with dist folder not showing up ([#733](#733)) ([077f989](077f989))
* performance improvements for node stop ([#986](#986)) ([437bbc6](437bbc6))
* refactored Taskfiles, fixed bugs with taskfile, lease interval, sdk node client connection, and commands missing quiet flag ([#978](#978)) ([7bb0e99](7bb0e99))
* remote config validation not working ([#967](#967)) ([88c2506](88c2506))
* resolve node update test failures ([#856](#856)) ([5e1c652](5e1c652))
* Revised example configs for Latitude deployment, automation friendly ([#1038](#1038)) ([434daf3](434daf3))
* undefined log output of namespace ([#764](#764)) ([ac15957](ac15957))

### Documentation

* update readme with warning about BREAKING CHANGE in this next release ([#730](#730)) ([06295f6](06295f6))
@swirlds-automation
Copy link
Contributor

🎉 This PR is included in version 0.32.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
Labels
Feature Enhancement Enhancing an existing feature driven by business requirements. Typically backwards compatible. P1 High priority issue. Required to be completed in the assigned milestone. released
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Leases: Support flexible lease acquisition
5 participants