Commit graph

249 commits

Author SHA1 Message Date
George Jenkins
9dfe3b35ec
fix: Use server-side apply for object create during update
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
(cherry picked from commit 18616e6ce9)
2025-11-24 08:56:05 -05:00
Scott Rigby
f4c5220d99
Merge pull request #31411 from banjoh/em/reinstate-logger-param
Some checks are pending
build-test / build (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
golangci-lint / golangci-lint (push) Waiting to run
release / release (push) Waiting to run
release / canary-release (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
feat: reinstate logger parameter to actions package
2025-10-29 10:03:03 -04:00
Robert Sirchia
25ad74f5a7
Merge pull request #31337 from rachelvweber/rawo/fixingWaitStrategy
Fixing rollback and uninstall client WaitStrategy
2025-10-22 15:40:33 -04:00
Evans Mungai
b1d4dc680d
feat: reinstate logger parameter to actions package
Fixes: #31399

Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2025-10-21 22:48:51 +01:00
Matt Farina
a229bf6529 Ensure the release interface is used in actions instead of the type
Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-10-10 11:52:33 -04:00
Matt Farina
f80cbe43d0 Moved release objects to enable versioning
Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-10-10 11:49:08 -04:00
George Jenkins
4877e2d7e9
Merge pull request #30833 from gjenkins8/gjenkins/refactor_dry_run_flag
Some checks are pending
build-test / build (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
golangci-lint / golangci-lint (push) Waiting to run
release / release (push) Waiting to run
release / canary-release (push) Waiting to run
Scorecard supply-chain security / Scorecard analysis (push) Waiting to run
refactor/cleanup: Replace action 'DryRun' string with DryRunStrategy type + deprecations
2025-10-09 13:29:29 -07:00
George Jenkins
0adfe83ff8
Merge pull request #31227 from evankanderson/windows-filepath
Use filepath.Path when handling directory names
2025-10-02 17:41:41 -07:00
Rachel Weber
472f8b2628 Fixing rollback and uninstall client WaitStrategy.
Signed-off-by: Rachel Weber <rawo@microsoft.com>
2025-09-25 18:09:12 -07:00
Terry Howe
9c7bf37c6f
fix: Ignore absolute path when RepoUrl is provided
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
Co-authored-by: Mohammad Forutan <mforutan@users.noreply.github.com>
2025-09-24 17:01:44 -06:00
George Jenkins
f21b143bef refactor: Replace action 'DryRun' string with DryRunStrategy type + deprecations
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-09-21 08:03:02 -07:00
Matt Farina
8dc7c57f50
Update the action interfaces for chart apiversions
This change is about handling the interfaces to public functions for
different chart apiVersions. The internals are still focused on v2.
This enables v3 to be layered in layer.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-09-17 15:19:02 -04:00
Evan Anderson
20f4e1f12d Use filepath.Path when handling directory names
Signed-off-by: Evan Anderson <evan.k.anderson@gmail.com>
2025-09-10 14:30:03 -07:00
Scott Rigby
50358d7ffd
Merge pull request #31200 from TerryHowe/fix-install-tests
fix: installer action goroutine count
2025-09-04 22:35:55 -04:00
Matt Farina
9dcc49cbd5 Move lint pkg to be part of each chart version
Linting is specific to the chart versions. A v2 and v3 chart will
lint differently.

To accomplish this, packages like engine need to be able to handle
different chart versions. This was accomplished by some changes:

1. The introduction of a Charter interface for charts
2. The ChartAccessor which is able to accept a chart and then
   provide access to its data via an interface. There is an
   interface, factory, and implementation for each version of
   chart.
3. Common packages were moved to a common and util packages.
   Due to some package loops, there are 2 packages which may
   get some consolidation in the future.

The new interfaces provide the foundation to move the actions
and cmd packages to be able to handle multiple apiVersions of
charts.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-09-02 12:14:37 -04:00
Matt Farina
52267ee74b Move repo package to versioned directory
The repo package is internally versioned at v1. Repos were designed
to be versioned. This change moves it to a versioned directory the
same way other packages are now being handled.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-09-02 10:19:48 -04:00
Matt Farina
6f957f4922 Move the release util to the versioned directory
The release util package is directly related to the v1 of
releases and uses the v1 of releases.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-09-02 10:13:55 -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
Terry Howe
b12cd28503
fix: installer action goroutine count
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2025-08-29 07:19:39 -06: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
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
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
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
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
George Jenkins
b4b2392f7e mergefix
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-18 12:28:29 -07:00
George Jenkins
e2dcbe28bf Helm client/SDK support server-side apply
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-18 10:05:07 -07:00
George Jenkins
b2dc411f9d code review (error checks, collapse forceConflicts, UpdateApplyFunc)
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-12 11:04:20 -07:00
George Jenkins
45141451b4 Kube client support server-side apply
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-08-12 10:50:46 -07:00
George Jenkins
93106ba2b6
Merge pull request #30982 from gjenkins8/gjenkins/force_replace_flag
Rename 'force' to 'force-replace'
2025-08-04 21:21:42 -07:00
George Jenkins
08840f042c Rename 'atomic' -> 'rollback-on-failure'
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-07-21 13:47:15 -07:00
George Jenkins
74f2805f01 Rename 'force' to 'force-replace'
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
2025-07-14 09:41:18 -07:00
Danilo Bürger
055c4e2bec
Moved url comparison to own function
Signed-off-by: Danilo Bürger <info@danilobuerger.de>
2025-07-13 15:38:54 +02:00
Danilo Bürger
8096f09370
Pass credentials when either chart repo or repo dont specify a port but it matches the default port of that scheme
Signed-off-by: Danilo Bürger <danilo.buerger@helsing.ai>
2025-07-11 13:11:33 +02:00
Justen Stall
3877ec9049
fix golangci-lint issues
Signed-off-by: Justen Stall <39888103+justenstall@users.noreply.github.com>
2025-04-21 12:44:40 -04:00
Justen Stall
065e2eb3eb
updates after merge conflict resolution
Signed-off-by: Justen Stall <39888103+justenstall@users.noreply.github.com>
2025-04-21 12:17:50 -04:00
Justen Stall
280a9ddbdb
Merge branch 'main' into stdlib-errors-2
Signed-off-by: Justen Stall <39888103+justenstall@users.noreply.github.com>
2025-04-21 12:13:10 -04:00
Scott Rigby
599fad1864
Merge pull request #30697 from p-se/fix-take-ownership
Fix --take-ownership for custom resources - closes #30622
2025-04-17 11:54:11 -04:00
Evans Mungai
e8e79cc4b4
Merge branch 'main' into fix-take-ownership
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
2025-04-15 04:46:17 -06:00
Benoit Tigeot
a6d0335bbb
Use fmt.Fprintf(...) instead of ...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
2025-04-14 10:49:49 +02:00
Benoit Tigeot
a9b7732367
could remove embedded field X from selector
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
2025-04-14 10:43:48 +02:00
Benoit Tigeot
cbaac7652d
Call slog directly instead of using a wrapper
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
2025-04-10 15:35:36 +02:00
Benoit Tigeot
0c85456788
Leverage slog.Any for errors
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
2025-04-07 18:26:48 +02:00
Benoit Tigeot
83cdffe4ae
Migrate to a dedicated internal package for slog adapter + migrate more
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
2025-04-07 15:36:36 +02:00
Patrick Seidensal
e55707b09d
Fix --take-ownership
If a resource exists in the cluster and is to be adopted by helm install
--take-ownership, it is left unchanged while helm reports the
installation to have succeeded.

This is due to CRs and CRDs being merged without three-way-merge, which
results in an empty patch.

By using a three-way-merge transparently when --take-ownership is used,
the helm behaves as expected without breaking previous behavior.

Fixes #30622

Signed-off-by: Patrick Seidensal <pseidensal@suse.com>
2025-04-07 13:54:56 +02:00
Austin Abro
386523bdbc
update to get waiter instead of set
Signed-off-by: Austin Abro <AustinAbro321@gmail.com>
2025-03-25 13:55:39 +00:00
Austin Abro
2948279fb9
cleanup if statement
Signed-off-by: Austin Abro <AustinAbro321@gmail.com>
2025-03-07 14:29:47 +00:00
Austin Abro
1a3fb75b34
merge
Signed-off-by: Austin Abro <AustinAbro321@gmail.com>
2025-02-27 13:56:52 +00:00
Matt Farina
e711488970
Move pkg/release to pkg/release/v1 to support v3 charts
This is part of HIP 20 which provides a means to have v3 charts
that live alongside v2 charts while having breaking changes.

The plan is to have a different release object for v3 chart
instances for at least a couple reasons:
1. So that the chart object on the release can be fundamentally
   different.
2. So that Helm v3 does not detect or try to work with instances
   of charts whose apiVersion it does not know about.

Note: it is expected that Helm v3 usage will be used long after
the Helm project no longer supports it. 5 years after Helm v2
had reached end-of-life there was still usage of it.

Note: The release util package is separate from the versioned
elements as it is planned to use generics to handle multiple
release object versions.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2025-02-26 10:14:15 -05:00