Skip to content

feat: Add kubectl dependency manager#2422

Merged
jeromy-cannon merged 11 commits intomainfrom
02343-kubectl-dependency-manager
Aug 14, 2025
Merged

feat: Add kubectl dependency manager#2422
jeromy-cannon merged 11 commits intomainfrom
02343-kubectl-dependency-manager

Conversation

@Ivo-Yankov
Copy link
Copy Markdown
Contributor

@Ivo-Yankov Ivo-Yankov commented Aug 7, 2025

Description

  • Adds an abstract BaseDependencyManager class that is implemented by the existing helm and kind dependency managers.
  • Adds a new KubectlDependencyManager class.
  • All of those managers are responsible for checking if a given dependency is already installed on the client system. If it is and it meets the version requirements, the executable is copied to the SOLO_HOME directory to be used by Solo. In the case where it is not already installed, the executable file is downloaded from the appropriate URL and installed in SOLO_HOME.

Related Issues

Pull request (PR) checklist

  • This PR added tests (unit, integration, and/or end-to-end)
  • This PR updated documentation
  • This PR added no TODOs or commented out code
  • This PR has no breaking changes
  • Any technical debt has been documented as a separate issue and linked to this PR
  • Any package.json changes have been explained to and approved by a repository manager
  • All related issues have been linked to this PR
  • All changes in this PR are included in the description
  • When this PR merges the commits will be squashed and the title will be used as the commit message, the 'commit message guidelines' below have been followed

Testing

  • This PR added unit tests
  • This PR added integration/end-to-end tests
  • These changes required manual testing that is documented below
  • Anything not tested is documented

The following manual testing was done:

  • TBD

The following was not tested:

  • TBD
Commit message guidelines We use 'Conventional Commits' to ensure that our commit messages are easy to read, follow a consistent format, and for automated release note generation. Please follow the guidelines below when writing your commit messages:
  1. BREAKING CHANGE: a commit that has a footer BREAKING CHANGE:, or appends a ! after the type/scope, introduces a breaking API change (correlating with MAJOR in Semantic Versioning). A BREAKING CHANGE can be part of commits of any type. NOTE: currently breaking changes will only bump the MAJOR version.
  2. The title is prefixed with one of the following:
Prefix Description Semantic Version Update Captured in Release Notes
feat: a new feature MINOR Yes
fix: a bug fix PATCH Yes
perf: performance PATCH Yes
refactor: code change that isn't feature or fix none No
test: adding missing tests none No
docs: changes to documentation none Yes
build: changes to build process none No
ci: changes to CI configuration none No
style: formatting, missing semi-colons, etc none No
chore: updating grunt tasks etc; no production code change none No

Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
@Ivo-Yankov Ivo-Yankov self-assigned this Aug 7, 2025
@Ivo-Yankov Ivo-Yankov changed the title 02343 kubectl dependency manager feat: Add kubectl dependency manager Aug 7, 2025
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Aug 7, 2025

Unit Test Results - Linux

32 tests  ±0   32 ✅ ±0   0s ⏱️ ±0s
16 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 64dbea6. ± Comparison against base commit 6ce2568.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Aug 7, 2025

Unit Test Results - Windows

  1 files  ±0  177 suites  ±0   2s ⏱️ ±0s
494 tests ±0  494 ✅ ±0  0 💤 ±0  0 ❌ ±0 
498 runs  ±0  498 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 64dbea6. ± Comparison against base commit 6ce2568.

♻️ This comment has been updated with latest results.

Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Aug 8, 2025

E2E Test Report

 20 files  ± 0  143 suites  +4   2h 9m 22s ⏱️ + 1m 10s
394 tests +15  394 ✅ +15  0 💤 ±0  0 ❌ ±0 
407 runs  +15  407 ✅ +15  0 💤 ±0  0 ❌ ±0 

Results for commit 8222dc3. ± Comparison against base commit 12a96b4.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Aug 8, 2025

E2E Test Report

 20 files  ± 0  143 suites  +4   2h 8m 52s ⏱️ -45s
394 tests +15  394 ✅ +15  0 💤 ±0  0 ❌ ±0 
407 runs  +15  407 ✅ +15  0 💤 ±0  0 ❌ ±0 

Results for commit 64dbea6. ± Comparison against base commit 6ce2568.

♻️ This comment has been updated with latest results.

@codacy-production
Copy link
Copy Markdown

codacy-production bot commented Aug 8, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.10% (target: -1.00%) 96.74%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (6ce2568) 41965 36032 85.86%
Head commit (64dbea6) 42129 (+164) 36213 (+181) 85.96% (+0.10%)

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 (#2422) 460 445 96.74%

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

@Ivo-Yankov Ivo-Yankov marked this pull request as ready for review August 11, 2025 08:38
@Ivo-Yankov Ivo-Yankov requested review from a team as code owners August 11, 2025 08:38
@Ivo-Yankov Ivo-Yankov added the PR: Needs Team Approval A pull request that needs review from a team member. label Aug 11, 2025
@JeffreyDallas JeffreyDallas added the PR: Merge Conflicts A pull request that has merge conflicts that need to be resolved. label Aug 11, 2025
# Conflicts:
#	src/core/dependency-managers/helm-dependency-manager.ts
#	test/e2e/integration/core/dependency-managers/helm-dependency-manager.test.ts
@Ivo-Yankov Ivo-Yankov removed the PR: Merge Conflicts A pull request that has merge conflicts that need to be resolved. label Aug 12, 2025
@jeromy-cannon jeromy-cannon added PR: Merge Conflicts A pull request that has merge conflicts that need to be resolved. and removed PR: Needs Team Approval A pull request that needs review from a team member. labels Aug 13, 2025
# Conflicts:
#	src/commands/init/init.ts
@Ivo-Yankov Ivo-Yankov removed the PR: Merge Conflicts A pull request that has merge conflicts that need to be resolved. label Aug 14, 2025
@Ivo-Yankov Ivo-Yankov added the PR: Needs Team Approval A pull request that needs review from a team member. label Aug 14, 2025
@jeromy-cannon jeromy-cannon merged commit a482302 into main Aug 14, 2025
43 checks passed
@jeromy-cannon jeromy-cannon deleted the 02343-kubectl-dependency-manager branch August 14, 2025 15:33
swirlds-automation added a commit that referenced this pull request Aug 15, 2025
## [0.43.0](v0.42.0...v0.43.0) (2025-08-15)

### Features

* Add kubectl dependency manager ([#2422](#2422)) ([a482302](a482302))
* control block node version as environment variable ([#2472](#2472)) ([c678d90](c678d90))
* Docker build section ([#2433](#2433)) ([2578351](2578351))
* search next available tcp port for port forward function call ([#2362](#2362)) ([22f5a04](22f5a04))

### Bug Fixes

* disable the setting of the gRPC web endpoint when running for apps that are not CN, bump MN to v0.136.0 ([#2463](#2463)) ([16b7cb2](16b7cb2))
* Migrate to using @hiero-ledger/sdk ([#2452](#2452)) ([b9a7018](b9a7018))
* Remove requirement for kind dependency ([#2451](#2451)) ([974303c](974303c))
* update markdown documentation generation script ([#2449](#2449)) ([328544a](328544a))
@swirlds-automation
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.43.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@swirlds-automation
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 0.43.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

PR: Needs Team Approval A pull request that needs review from a team member. released on @0.43.x released

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a kubectl dependency manager to ensure that kubectl is available on the machine

4 participants