Matthieu MOREL
0fecfd04c2
chore(pkg): enable perfsprint linter
...
#### Description
enable perfsprint linter in pkg/cmd
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
5 months ago
Matthieu MOREL
6c2cb2f547
chore(pkg): enable perfsprint linter
...
#### Description
enable perfsprint linter in pkg/cmd
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
5 months ago
Mads Jensen
36cb3a2fe9
Replace unneeded use of t.Fatalf with t.Fatal
...
Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
5 months ago
Matthieu MOREL
5b6c6bbfc7
fix: enable nolinlint linter
...
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
5 months ago
Terry Howe
d275b925c4
Merge pull request #31852 from rohansood10/fix/31846-import-comment
...
fix: correct import comment in statuswait.go from v3 to v4
5 months ago
George Jenkins
be7cdb69e5
Merge pull request #31806 from mmorel-35/errorlint-pkg-4-15f432a
...
fix(pkg): errorlint linter
5 months ago
George Jenkins
3dfc4f3cf6
Merge pull request #31858 from helm/gjenkins/go_fix
...
chore: `go fix` fixes
5 months ago
MrJack
d52b489459
Added missing pkg/cmd/testdata/output files
...
Signed-off-by: MrJack <36191829+biagiopietro@users.noreply.github.com>
5 months ago
MrJack
300f71b1eb
feat(history): add rollback revision column to helm history output
...
Signed-off-by: MrJack <36191829+biagiopietro@users.noreply.github.com>
5 months ago
George Jenkins
3ad9ccdb19
Merge pull request #31563 from Mujib-Ahasan/dry-run-fix
...
fix: --dry-run=server now respect generateName
5 months ago
George Jenkins
b667317422
fixup `strings.Cut` variables
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
5 months ago
George Jenkins
92b64e87ad
chore: fixes
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
5 months ago
rohansood10
c59c140ce0
fix: correct import comment in statuswait.go from v3 to v4
...
The import comment in pkg/kube/statuswait.go still referenced
helm.sh/helm/v3/pkg/kube while all other files in the package
correctly reference helm.sh/helm/v4/pkg/kube. This mismatch
causes downstream processing errors (e.g. kythe) when vendoring
Helm.
Fixes #31846
Signed-off-by: rohansood10 <rohansood10@users.noreply.github.com>
5 months ago
Evans Mungai
ee018608f6
fix: handle OCI digest algorithm prefix in chart downloader ( #31601 )
...
* fix: strip digest algorithm prefix before hex decoding
OCI references with tag+digest (e.g., chart:1.0@sha256:abc...) failed with "invalid byte" error because the sha256: prefix was passed to hex.DecodeString().
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Add cmd test for OCI references with tag+digest
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Move oci registry push result to a struct
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Review comments from PR review
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Fix failing test
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
---------
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
6 months ago
Terry Howe
b26ec6b09e
Merge pull request #31566 from TerryHowe/fix-test-concurrency-download-index
...
fix: test concurrency download index
6 months ago
Matt Farina
794372e317
Merge pull request #31816 from mmorel-35/errorlint-pkg-7-6d6a660
...
fix(pkg): errorlint linter
6 months ago
Evans Mungai
4a91f3ad5c
feat(release): add internal/release/v2 package for chart v3 support ( #31709 )
...
Introduce release/v2 that mirrors pkg/release/v1 but uses *v3.Chart
from internal/chart/v3. The code is structurally identical to v1 with
only import paths changed to reference internal/chart/v3 instead of
pkg/chart/v2.
- Add internal/release/v2 with Release, Info, Hook types
- Add internal/release/v2/util with filter, sorter, manifest utilities
- Update pkg/release/common.go with v2Accessor and v2HookAccessor
- Copy all test files from pkg/release/v1 and add a v2 test in common_test.go
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
6 months ago
Terry Howe
b6fbb68c2b
Merge pull request #31776 from t0rr3sp3dr0/pedrotorres/fix-oci-index-pull
...
fix regression when pulling charts from OCI indices
6 months ago
Joe Julian
947b429cdd
Merge pull request #31801 from mmorel-35/modernize-pkg-4-062b248
...
chore(pkg): fix modernize linter
6 months ago
Joe Julian
78f5af72be
Merge pull request #31802 from mmorel-35/modernize-pkg-5-a3c8fdb
...
chore(pkg): fix modernize linter
6 months ago
Joe Julian
70899a6b3f
Merge pull request #31578 from manute/main
...
fix(action): crd resources can be empty
6 months ago
Joe Julian
14e0b8f970
Merge pull request #31128 from orgads/win-parallel
...
fix(downloader): prevent concurrent file access errors on Windows
6 months ago
Joe Julian
56d0d9374a
Merge pull request #31810 from mmorel-35/errorlint-pkg-5-dda0145
...
fix(pkg): errorlint linter
6 months ago
Joe Julian
7f9703fe22
Merge pull request #31811 from mmorel-35/errorlint-pkg-3-39f7a9f
...
fix(pkg): errorlint linter
6 months ago
Matthieu MOREL
259f76a849
fix(pkg): errorlint linter
...
errorlint linter in pkg/cmd
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Matthieu MOREL
6d1490ed1e
fix(pkg): errorlint linter
...
#### Description
errorlint linter in pkg/cmd
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Matthieu MOREL
4d0ae7f33a
fix(pkg): errorlint linter
...
#### Description
errorlint linter in pkg
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Matthieu MOREL
4330bdea04
fix(pkg): errorlint linter
...
#### Description
errorlint linter in pkg
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Matthieu MOREL
c8989d984f
fix(pkg): errorlint linter
...
#### Description
errorlint linter in pkg
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Orgad Shaneh
76eb37c01a
fix(downloader): safely handle concurrent file writes on Windows
...
When multiple processes try to download the same chart version
concurrently (e.g., via Terraform), they can race to write the
destination file. On Windows, this results in 'Access Denied'
errors because the file cannot be renamed while another process
has a handle to the destination.
This commit introduces 'PlatformAtomicWriteFile' to the fileutil
package. On Unix-like systems, it simply delegates to AtomicWriteFile,
maintaining existing behavior. On Windows, it coordinates writes using
a lock file (.lock). It acquires the lock, then performs the atomic
write.
Crucially, this implementation ensures that existing files are
overwritten (rather than skipped). This ensures that if a chart is
republished with the same version, the local cache is correctly updated,
preventing stale data issues.
Fixes #31633
Signed-off-by: Orgad Shaneh <orgad.shaneh@audiocodes.com>
6 months ago
Terry Howe
1468449ff5
Merge pull request #31794 from mmorel-35/modernize-pkg-1-f9be97c
...
chore(pkg): fix modernize linter
6 months ago
Manuel Alonso
9817a68618
fix(install): check nil for restClientGetter and fix tests
...
Signed-off-by: Manuel Alonso <434575+manute@users.noreply.github.com>
6 months ago
Evans Mungai
5aac32077f
feat(create): add --chart-api-version flag (when HELM_EXPERIMENTAL_CHART_V3 env var is set) ( #31592 )
...
* feat(create): add hidden --chart-api-version flag
Add --chart-api-version flag to helm create command to allow selecting
chart API version (v2 or v3) when creating a new chart.
- Default is v2 (existing behavior unchanged)
- v3 uses internal/chart/v3 scaffold generator
- Invalid versions return clear error message
- Works with --starter flag
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Add HELM_EXPERIMENTAL_CHART_V3 feature gate to create command
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* make chartv3 private and use loader to load the chart
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Hide chart-api-version flag until chart v3 is officially released
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Conditionally hide the --chart-api-version flag if chart v3 is not enabled
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Add internal gates package for internal feature gates
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
* Add doc for internal/gates package
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
---------
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
6 months ago
Matthieu MOREL
5cc2e55714
chore(pkg): fix modernize linter
...
#### Description
fix modernize linter in pkg/chart/v2/lint/rules
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Matthieu MOREL
ba38159313
chore(pkg): fix modernize linter
...
#### Description
fix modernize linter in pkg/strvals
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Matthieu MOREL
111d4e6e0e
chore(pkg): fix modernize linter
...
#### Description
fix modernize linter in pkg/chart/common/util
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
6 months ago
Evans Mungai
5b78ee8dff
Merge pull request #31644 from banjoh/em/fix-nil-values
...
fix(values): preserve nil values when chart default is empty map
6 months ago
Pedro Tôrres
e8f386b5aa
add image index test
...
Signed-off-by: Pedro Tôrres <pedrotorres@microsoft.com>
6 months ago
Pedro Tôrres
d983696e35
fix pulling charts from OCI indices
...
Signed-off-by: Pedro Tôrres <pedrotorres@microsoft.com>
6 months ago
Matheus Pimenta
787b61cedb
Revert "Consider GroupVersionKind when matching resources"
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
6 months ago
Scott Rigby
f928025cdb
Merge pull request #31717 from AustinAbro321/use-logger-with-waiter
...
fix: use kube logger with status waiter
6 months ago
Scott Rigby
6d5f56fa6e
fix(template): deprecate unused --hide-notes and --render-subchart-notes flags
...
The --hide-notes and --render-subchart-notes flags have no effect for
`helm template` since template output never includes notes. Mark these
flags as deprecated and hide them from help output.
The flags are preserved for backwards compatibility in Helm 4 and will
be removed in Helm 5.
Fixes #31752
Signed-off-by: Scott Rigby <scott@r6by.com>
6 months ago
Evans Mungai
9211dfef6a
Merge pull request #31743 from banjoh/em/document-uninstall-using-cascade
...
docs: document uninstall using cascade foreground flag
6 months ago
Austin Abro
ec0726523e
whitespace
...
Signed-off-by: Austin Abro <austinabro321@gmail.com>
6 months ago
Austin Abro
63b40a7a5e
use logger with waiter
...
Signed-off-by: Austin Abro <austinabro321@gmail.com>
6 months ago
Matheus Pimenta
b0b35f1231
feat(kstatus): fine-grained context options for waiting
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
7 months ago
Evans Mungai
e70d59de7c
docs: document uninstall using cascade foreground flag
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Matheus Pimenta
bbec77c1f7
bugfix(kstatus): do not wait forever on failed resources
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
7 months ago
George Jenkins
50546ef665
Merge pull request #31723 from matheuscscp/fix-storage-logger
...
bugfix(logging): fix storage not getting logger from driver
7 months ago
Matheus Pimenta
c1cc625323
chore(defaults): server-side apply SDK defaults should always match the CLI defaults
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
7 months ago
Evans Mungai
828038a8fe
chore: clarify --wait flag help text
...
Improve the description to explain the three usage scenarios:
- --wait alone defaults to 'watcher' strategy
- --wait=<value> uses the specified strategy
- flag omitted defaults to 'hookOnly'
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Manuel Alonso
7c089bed26
Merge branch 'main' into main
...
Signed-off-by: Manuel Alonso <434575+manute@users.noreply.github.com>
7 months ago
Manuel Alonso
6501ef490a
chore(refactor): better testing and functionality for installing crd
...
Signed-off-by: Manuel Alonso <m.alonso@Manuels-MacBook-Pro.local>
7 months ago
Matheus Pimenta
a8eb527847
bugfix(storage): fix storage not getting logger from driver
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
7 months ago
Evans Mungai
40a9de1086
Merge pull request #31412 from fmuyassarov/devel/rollback
...
Fix rollback for missing resources
7 months ago
Evans Mungai
f46f1ce55d
Update pkg/kube/statuswait.go
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Matheus Pimenta
59ece92bed
pkg/kube: introduce support for custom kstatus readers
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
7 months ago
Manuel Alonso
0f949a92c1
fix(test): fix tests and check nil for restclient
...
Signed-off-by: Manuel Alonso <m.alonso@Manuels-MacBook-Pro.local>
7 months ago
Manuel Alonso Gonzalez
561410ae1d
fix(test): merge fix correctly
...
Signed-off-by: Manuel Alonso Gonzalez <434575+manute@users.noreply.github.com>
Signed-off-by: Manuel Alonso Gonzalez <m.alonso@Manuels-MacBook-Pro.local>
7 months ago
Evans Mungai
e751a70e84
fix(release): fix test compilation error
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Evans Mungai
2e2cb05855
Merge pull request #31427 from tisonkun/resolve-todo
...
Check plugin name is not used
7 months ago
Evans Mungai
05f25a3834
Merge pull request #31579 from benoittgt/delete-hook-after-log-retrieval
...
fix: Delay test hook deletion until after logs are retrieved with `helm test release --logs`
7 months ago
Manuel Alonso
df8ec771f9
Merge branch 'main' into main
...
Signed-off-by: Manuel Alonso <434575+manute@users.noreply.github.com>
7 months ago
Terry Howe
429ce93848
Merge pull request #31613 from aslafy-z/feat/getter-env
...
fix(getter): pass settings environment variables
7 months ago
Evans Mungai
03b535d6b7
Merge branch 'main' into em/check-ownership-before-delete
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Evans Mungai
0298b2ffd0
Remove refactorring changes from coalesce_test.go
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Evans Mungai
b8937ad192
Fix import
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Evans Mungai
a333bbaf27
Update pkg/chart/common/util/coalesce_test.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
7 months ago
Feruzjon Muyassarov
374aeb4b4e
Fix rollback for missing resources
...
Signed-off-by: Feruzjon Muyassarov <feruzjon.muyassarov@est.tech>
7 months ago
Terry Howe
08f17fc947
Merge pull request #31683 from majiayu000/fix-13198---api-versions-is-undocumented-1230-2329
...
fix: `--api-versions` is undocumented
7 months ago
George Jenkins
fa41d60d73
Merge pull request #31239 from StephanieHhnbrg/test-actions-pkg
...
Add tests to action package to improve coverage
7 months ago
Mads Jensen
2d6d9c09c4
Replace reflect.Ptr with reflect.Pointer
...
The reflect package has a go:fix annotation for Ptr = Pointer.
Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
7 months ago
majiayu000
c7cc77b68d
Add documentation for --api-versions flag in template command
...
The --api-versions flag was undocumented in the template command's
help text. This adds usage documentation and examples showing both
comma-separated and multiple flag usage patterns.
Fixes #13198
Signed-off-by: majiayu000 <1835304752@qq.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Signed-off-by: majiayu000 <1835304752@qq.com>
7 months ago
Matt Farina
fe1c749183
Fixing failing tests for cli-tools update
...
Tests were failing for cli-utils watcher because upstream k8s made
changes that impacted cli-utils. In k8s WatchListClient is now
enabled by default. Fake clients used for testing don't know this
semantic. cli-utils leverages reflection in k8s to handle this.
The Helm tests didn't handle this well.
The tests are updated to use PrependReactor and PrependWatchReactor
in the same way that cli-utils does for testing. This works without
wrapping the client.
Signed-off-by: Matt Farina <matt.farina@suse.com>
7 months ago
George Jenkins
118d90e810
Merge pull request #31677 from gjenkins8/gjenkins/new_client_set
...
chore: Replace deprecated `NewSimpleClientset`
7 months ago
George Jenkins
a15db7f087
Replace deprecated `NewSimpleClientset`
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
7 months ago
Terry Howe
8802d959cb
Merge pull request #31104 from LinPr/fix
...
fix: assign KUBECONFIG environment variable value to env.Kubeconfig
7 months ago
Manuel Alonso
00f0a48a7d
fix(install): add more tests and check nil file data
...
Signed-off-by: Manuel Alonso <434575+manute@users.noreply.github.com>
7 months ago
Manuel Alonso
0357e8d0f7
fix(test): no check empty resources
...
Signed-off-by: Manuel Alonso <434575+manute@users.noreply.github.com>
7 months ago
Manuel Alonso
52235cc0bf
fix(install): check lenght and file nil, add tests
...
Signed-off-by: Manuel Alonso <434575+manute@users.noreply.github.com>
7 months ago
Manuel Alonso
268593bf2e
fix(action): crd resources can be empty
...
Signed-off-by: Manuel Alonso <434575+manute@users.noreply.github.com>
7 months ago
George Jenkins
f05c21b6b6
Merge pull request #31296 from gjenkins8/gjenkins/runtime_kube_version
...
build: set kube version via `debug.BuildInfo`
7 months ago
Mujib Ahasan
170911459b
fix: casing issue fixed
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
George Jenkins
24e8297343
Merge pull request #31610 from mohsenmottaghi/fix-helm-4-watch-strategy
...
fix: use namespace-scoped watching to avoid cluster-wide LIST permiss…
8 months ago
Brenden Ehlers
1c119bcaa6
fix: add default casess to switch statements
...
Signed-off-by: Brenden Ehlers <brenden@theehlers.org>
8 months ago
Mujib Ahasan
94860626ce
fix: error handled correctly
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
Branch Vincent
c6d9a5bdc2
build: set kube version via `debug.BuildInfo`
...
Signed-off-by: Branch Vincent <branchevincent@gmail.com>
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
8 months ago
Matt Farina
2108bc5070
Merge pull request #31448 from laervn/feat/add-no-headers-option
...
feat(repo): add --no-headers option to 'helm repo list'
8 months ago
Mujib Ahasan
12e8b715aa
fix: doc string added
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
Deepak Chethan
55a4aed67f
doc: update based on review suggestion
...
Co-authored-by: Terry Howe <terrylhowe@gmail.com>
Signed-off-by: Deepak Chethan <deepakchethan@outlook.com>
8 months ago
Mohsen Mottaghi
d6b35cedeb
test(statuswait): fix Copilot code review suggestion for goroutine in tests
...
Signed-off-by: Mohsen Mottaghi <mohsenmottaghi@outlook.com>
8 months ago
Mohsen Mottaghi
a1543d5947
test(statuswait): add more tests suggested by Copilot code review
...
add missing coverage for the positive case where cluster-scoped resources (like ClusterRole or Namespace) should work correctly
Signed-off-by: Mohsen Mottaghi <mohsenmottaghi@outlook.com>
8 months ago
Mohsen Mottaghi
dd44f4ecd0
test(statuswait): add some tests for statuswait
...
Adding some tests for multi namespace deployment, simulate restrcited rbac access and mixed namespace scope and cluster scope resources
Signed-off-by: Mohsen Mottaghi <mohsenmottaghi@outlook.com>
8 months ago
Mohsen Mottaghi
3dd54ed0b6
fix: use namespace-scoped watching to avoid cluster-wide LIST permissions
...
Signed-off-by: Mohsen Mottaghi <mohsenmottaghi@outlook.com>
8 months ago
Deepak
f92ae18977
fix(doc): Update default wait strategy
...
fixes : #31652
Default wait strategy is hookOnly, so updated the docs to reflect the same
Signed-off-by: Deepak Chethan <deepakchethan@outlook.com>
8 months ago
Terry Howe
019e7e7145
Merge pull request #31650 from helm/gjenkins/fix_TestConcurrencyDownloadIndex
...
Fix `TestConcurrencyDownloadIndex` typo
8 months ago
tison
9772037ed8
Update to use slog
...
Signed-off-by: tison <wander4096@gmail.com>
8 months ago
tison
3c6557dcf5
Fix TestCliPluginExitCode
...
Signed-off-by: tison <wander4096@gmail.com>
8 months ago
tison
5196b8431a
Check plugin name is not used
...
Signed-off-by: tison <wander4096@gmail.com>
8 months ago
George Jenkins
592815ea2b
Fix `TestConcurrencyDownloadIndex` typo
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
8 months ago
George Jenkins
d2ea7c4276
Merge pull request #31649 from atombrella/feature/errorlint_is_as
...
Use errors.Is to check for io.EOF and gzip.ErrHeader
8 months ago
Terry Howe
188ac4e834
Merge pull request #31635 from banjoh/em/fix-ssa-upgrade-install-cmd
...
fix(upgrade): pass --server-side flag to install when using upgrade --install
8 months ago
Mads Jensen
a490bb3c20
Use errors.Is to check for io.EOF and gzip.ErrHeader
...
In GoLang, using the == operator to check for a certain error will not
unwrap the error chain, and therefore may hide the problem.
Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
8 months ago
Terry Howe
5d2ab10caa
Merge pull request #12564 from hiddeco/supersede-on-uninstall
...
fix(uninstall): supersede deployed releases
8 months ago
Terry Howe
b52b6615f0
Merge pull request #31207 from zyfy29/delete-unused-var
...
chore: delete unused var in installer.go
8 months ago
Terry Howe
2597088a20
Merge pull request #31586 from calvinbui/main
...
fix: use length check for MetaDependencies instead of nil comparison
8 months ago
Robert Sirchia
4cf7d8d025
Merge pull request #31641 from wangjingcun/main
...
chore: fix some comments to improve readability
8 months ago
Evans Mungai
3416dd5f21
Fix lint warning
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
8 months ago
Evans Mungai
679f051980
Preserve nil values in chart already
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
8 months ago
Evans Mungai
292fe70219
fix(values): preserve nil values when chart default is empty map
...
Only delete nil user values when overriding a non-nil chart default.
When chart has empty map or no default for a key, preserve user's nil.
| Scenario | Result |
|----------|--------|
| User sets `baz: ~`, chart has `baz: "value"` | Key deleted |
| User sets `baz: ~`, chart has empty map `{}` | Nil preserved |
| User sets `baz: ~`, chart has `baz: ~` | Nil preserved |
Fixes #31643
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
8 months ago
Terry Howe
d28853e206
Merge pull request #31624 from atombrella/feature/sloglint
...
Enable the `sloglint` linter
8 months ago
Terry Howe
642462e9fe
Merge pull request #11991 from twz123/no-bash-in-testscripts
...
Make test scripts run without /bin/bash
8 months ago
wangjingcun
858cf31583
chore: fix some comments to improve readability
...
Signed-off-by: wangjingcun <wangjingcun@aliyun.com>
8 months ago
Evans Mungai
2dc581dc1c
fix(upgrade): pass --server-side flag to install when using upgrade --install
...
When running `helm upgrade --install` on a non-existent release, the
--server-side flag was not being passed to the install action. This
caused the install to always use server-side apply (the default),
ignoring --server-side=false.
Copy ServerSideApply and ForceConflicts from the upgrade client to the
install client when falling back to install.
Fixes #31627
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
8 months ago
Mads Jensen
a18e59e465
Enable the sloglint linter
...
Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
8 months ago
George Jenkins
7edfdb6c5e
Merge pull request #31549 from benoittgt/31548
...
fix: prevent reporting fallback on version when none specified
8 months ago
George Jenkins
3165e5463a
Merge pull request #31528 from benoittgt/31423-git-version
...
fix: preserve vendor suffixes in KubeVersion.GitVersion
8 months ago
Zadkiel AHARONIAN
8534663e73
fix(cli): handle nil config in EnvSettings.Namespace()
...
Signed-off-by: Zadkiel AHARONIAN <hello@zadkiel.fr>
8 months ago
Zadkiel AHARONIAN
119341dca7
fix(getter): pass settings environment variables
...
Signed-off-by: Zadkiel AHARONIAN <hello@zadkiel.fr>
8 months ago
Stephanie Hohenberg
a109ac2f06
fixes comment in install.go
...
Signed-off-by: Stephanie Hohenberg <stephanie.hohenberg@gmail.com>
8 months ago
Stephanie Hohenberg
2f598ffc85
fixes tests after merge
...
Signed-off-by: Stephanie Hohenberg <stephanie.hohenberg@gmail.com>
8 months ago
Stephanie Hohenberg
bb9356e182
fixes lint issue
...
Signed-off-by: Stephanie Hohenberg <stephanie.hohenberg@gmail.com>
8 months ago
Stephanie Hohenberg
8cf4ad73c3
updates tests after rebase from master
...
Signed-off-by: Stephanie Hohenberg <stephanie.hohenberg@gmail.com>
8 months ago
Stephanie Hohenberg
31131cff9b
Add tests to action package to improve coverage
...
Signed-off-by: Stephanie Hohenberg <stephanie.hohenberg@gmail.com>
8 months ago
Matt Farina
ff35414bed
Merge pull request #31546 from benoittgt/31544-nil-pointer
...
fix(lint): prevent segmentation violation on only comment yaml in multidoc
8 months ago
Mujib Ahasan
115409976b
update: test coverage added for helper function validateNameAndGenerateName
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
Mujib Ahasan
522d2fe615
update: helper function added for the business logic
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
George Jenkins
dfa1e3c3c5
Merge pull request #31562 from atombrella/feature/modernize
...
Use modernize to use newer Golang features.
8 months ago
George Jenkins
51076a073a
Merge pull request #31519 from TerryHowe/chore-add-warning-for-registry-login
...
chore: add warning for registry login with namespace
8 months ago
Evans Mungai
f552950b05
Add ownership verification to uninstall action
...
This commit adds ownership verification to the uninstall action. It checks that the resource to be deleted is owned by the chart before deleting it.
Fixes : #31333
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
8 months ago
Benoit Tigeot
45c5f3aaca
Deal with golint warning with private executeShutdownFunc
...
```
Error: pkg/action/release_testing.go:60:57: unexported-return: exported method Run returns unexported type action.executeShutdownFunc, which can be annoying to use (revive)
func (r *ReleaseTesting) Run(name string) (ri.Releaser, executeShutdownFunc, error) {
```
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
8 months ago
Calvin Bui
b33d4ae0c0
Use length check for MetaDependencies instead of nil comparison
...
Signed-off-by: Calvin Bui <3604363+calvinbui@users.noreply.github.com>
8 months ago
Benoit Tigeot
70fc5f97e2
Code review
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
8 months ago
Evans Mungai
6d5b5aab32
Additional logging for ownership verification in dry-run mode
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
8 months ago
Evans Mungai
906f87ce1d
feat: add ownership verification before deleting resources during uninstall
...
Fixes #31333
Helm uninstall now verifies resource ownership before deletion by checking
Helm labels and annotations. Resources not owned by the release being
uninstalled are skipped with warnings, preventing accidental deletion of
resources belonging to other releases.
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
8 months ago
Mujib Ahasan
6769fb6fb6
generateName is also considered in logic
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
Benoit Tigeot
9f1c8a26f0
Fix linting issue
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
8 months ago
Michelle Fernandez Bieber
6bb5bcc212
Update pkg/action/hooks.go
...
Co-authored-by: Marco Lecheler <marco@task.media>
Signed-off-by: Michelle Fernandez Bieber <37021266+mfbieber@users.noreply.github.com>
8 months ago
Michelle Fernandez Bieber
d9301441f4
added check for nil shutdown
...
Signed-off-by: Michelle Fernandez Bieber <mfbieber@gmail.com>
8 months ago
Michelle Fernandez Bieber
7a61ebf013
cleaned up empty line
...
Signed-off-by: Michelle Fernandez Bieber <mfbieber@gmail.com>
8 months ago
Michelle Fernandez Bieber
10714772be
updated comment and made defer of shutdown function return errors as before and not the possible shutdown error
...
Signed-off-by: Michelle Fernandez Bieber <mfbieber@gmail.com>
8 months ago
Michelle Fernandez Bieber
7a557580e1
added shutdown hook that is executed after the logs have been retrieved
...
Signed-off-by: Michelle Fernandez Bieber <mfbieber@gmail.com>
8 months ago
megha1906
e71a29ce4f
chore: fix typo in pkg/downloader/chart_downloader.go
...
Signed-off-by: megha1906 <meghabansal135@gmail.com>
8 months ago
Robert Sirchia
722482b77d
Merge pull request #31561 from atombrella/feature/nilness_cleanup
...
Remove two redundant if-checks.
8 months ago
Terry Howe
64bae717c5
fxi: test concurrency download index
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
8 months ago
Mujib Ahasan
b357bcae86
update: business logic respected for skipping object missing name
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
Mujib Ahasan
2820ebe8c9
fixed: --dry-run=server now respect generateName
...
Signed-off-by: Mujib Ahasan <ahasanmujib8@gmail.com>
8 months ago
Mads Jensen
6cceead399
Use modernize to use newer Golang features.
...
The rangeint suggestion is faster.
The maps.Copy and slices.Contains are just syntatic sugar.
Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
9 months ago
Mads Jensen
380abe2b16
Remove two redundant if-checks.
...
These were found with the nilness checker.
Signed-off-by: Mads Jensen <atombrella@users.noreply.github.com>
9 months ago
Matt Farina
936cd328ac
Fix kube client logging
...
The kube client logging is based on the actionConfig logging. This
is setup to use slog.Default() before the logging flags are parsed
and logging is setup.
newRootCmdWithConfig changes the logging but it wasn't picked up
for actionConfig or the kube client. This change updates the logging
to include any changes.
Signed-off-by: Matt Farina <matt.farina@suse.com>
9 months ago
Matt Farina
61d289c119
Merge pull request #31518 from gjenkins8/gjenkins/fix_update_create
...
fix: Use server-side apply for object create during update
9 months ago
Matt Farina
698fcd2290
Merge pull request #31515 from gjenkins8/gjenkins/copy_adopted
...
fix: Copy adopted resource info
9 months ago
Benoit Tigeot
81d244ca21
fix: prevent segmentation violation on empty yaml in multidoc
...
Fixes: https://github.com/helm/helm/issues/31544
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
40e22dedb2
fix: prevent reporting fallback on version when none specified
...
Fixes: https://github.com/helm/helm/issues/31548
```
❯ helm pull rancher/longhorn-crd --version 106.2.0+up1.8.2 --destination /tmp/
level=WARN msg="unable to find exact version; falling back to closest available version" chart=longhorn-crd requested=106.2.0+up1.8.2 selected=106.2.0+up1.8.1
❯ bin/helm show chart brigade/brigade
apiVersion: v1
appVersion: v1.5.0
dependencies:
- condition: kashti.enabled
name: kashti
repository: https://brigadecore.github.io/charts
version: 0.7.0
- condition: brigade-github-app.enabled
name: brigade-github-app
repository: https://brigadecore.github.io/charts
version: 0.8.0
- alias: gw
condition: gw.enabled
name: brigade-github-oauth
repository: https://brigadecore.github.io/charts
version: 0.4.0
description: Brigade provides event-driven scripting of Kubernetes pipelines.
name: brigade
version: 1.10.0
```
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Matt Farina
df6aafeeee
Merge pull request #31462 from mattfarina/load-archive
...
Adding a LoadArchive to common loader
9 months ago
Matt Farina
63858b383f
Merge pull request #31535 from mattfarina/bump-4.1
...
bump version to 4.1
9 months ago
Robert Sirchia
eb3da36e2e
Merge pull request #31530 from shuv0id/improve-debug-logging
...
fix: add missing context to debug logs
9 months ago
George Jenkins
63dcb5c74c
Merge pull request #31464 from benoittgt/fix-test
...
Properly test error messages on pull command's test
9 months ago
Matt Farina
63e060fb05
bump version to 4.1
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
9 months ago
shuv0id
2dc5864f44
fix: add missing context to debug logs
...
Adds chart name to dependency logs, namespace to resource waiting logs,
and confirmation message when all resources are ready.
Addresses #31520
Signed-off-by: shuv0id <110290476+shuv0id@users.noreply.github.com>
9 months ago
Benoit Tigeot
ce273eea48
fix: preserve vendor suffixes in KubeVersion.GitVersion
...
Helm 3.19.0 introduced a regression where vendor-specific suffixes
(e.g., -gke.1245000, -eks-4096722, +) are stripped from
.Capabilities.KubeVersion.GitVersion, breaking charts that detect
managed Kubernetes platforms.
The root cause was using k8sversion.ParseGeneric().String() which
intentionally discards vendor suffixes. The fix stores both the full
version (with vendor suffix) and a normalized version. String() returns
the normalized version for constraint checking (e.g., ">= 1.21.0"),
while Version/GitVersion preserve the full string for template access.
Fixes #31423
Related to #31063 , #31078
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
George Jenkins
f8a49f1852
fixup test
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
9 months ago
George Jenkins
a9cdc78116
logs
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
9 months ago
George Jenkins
b1a976073f
fix
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
9 months ago
Terry Howe
5f3c617940
chore: add warning for registry login with namespace
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
9 months ago
Robert Sirchia
a75fcc2948
Merge pull request #31478 from promalert/main
...
refactor: use strings.Builder to improve performance
9 months ago
George Jenkins
18616e6ce9
fix: Use server-side apply for object create during update
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
9 months ago
Scott Rigby
ebd5f53fc3
Merge pull request #31421 from benoittgt/improve-doc-wait-strategy
...
Unify --wait strategy inputs, clarify defaults and docs; avoid SDK timeout footgun
9 months ago
George Jenkins
855ebb6884
Copy adopted resource info
...
Signed-off-by: George Jenkins <gvjenkins@gmail.com>
9 months ago
Scott Rigby
b740071279
Merge pull request #31342 from TerryHowe/chore-remove-mitchellh-dependency-3
...
chore: replace github.com/mitchellh/copystructure
9 months ago
Scott Rigby
e7ac8fe3b8
Merge pull request #30984 from fm1ck3y/bug/index-concurrency
...
feat(concurrency): allow concurrent dependency build with atomic file write
9 months ago
Scott Rigby
d57fb45648
Merge pull request #31469 from saimanojk1/issue-31454
...
Convert pkg/cmd/load_plugins.go to slog
9 months ago
promalert
d8c4040336
refactor: use strings.Builder to improve performance
...
Signed-off-by: promalert <promalert@outlook.com>
9 months ago
Scott Rigby
0ee89d2d4e
Merge pull request #31418 from tisonkun/typo
...
chore: fix typo of public field
9 months ago
Benoit Tigeot
02312a1cf2
Update pkg/cmd/flags.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Benoit Tigeot <benoittgt@users.noreply.github.com>
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
277c140c87
Error strategy list match help
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
5f6fa437b2
Prevent surprising failure with SDK when timeout is not set
...
While testing SDK features for v4. I was surprised with the error:
"reporter failed to start: event funnel closed: context deadline exceeded"
This occurs when no timeout is set:
```
upgradeClient := action.NewUpgrade(actionConfig)
upgradeClient.WaitStrategy = kube.StatusWatcherStrategy
// When Timeout is zero, the status wait uses a context with zero timeout which
// immediately expires causing "context deadline exceeded" errors.
upgradeClient.Timeout = 2 * time.Minute
```
With this patch it will work without specifying.
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
52a282832f
Do not change the default waiting strategy when --wait is not set
...
It is too much a breaking change for a new RC of beta V4.
See comment: https://github.com/helm/helm/pull/31421#discussion_r2465121438
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
11128659aa
Provide more help for SDK user when setting up WaitStrategy
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
8535e9f4ab
Avoid confusion between `--wait` (watcher) and no --wait (hookOnly)
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
1836f37f4d
The default is not HookOnlyStrategy but WaitStrategy
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
a5e110fccd
Make wait strategy selection more obvious
...
It is not clear enough that you need to set --wait=false for a hook only
strategy.
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
e8b0cff45a
Update pkg/cmd/flags.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Benoit Tigeot <benoittgt@users.noreply.github.com>
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
95e1ee1089
Increase documentation of --wait flag
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Benoit Tigeot
5cbd9b3035
While testing SDK features for v4. I was surprised with the error:
...
> "reporter failed to start: event funnel closed: context deadline exceeded"
It happens when you forget to set a minimal timeout:
```go
upgradeClient := action.NewUpgrade(actionConfig)
upgradeClient.WaitStrategy = kube.StatusWatcherStrategy
// When Timeout is zero, the status wait uses a context with zero timeout which
// immediately expires causing "context deadline exceeded" errors.
upgradeClient.Timeout = 2 * time.Minute
```
Also maybe it might be worth documenting this more clearly. Initial [PR](https://github.com/helm/helm/pull/13604 ) say:
> I have not written any docs, I assume that can be done when we are closer to Helm 4, a lot of it is covered by linking to - https://github.com/kubernetes-sigs/cli-utils/blob/master/pkg/kstatus/README.md
Related:
- https://github.com/helm/helm/pull/31411#issuecomment-3443925663
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
saimanojk1
6de83c5f60
Convert pkg/cmd/load_plugins.go to slog
...
Signed-off-by: saimanojk1 <saimanojk1@hotmail.com>
9 months ago
Hidde Beydals
d158708fbf
fix(rollback): `errors.Is` instead of string comp
...
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
9 months ago
Hidde Beydals
2f1ecc7100
fix(uninstall): supersede deployed releases
...
This ensures that when `helm uninstall` is run with `--keep-history`
any release in a `deployed` state other than the last release (e.g.
due to a failed upgrade) is being marked as `superseded`.
As a by-effect, running `helm upgrade` on a release which has been
uninstalled after an upgrade failure now no longer works. But instead
fails with a `"<name>" has no deployed releases` error. Which is the
(likely) intended behavior, and prevents other side-effects like
rolling back to a release version which happened before the uninstall
if `--atomic` (or `--rollback-on-failure`) was provided.
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
9 months ago
George Jenkins
cdb48b88fb
Merge pull request #31240 from benoittgt/fix-31170-URN
...
jsonschema: warn and ignore unresolved URN $ref to match v3.18.4
9 months ago
tison
4576a81a00
for remaining local variable case inconsistency
...
Signed-off-by: tison <wander4096@gmail.com>
9 months ago
Benoit Tigeot
ed6cf0e8a1
Properly test error messages on pull command's test
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Matt Farina
0f5eda74c1
Adding a LoadArchive to common loader
...
LoadArchive is in the individual loaders for the chart versions.
It is used by SDK users to load a stream rather than a file on
the filesystem. Adding to support SDK users like Flux.
Signed-off-by: Matt Farina <matt.farina@suse.com>
9 months ago
George Jenkins
384a3f0ff8
Merge pull request #31385 from porridge/test-unknown-policy
...
test: protect unknown hook delete policies
9 months ago
tison
90d01915f9
for all other similar cases
...
Signed-off-by: tison <wander4096@gmail.com>
9 months ago
Scott Rigby
99cd196435
Merge pull request #31435 from matheuscscp/cancel-health-checks
...
Introduce a context for canceling wait operations
9 months ago
Matheus Pimenta
efc1702657
Introduce a context for canceling wait operations
...
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
9 months ago
laervn
36aaa9aab9
Merge branch 'helm:main' into feat/add-no-headers-option
9 months ago
George Jenkins
bdc459d73c
Merge pull request #31389 from TerryHowe/chore-more-registry-clean-up
...
chore: fix pkg/registry warnings to reduce noise
9 months ago
Paul Van Laer
6ef79bb8d5
feat(repo): add --no-headers option to 'helm repo list'
...
This adds a --no-headers flag to the 'helm repo list' command,
allowing users to suppress table headers in the output.
Useful for scripting and automation.
Signed-off-by: Paul Van Laer <paul.van.laer1@gmail.com>
9 months ago
Benoit Tigeot
97b7a1c9ae
Merge branch 'main' into fix-31170-URN
...
Signed-off-by: Benoit Tigeot <benoittgt@users.noreply.github.com>
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
9 months ago
Matt Farina
15300549f0
When time not available, using time.Now
...
Note, when time is not available, the builds are not reproducible.
This problem would only happen when an SDK user is using parts of
the API to build their own tooling. Helm will consistently inject
the dates through the higher level APIs.
Signed-off-by: Matt Farina <matt.farina@suse.com>
9 months ago
Matt Farina
ca8eae9361
Reproducible chart archive builds
...
Building the same chart into an archive multiple times will have
the same sha256 hash.
Perviously, the time in the headers for a file was time.Now() which
changed each time. The time is now collected from the operating
system when the file is loaded and this time is used.
Fixes : #3612
Signed-off-by: Matt Farina <matt.farina@suse.com>
9 months ago
Scott Rigby
f4c5220d99
Merge pull request #31411 from banjoh/em/reinstate-logger-param
...
feat: reinstate logger parameter to actions package
9 months ago
tison
0d6de28bf4
chore: fix typo of public field
...
Signed-off-by: tison <wander4096@gmail.com>
9 months ago
Evans Mungai
2ddeb50fa6
Set default logger in Configuration constructor
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Evans Mungai
a112bf5aa6
Remove non-reachable code
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Matt Farina
1da2b0a6d4
Merge pull request #31204 from benoittgt/fix-31202
...
Avoid panic in helm.sh/helm/v3/pkg/chartutil.ValidateAgainstSchema
10 months ago
Robert Sirchia
25ad74f5a7
Merge pull request #31337 from rachelvweber/rawo/fixingWaitStrategy
...
Fixing rollback and uninstall client WaitStrategy
10 months ago
Evans Mungai
aed687eaa1
Add config options to NewConfiguration()
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Evans Mungai
b6eca1c0f1
Refactor logging functionality to use slog.Handler
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Evans Mungai
5ab4ca5490
Embed logging functionality to DRY code
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Evans Mungai
9c32e34d60
Add logger to sql driver and ensure storage has logger
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Evans Mungai
50e43f4017
nil logger should be handled by discard handler
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Evans Mungai
7a5816b106
Self review changes
...
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Evans Mungai
0f90c83118
Merge remote-tracking branch 'upstream/main' into em/reinstate-logger-param
10 months ago
Evans Mungai
b1d4dc680d
feat: reinstate logger parameter to actions package
...
Fixes : #31399
Signed-off-by: Evans Mungai <mbuevans@gmail.com>
10 months ago
Matt Farina
76e6b7a6fe
Merge pull request #31390 from TerryHowe/chore-increase-helm-list-test-coverage
...
fix: improve pkg/cmd/list test coverage
10 months ago
Matt Farina
2cfd41ec28
Merge pull request #31351 from gjenkins8/gjenkins/helm_version_kubeversion
...
feat: `helm version` print Kubernetes (client-go) version
10 months ago
Matt Farina
752354074c
Merge pull request #31393 from benoittgt/12299
...
Return errors during upgrade when the deletion of resources fails
10 months ago
Matt Farina
37de51428c
Merge pull request #31376 from benoittgt/accept-yaml-yml
...
Do not ignore *.yml file on linting while accepting *.yaml
10 months ago
Matt Farina
b0247ce8bf
Merge pull request #31395 from wyrapeseed/main
...
chore: fix some comment format
10 months ago
Terry Howe
0f6e14dfd3
chore: fix various warnings to reduce noise
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
Jesse Simpson
3f860e83fb
fix: use empty results instead of nil
...
Signed-off-by: Jesse Simpson <jesse.simpson36@gmail.com>
10 months ago
Jesse Simpson
96b4c363c8
fix: Update returns nil on error, test should reflect this
...
Signed-off-by: Jesse Simpson <jesse.simpson36@gmail.com>
10 months ago
Terry Howe
917822cfca
refactor: remove unused err from pkg/registry/client.go
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
wyrapeseed
b9eadd3186
chore: fix some comment format
...
Signed-off-by: wyrapeseed <wyrapeseed@outlook.com>
10 months ago
Benoit Tigeot
7097c8e2e5
Replicate as unit test case where we fail once a resource deletion
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
10 months ago
Benoit Tigeot
054eabddd7
Return errors on upgrade when deletion fails
...
This is a rebase of https://github.com/helm/helm/pull/12299
as the pull request was tagged for Helm v4.
Closes: https://github.com/helm/helm/issues/11375
Related: https://github.com/helm/helm/pull/7929
It was a pain to reproduce, here is a script:
```
set -u
NS=default
RELEASE=test-release
CHART=./test-chart
SA=limited-helm-sa
HELM=${HELM:-./bin/helm}
echo "Helm: $($HELM version)"
echo "Cleaning…"
$HELM uninstall "$RELEASE" -n "$NS" >/dev/null 2>&1 || true
kubectl -n "$NS" delete sa "$SA" role "${SA}-role" rolebinding "${SA}-rb" >/dev/null 2>&1 || true
kubectl -n "$NS" delete cronjob "$RELEASE-test-chart-cronjob" >/dev/null 2>&1 || true
rm -rf "$CHART" /tmp/limited-helm-kubeconfig
echo "Create minimal chart with only a CronJob"
$HELM create "$CHART" >/dev/null
rm -f "$CHART"/templates/{deployment.yaml,service.yaml,hpa.yaml,tests/test-connection.yaml,serviceaccount.yaml}
cat > "$CHART/templates/cronjob.yaml" <<'YAML'
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "test-chart.fullname" . }}-cronjob
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
containers:
- name: hello
image: busybox
command: ["/bin/sh","-c","date; echo Hello from CronJob"]
YAML
echo "RBAC: allow Helm storage, basic reads/creates, but NO delete on cronjobs"
kubectl -n "$NS" apply -f - >/dev/null <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: $SA
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: ${SA}-role
rules:
- apiGroups: [""]
resources: ["secrets","configmaps"]
verbs: ["get","list","watch","create","patch","update","delete"]
- apiGroups: [""]
resources: ["pods","events"]
verbs: ["get","list","watch"]
- apiGroups: ["batch"]
resources: ["cronjobs"]
verbs: ["get","list","watch","create","patch","update"]
EOF
kubectl -n "$NS" apply -f - >/dev/null <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: ${SA}-rb
subjects:
- kind: ServiceAccount
name: $SA
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: ${SA}-role
EOF
echo "Create kubeconfig for that SA"
TOKEN=$(kubectl -n "$NS" create token "$SA")
SERVER=$(kubectl config view --minify -o jsonpath='{.clusters[0].cluster.server}')
CA_DATA=$(kubectl config view --minify --raw -o jsonpath='{.clusters[0].cluster.certificate-authority-data}')
KCFG=/tmp/limited-helm-kubeconfig
cat > "$KCFG" <<EOF
apiVersion: v1
kind: Config
clusters:
- name: local
cluster:
server: $SERVER
certificate-authority-data: $CA_DATA
contexts:
- name: limited
context:
cluster: local
namespace: $NS
user: $SA
current-context: limited
users:
- name: $SA
user:
token: $TOKEN
EOF
set +e
echo "Install (as limited SA)"
KUBECONFIG="$KCFG" $HELM upgrade --install "$RELEASE" "$CHART" -n "$NS" --wait
echo "CronJob after install:"
kubectl -n "$NS" get cronjob "$RELEASE-test-chart-cronjob" || true
echo "Remove CronJob from chart and add a small ConfigMap to force an upgrade"
rm -f "$CHART/templates/cronjob.yaml"
cat > "$CHART/templates/configmap.yaml" <<'YAML'
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "test-chart.fullname" . }}-config
data:
hello: world
YAML
echo "Upgrade without CronJob (as limited SA)"
KUBECONFIG="$KCFG" $HELM upgrade --install "$RELEASE" "$CHART" -n "$NS"
RC=$?
echo "Post-upgrade verification"
if kubectl -n "$NS" get cronjob "$RELEASE-test-chart-cronjob" >/dev/null 2>&1; then
echo "OK: Stale CronJob still present: $RELEASE-test-chart-cronjob"
else
echo "NO_OK: CronJob deleted"
fi
echo "Helm exit code: $RC"
exit 0
```
With the current build:
```sh
./reproduce-helm-issue.sh
Helm: version.BuildInfo{Version:"v4.0+unreleased", GitCommit:"f19bb9cd4c99943f7a4980d6670de44affe3e472", GitTreeState:"dirty", GoVersion:"go1.24.0"}
Cleaning…
Create minimal chart with CronJob + ConfigMap (we will remove both in v2)
RBAC: allow Helm storage + delete for configmaps, but NO delete on cronjobs
Create kubeconfig for that SA
Install v1 (as limited SA)
Release "test-release" does not exist. Installing it now.
NAME: test-release
LAST DEPLOYED: Tue Oct 14 18:55:57 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
DESCRIPTION: Install complete
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=test-chart,app.kubernetes.io/instance=test-release" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
Verify v1 objects exist
NAME SCHEDULE TIMEZONE SUSPEND ACTIVE LAST SCHEDULE AGE
test-release-test-chart-cronjob */5 * * * * <none> False 0 <none> 0s
NAME DATA AGE
test-release-test-chart-config 1 0s
Prepare v2: remove BOTH CronJob and ConfigMap from the chart
Upgrade to v2 (as limited SA) — expecting CronJob delete first, then ConfigMap
- CronJob delete should FAIL (no delete permission)
- ConfigMap delete should SUCCEED (delete allowed) — proves 'continue on error' and inverted order
level=DEBUG msg="getting history for release" release=test-release
level=DEBUG msg="getting release history" name=test-release
level=DEBUG msg="preparing upgrade" name=test-release
level=DEBUG msg="getting last revision" name=test-release
level=DEBUG msg="getting release history" name=test-release
level=DEBUG msg="number of dependencies in the chart" dependencies=0
level=DEBUG msg="determined release apply method" server_side_apply=true previous_release_apply_method=ssa
level=DEBUG msg="performing update" name=test-release
level=DEBUG msg="creating upgraded release" name=test-release
level=DEBUG msg="creating release" key=sh.helm.release.v1.test-release.v2
level=DEBUG msg="getting release history" name=test-release
level=DEBUG msg="using server-side apply for resource update" forceConflicts=false dryRun=false fieldValidationDirective=Strict upgradeClientSideFieldManager=false
level=DEBUG msg="checking resources for changes" resources=0
level=DEBUG msg="deleting resource" namespace=default name=test-release-test-chart-config kind=ConfigMap
level=DEBUG msg="deleting resource" namespace=default name=test-release-test-chart-cronjob kind=CronJob
level=DEBUG msg="failed to delete resource" namespace=default name=test-release-test-chart-cronjob kind=CronJob error="cronjobs.batch \"test-release-test-chart-cronjob\" is forbidden: User \"system:serviceaccount:default:limited-helm-sa\" cannot delete resource \"cronjobs\" in API group \"batch\" in the namespace \"default\""
level=INFO msg="update completed" created=0 updated=0 deleted=1
level=WARN msg="update completed with errors" errors=1
level=DEBUG msg="updating release" key=sh.helm.release.v1.test-release.v1
level=WARN msg="upgrade failed" name=test-release error="failed to delete resource test-release-test-chart-cronjob: cronjobs.batch \"test-release-test-chart-cronjob\" is forbidden: User \"system:serviceaccount:default:limited-helm-sa\" cannot delete resource \"cronjobs\" in API group \"batch\" in the namespace \"default\""
level=DEBUG msg="updating release" key=sh.helm.release.v1.test-release.v2
Error: UPGRADE FAILED: failed to delete resource test-release-test-chart-cronjob: cronjobs.batch "test-release-test-chart-cronjob" is forbidden: User "system:serviceaccount:default:limited-helm-sa" cannot delete resource "cronjobs" in API group "batch" in the namespace "default"
Post-upgrade verification
Stale CronJob still present: test-release-test-chart-cronjob (expected if delete is forbidden)
ConfigMap deleted as expected: test-release-test-chart-config (and after CronJob attempt)
Helm exit code: 1
```
With last version v3.19:
```
HELM=/usr/local/bin/helm ./reproduce-helm-issue.sh
Helm: version.BuildInfo{Version:"v3.19.0", GitCommit:"3d8990f0836691f0229297773f3524598f46bda6", GitTreeState:"clean", GoVersion:"go1.24.7"}
Cleaning…
Create minimal chart with only a CronJob
RBAC: allow Helm storage, basic reads/creates, but NO delete on cronjobs
Create kubeconfig for that SA
Install (as limited SA)
Release "test-release" does not exist. Installing it now.
NAME: test-release
LAST DEPLOYED: Tue Oct 14 19:07:01 2025
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=test-chart,app.kubernetes.io/instance=test-release" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
CronJob after install:
NAME SCHEDULE TIMEZONE SUSPEND ACTIVE LAST SCHEDULE AGE
test-release-test-chart-cronjob */5 * * * * <none> False 0 <none> 0s
Remove CronJob from chart and add a small ConfigMap to force an upgrade
Upgrade without CronJob (as limited SA)
Release "test-release" has been upgraded. Happy Helming!
NAME: test-release
LAST DEPLOYED: Tue Oct 14 19:07:01 2025
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
1. Get the application URL by running these commands:
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=test-chart,app.kubernetes.io/instance=test-release" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace default $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace default port-forward $POD_NAME 8080:$CONTAINER_PORT
Post-upgrade verification
OK: Stale CronJob still present: test-release-test-chart-cronjob
Helm exit code: 0
```
Co-authored-by: dayeguilaiye <979014041@qq.com>
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
10 months ago
Terry Howe
3b2fd17799
chore: rename test registry
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
Terry Howe
379b0899b3
fix: increase helm list test coverage
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
George Jenkins
7dd2484aed
Merge pull request #31295 from TerryHowe/fix-make-helm-list-show-all-by-default
...
Fix make helm list show all by default
10 months ago
Scott Rigby
f0530309f0
Merge pull request #31302 from TerryHowe/fix-helm-verify-signature
...
fix: helm verify Run signature
10 months ago
Scott Rigby
f9d4373ea4
Merge pull request #31270 from TerryHowe/chore-registry-clean-up
...
chore: registry utils clean up
10 months ago
Terry Howe
abdf6603c0
fix test for rebase
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
Matt Farina
a03e8c9541
Merge pull request #31375 from TerryHowe/fix-release-info-time
...
fix: release info time parsing
10 months ago
Terry Howe
f6e60138e8
Update pkg/cmd/list.go
...
Co-authored-by: George Jenkins <gvjenkins@gmail.com>
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
Terry Howe
c3aa5c51e6
chore: clean up for comments
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
copilot-swe-agent[bot]
b4f932a715
Fix test by making date sorting stable and updating golden files
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
Terry Howe
8a73d97984
fix: make helm list show all by default
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
Marcin Owsiany
269a32a6d2
test: protect unknown hook delete policies
...
Signed-off-by: Marcin Owsiany <porridge@redhat.com>
10 months ago
Dirk Müller
9cd40c612a
Avoid accessing .Items on nil object
...
When listing fails for whatever reason, the return value is nil, err.
so handle err explicitly.
Signed-off-by: Dirk Müller <dirk@dmllr.de>
10 months ago
Benoit Tigeot
06188f9dfe
Add test for isYamlFileExtension functions
...
Signed-off-by: Benoit Tigeot <benoit.tigeot@lifen.fr>
10 months ago
Terry Howe
20eb6e9b04
fix: empty time values
...
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
10 months ago
Matt Farina
fbf02e494e
Merge pull request #30980 from gjenkins8/gjenkins/cleanup_kubeclient_interfaces
...
cleanup: Remove/consolidate redundant kube client Interfaces
10 months ago
Matt Farina
78cd44bd75
Merge pull request #30712 from gjenkins8/gjenkins/cleanup_lint_template
...
cleanup: Remove extra lint/rules.Template functions
10 months ago
Matt Farina
24159ec8b6
Moving new default accessor functions to internal per feedback
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
10 months ago
Matt Farina
fb20e96a56
Adding a test/example for the release accessor
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
10 months ago
Matt Farina
ab6e7fa58b
Removing debug statement
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
10 months ago
Matt Farina
a229bf6529
Ensure the release interface is used in actions instead of the type
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
10 months ago
Matt Farina
9c958dec76
Making uninstall response generic
...
Signed-off-by: Matt Farina <matt.farina@suse.com>
10 months ago