Commit Graph

8766 Commits

Author SHA1 Message Date
George Jenkins 5926ec83dd Remove SetupPluginEnv
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-09-01 10:49:01 -07:00
George Jenkins 665c5a1fc9
Merge pull request #31224 from gjenkins8/gjenkins/postrenderer_plugin_message_value
fix: Adjust PostRenderer plugin output to value
2025-09-01 10:40:18 -07:00
George Jenkins 709f9464e4
Merge pull request #31218 from gjenkins8/gjenkins/plugn-integration/rm_legacy_command
Remove legacy Command/Hooks from v1 Subprocess (#23)
2025-09-01 10:34:59 -07:00
George Jenkins ae297e6cb3
Merge pull request #31209 from helm/dependabot/go_modules/main/k8s-io-e32ead751c
chore(deps): bump the k8s-io group with 7 updates
2025-09-01 09:54:50 -07:00
George Jenkins d99d732542 fix: Adjust PostRenderer plugin output to value
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-09-01 09:39:38 -07:00
George Jenkins c35755a197 Remove legacy Command/Hooks from v1 Subprocess (#23)
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-31 22:24:31 -07:00
Scott Rigby bd29e5edc2
Merge pull request #31217 from helm/plugin-postrender-type
[HIP-0026] Move Postrenderer to a plugin type
2025-08-31 21:23:49 -04:00
Scott Rigby 591d863df5
Move Postrenderer to a plugin type
Fix/add back postrenderer args unit tests

Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-31 19:03:34 -05:00
Scott Rigby 9bb7e13c66
Merge pull request #31196 from helm/plugin-signing-verification-remove-file-io
[HIP-0026] Remove unnecessary file i/o operations from signing and verifying
2025-08-31 18:22:24 -04:00
Scott Rigby e814ff3c38
Remove unnecessary file i/o operations from signing and verifying
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-30 17:28:16 -05:00
Scott Rigby 9ea35da0d0
[HIP-0026] Plugin packaging, signing, and verification (#31176)
* Plugin packaging, signing and verification

Signed-off-by: Scott Rigby <scott@r6by.com>

* wrap keyring read error with more explicit message

Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>

* skip unnecessary check

Co-authored-by: Evans Mungai <mbuevans@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>

* Change behavior for installing plugin with missing .prov file (now warns and continues instead of failing)

Signed-off-by: Scott Rigby <scott@r6by.com>

* Add comprehensive plugin verification tests

- Test missing .prov files (warns but continues)
- Test invalid .prov file formats (fails verification)
- Test hash mismatches in .prov files (fails verification)
- Test .prov file access errors (fails appropriately)
- Test directory plugins don't support verification
- Test installation without verification enabled (succeeds)
- Test with valid .prov files (fails on empty keyring as expected)

---------

Signed-off-by: Scott Rigby <scott@r6by.com>
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Co-authored-by: Evans Mungai <mbuevans@gmail.com>
2025-08-30 13:25:28 -04:00
Terry Howe 9eafbc53df fix: make file whitespace
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2025-08-30 02:00:33 -04:00
dependabot[bot] 15bbb4406c
chore(deps): bump the k8s-io group with 7 updates
Bumps the k8s-io group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.33.4` | `0.34.0` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.33.4` | `0.34.0` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.33.4` | `0.34.0` |
| [k8s.io/apiserver](https://github.com/kubernetes/apiserver) | `0.33.4` | `0.34.0` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.33.4` | `0.34.0` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.33.4` | `0.34.0` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.33.4` | `0.34.0` |


Updates `k8s.io/api` from 0.33.4 to 0.34.0
- [Commits](https://github.com/kubernetes/api/compare/v0.33.4...v0.34.0)

Updates `k8s.io/apiextensions-apiserver` from 0.33.4 to 0.34.0
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.33.4...v0.34.0)

Updates `k8s.io/apimachinery` from 0.33.4 to 0.34.0
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.33.4...v0.34.0)

Updates `k8s.io/apiserver` from 0.33.4 to 0.34.0
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.33.4...v0.34.0)

Updates `k8s.io/cli-runtime` from 0.33.4 to 0.34.0
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.33.4...v0.34.0)

Updates `k8s.io/client-go` from 0.33.4 to 0.34.0
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.33.4...v0.34.0)

