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 the ability to inject a ca certificate for use in gRPC and gRPC Web #753

Conversation

instamenta
Copy link
Contributor

@instamenta instamenta commented Oct 28, 2024

Description

Creates secret containing the certificate data for the proxies which is, picked up in the charts and automatically used.

  • Added new class CertificateManager that handles creation of Kubernetes namespaced secret.
  • Added flags for providing node alias and path to TLS Certificates
    • --grpc-tls-cert
    • --grpc-web-tls-cert
    • --grpc-tls-key
    • --grpc-web-tls-key

Structure: alias=path ( ex. --grpc-tls-cert node1=/usr/bin/node1.crt )

Related Issues

@instamenta instamenta self-assigned this Oct 28, 2024
@instamenta instamenta requested review from leninmehedy and a team as code owners October 28, 2024 13:57
@instamenta instamenta linked an issue Oct 28, 2024 that may be closed by this pull request
Signed-off-by: instamenta <[email protected]>
Copy link
Contributor

github-actions bot commented Oct 28, 2024

Unit Test Results - Linux

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

Results for commit 0892da7.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Oct 28, 2024

Unit Test Results - Windows

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

Results for commit 0892da7. ± Comparison against base commit 6930dab.

♻️ This comment has been updated with latest results.

Copy link
Contributor

github-actions bot commented Nov 1, 2024

E2E Test Report

 16 files  109 suites   1h 0m 40s ⏱️
210 tests 210 ✅ 0 💤 0 ❌
213 runs  213 ✅ 0 💤 0 ❌

Results for commit 5c468e2.

Copy link
Contributor

github-actions bot commented Nov 1, 2024

E2E Test Report

 16 files  109 suites   1h 1m 44s ⏱️
210 tests 210 ✅ 0 💤 0 ❌
213 runs  213 ✅ 0 💤 0 ❌

Results for commit 0892da7.

♻️ This comment has been updated with latest results.

Copy link

codacy-production bot commented Nov 1, 2024

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
Report missing for 6930dab1 63.18%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (6930dab) Report Missing Report Missing Report Missing
Head commit (0892da7) 13538 11812 87.25%

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 (#753) 421 266 63.18%

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

Footnotes

  1. Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.

Copy link

codecov bot commented Nov 1, 2024

Codecov Report

Attention: Patch coverage is 61.75772% with 161 lines in your changes missing coverage. Please review.

Project coverage is 86.16%. Comparing base (b66fe05) to head (0892da7).
Report is 186 commits behind head on main.

Files with missing lines Patch % Lines
src/core/certificate_manager.ts 49.50% 100 Missing and 3 partials ⚠️
src/commands/prompts.ts 40.00% 24 Missing ⚠️
src/core/templates.ts 51.21% 20 Missing ⚠️
src/commands/network.ts 78.78% 6 Missing and 1 partial ⚠️
src/commands/node/tasks.ts 66.66% 6 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #753      +/-   ##
==========================================
- Coverage   87.09%   86.16%   -0.93%     
==========================================
  Files          40       43       +3     
  Lines       12545    13538     +993     
  Branches      944     1293     +349     
==========================================
+ Hits        10926    11665     +739     
- Misses       1568     1766     +198     
- Partials       51      107      +56     
Files with missing lines Coverage Δ
src/commands/flags.ts 99.53% <100.00%> (+0.04%) ⬆️
src/commands/node/configs.ts 95.48% <100.00%> (+0.03%) ⬆️
src/commands/node/flags.ts 100.00% <100.00%> (ø)
src/commands/node/handlers.ts 100.00% <100.00%> (+3.96%) ⬆️
src/commands/node/index.ts 35.34% <100.00%> (-7.29%) ⬇️
src/core/enumerations.ts 100.00% <100.00%> (ø)
src/core/index.ts 100.00% <100.00%> (ø)
src/commands/network.ts 76.47% <78.78%> (+0.04%) ⬆️
src/commands/node/tasks.ts 94.31% <66.66%> (-0.29%) ⬇️
src/core/templates.ts 79.82% <51.21%> (-6.45%) ⬇️
... and 2 more

... and 21 files with indirect coverage changes

Impacted file tree graph

src/commands/flags.ts Outdated Show resolved Hide resolved
src/commands/flags.ts Outdated Show resolved Hide resolved
src/commands/flags.ts Outdated Show resolved Hide resolved
src/commands/flags.ts Outdated Show resolved Hide resolved
Copy link
Contributor

@jeromy-cannon jeromy-cannon left a comment

Choose a reason for hiding this comment

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

Update version.ts with new solo-charts version once we get it tagged correctly.

instamenta and others added 2 commits November 6, 2024 10:08
Co-authored-by: Jeromy Cannon <[email protected]>
Signed-off-by: Jan Milenkov <[email protected]>
Signed-off-by: instamenta <[email protected]>
@jeromy-cannon
Copy link
Contributor

Update version.ts with new solo-charts version once we get it tagged correctly.

@instamenta , I solo-charts got tagged with 0.34.0, I think if you rebase, it will pull it in.

#788

…inject-a-ca-cert-for-use-in-grpcs-and-grpc-web

# Conflicts:
#	src/commands/network.ts
Co-authored-by: Jeromy Cannon <[email protected]>
Signed-off-by: Jan Milenkov <[email protected]>
@jeromy-cannon jeromy-cannon merged commit 2cd8a38 into main Nov 7, 2024
40 of 43 checks passed
@jeromy-cannon jeromy-cannon deleted the 00719-add-ability-to-inject-a-ca-cert-for-use-in-grpcs-and-grpc-web branch November 7, 2024 18:53
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add ability to inject a CA cert for use in grpcs and grpc-web
3 participants