Updates `k8s.io/kubectl` from 0.33.4 to 0.34.0
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.33.4...v0.34.0)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s-io
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s-io
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s-io
- dependency-name: k8s.io/apiserver
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s-io
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s-io
- dependency-name: k8s.io/client-go
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s-io
- dependency-name: k8s.io/kubectl
  dependency-version: 0.34.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: k8s-io
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 21:13:46 +00:00
Robert Sirchia d601ce59a9
Merge pull request #31210 from helm/dependabot/go_modules/main/github.com/stretchr/testify-1.11.1
chore(deps): bump github.com/stretchr/testify from 1.11.0 to 1.11.1
2025-08-28 12:56:49 -04:00
dependabot[bot] d985122a26
chore(deps): bump github.com/stretchr/testify from 1.11.0 to 1.11.1
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.11.0 to 1.11.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.11.0...v1.11.1)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-version: 1.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 16:40:28 +00:00
George Jenkins 892e86182f
Merge pull request #31194 from gjenkins8/gjenkins/plugin-integration/wasm_runtime
[HIP-0026] Plugin extism/v1 runtime
2025-08-28 09:39:10 -07:00
George Jenkins 80f659ce8b
Merge pull request #31178 from mattfarina/env-content-cache
Add content cache to helm env
2025-08-28 09:38:48 -07:00
George Jenkins 2658a00863 fix output message value
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-27 10:21:16 -07:00
George Jenkins e5b612626e fixup slog tmpDirInner
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-27 10:13:27 -07:00
George Jenkins b6545e903a code review + bug fixes
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-27 08:31:02 -07:00
George Jenkins 934f761e08
Merge pull request #30812 from gjenkins8/gjenkins/chartrelease_server_side_apply
HIP-0023: Helm support server-side apply
2025-08-26 18:52:15 -07:00
George Jenkins c8e51b40c2 Plugin extism/v1 runtime
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-26 17:29:21 -07:00
Matt Farina 073c61822d
Merge pull request #31190 from helm/dependabot/go_modules/main/github.com/stretchr/testify-1.11.0
chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.0
2025-08-26 14:14:27 -06:00
Matt Farina 4ae80c0399
Merge pull request #31191 from TerryHowe/stderr-logging
fix: send logging to stderr
2025-08-26 14:12:51 -06:00
dependabot[bot] 417e6a2cbb
chore(deps): bump github.com/stretchr/testify from 1.10.0 to 1.11.0
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.10.0 to 1.11.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.10.0...v1.11.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-26 14:45:37 +00:00
Terry Howe 389646ffd1
fix: send logging to stderr
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2025-08-26 08:13:13 -06:00
Scott Rigby 3d30112468 Fix LocalInstaller Path() to strip version from tarball filenames
Override Path() method to use existing stripPluginName function for archives

Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-25 23:17:42 -04:00
Scott Rigby 16924a51db Fix: Removed unsafe umask manipulation in tests
Problem: Tests used syscall.Umask(0000) which could leave your shell creating
files with 777 permissions if interrupted.

Solution: Instead of changing umask, tests now detect the current umask and
calculate expected permissions after it's applied.

Result: Same test coverage, but safe from system-wide side effects.

Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-25 23:17:42 -04:00
Scott Rigby 5c663db853 Plugin tarball installer support for HTTP (fix) and local (feat)
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-25 23:17:42 -04:00
Scott Rigby d19130f69e Fix file handle management in tar extractors
Use defer outFile.Close() to avoid multiple close calls and ensure proper resource cleanup

Co-authored-by: Andrew Block <andy.block@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-25 23:04:01 -04:00
Scott Rigby fd41fdd9c9 New registry plugin func GetPluginName. Re-use regsitry.reference
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-25 23:04:01 -04:00
Scott Rigby 7d22bb25fa Plugin OCI installer
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-25 23:04:01 -04:00
Matt Farina 533eddc57d Add content cache to helm env
Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-08-24 17:57:34 -04:00
Scott Rigby e3124e488f
Merge pull request #31146 from helm/plugin-types-apiversion-v1
[HIP-0026] Plugin types and plugin apiVersion v1
2025-08-23 01:42:40 -04:00
Scott Rigby a7578fec74
Plugin types and plugin apiVersion v1
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-08-22 17:17:36 -04:00
Scott Rigby be74ab72a0
[HIP-0026] Plugin runtime interface (#31145)
* Runtime abstraction to encapsulate subprocess code and enable future runtimes

Also fix race condition in TestPrepareCommandExtraArgs by replacing the shared variable modification with a local copy

Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>

* Remove commented out code

Co-authored-by: Joe Julian <me@joejulian.name>
Signed-off-by: Scott Rigby <scott@r6by.com>

* Check test failure string

Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
Signed-off-by: Scott Rigby <scott@r6by.com>

---------

Signed-off-by: Scott Rigby <scott@r6by.com>
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Co-authored-by: Joe Julian <me@joejulian.name>
Co-authored-by: Jesse Simpson <jesse.simpson36@gmail.com>
2025-08-22 16:12:49 -04:00
Matt Farina 0f1b410f14
Merge pull request #31165 from mattfarina/content-cache
Initial addition of content based cache
2025-08-22 15:04:25 -04:00
George Jenkins a0d6b0d383
Merge pull request #13629 from gjenkins8/rename_atomic_rollbackonfailure
Rename 'atomic' -> 'rollback-on-failure'
2025-08-22 11:20:18 -07:00
Scott Rigby 29d12ba09e
Merge pull request #31156 from estroz/fix-resolve-client
fix: set repo authorizer in registry.Client.Resolve()
2025-08-21 23:20:20 -04:00
Robert Sirchia fc5bd02a1b
Merge pull request #31175 from cuiweixie/atomic.Uint64
pkg/register: refactor to use atomic.Uint64
2025-08-21 14:43:12 -04:00
Matt Farina fea6d8eb04
Updating to tested content cache
A few things are added here:
1. The cache is made to be more generic as a content based cache.
   It could be used for other things such as plugins
2. Flags were added to specify the content cache locaiton rather
   than rely on the repository cache. Keeping the 2 the same
   hid bugs and errors.
3. Tests were added and updated to ensure the cache is used and
   tested

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-08-21 14:33:51 -04:00
George Jenkins 4596c0e062
Merge pull request #31142 from helm/gjenkins/main/mv_plugin_internal
[HIP-0026] Move pkg/plugin -> internal/plugin
2025-08-21 09:06:26 -07:00
cuiweixie 04cb1bad67 pkg/register: refactor to use atomic.Uint64
Signed-off-by: cuiweixie <cuiweixie@gmail.com>
2025-08-21 20:41:35 +08:00
George Jenkins ebc874ef84 fix client-side to server-side field manager migration
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-20 17:37:01 -07:00
Robert Sirchia 30404b4173
Merge pull request #31138 from islewis/release-3.18
fix(helm-lint): Add HTTP/HTTPS URL support for json schema references
2025-08-19 15:47:25 -04:00
Isaiah Lewis 62e0c78ef8
fix(helm-lint): fmt
Signed-off-by: Isaiah Lewis <isaiah@roof12.com>
2025-08-19 12:35:12 -07:00
Matt Farina 6ac2c34689
Initial addition of content based cache
The previous cache was based on chart name and version. If 2 charts
with different content had the same name and version they would collide.
Helm did not trust the cache because of this and always downloaded
content. It was a short lived cache.

This commit introduces a content based cache which is based on the
content rather than file name. Charts with the same name but different
content are no longer an issue.

While the system assumes a file based interface, the cache system
is pluggable. In the future, it should return bytes for the content
instead of paths to it. That would requie a larger change for Helm 5
or later.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-08-19 14:00:36 -04:00
Matt Farina 3726d01c5c
Merge pull request #31132 from joemicky/main
refactor: replace []byte(fmt.Sprintf) with fmt.Appendf
2025-08-19 10:51:00 -04:00
Matt Farina 6d9883d3d4
Merge pull request #31135 from helm/dependabot/go_modules/main/k8s-io-09e63e9300
chore(deps): bump the k8s-io group with 7 updates
2025-08-19 09:57:58 -04:00
dependabot[bot] c9e6e8a040
chore(deps): bump the k8s-io group with 7 updates
Bumps the k8s-io group with 7 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.33.3` | `0.33.4` |
| [k8s.io/apiextensions-apiserver](https://github.com/kubernetes/apiextensions-apiserver) | `0.33.3` | `0.33.4` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.33.3` | `0.33.4` |
| [k8s.io/apiserver](https://github.com/kubernetes/apiserver) | `0.33.3` | `0.33.4` |
| [k8s.io/cli-runtime](https://github.com/kubernetes/cli-runtime) | `0.33.3` | `0.33.4` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.33.3` | `0.33.4` |
| [k8s.io/kubectl](https://github.com/kubernetes/kubectl) | `0.33.3` | `0.33.4` |


Updates `k8s.io/api` from 0.33.3 to 0.33.4
- [Commits](https://github.com/kubernetes/api/compare/v0.33.3...v0.33.4)

Updates `k8s.io/apiextensions-apiserver` from 0.33.3 to 0.33.4
- [Release notes](https://github.com/kubernetes/apiextensions-apiserver/releases)
- [Commits](https://github.com/kubernetes/apiextensions-apiserver/compare/v0.33.3...v0.33.4)

Updates `k8s.io/apimachinery` from 0.33.3 to 0.33.4
- [Commits](https://github.com/kubernetes/apimachinery/compare/v0.33.3...v0.33.4)

Updates `k8s.io/apiserver` from 0.33.3 to 0.33.4
- [Commits](https://github.com/kubernetes/apiserver/compare/v0.33.3...v0.33.4)

Updates `k8s.io/cli-runtime` from 0.33.3 to 0.33.4
- [Commits](https://github.com/kubernetes/cli-runtime/compare/v0.33.3...v0.33.4)

Updates `k8s.io/client-go` from 0.33.3 to 0.33.4
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kubernetes/client-go/compare/v0.33.3...v0.33.4)

Updates `k8s.io/kubectl` from 0.33.3 to 0.33.4
- [Commits](https://github.com/kubernetes/kubectl/compare/v0.33.3...v0.33.4)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.33.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-io
- dependency-name: k8s.io/apiextensions-apiserver
  dependency-version: 0.33.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-io
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.33.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-io
- dependency-name: k8s.io/apiserver
  dependency-version: 0.33.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-io
- dependency-name: k8s.io/cli-runtime
  dependency-version: 0.33.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-io
- dependency-name: k8s.io/client-go
  dependency-version: 0.33.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-io
- dependency-name: k8s.io/kubectl
  dependency-version: 0.33.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: k8s-io
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 22:39:10 +00:00