Commit Graph

2404 Commits

Author SHA1 Message Date
Matt Farina
8b19f8df0e Adding details on the Factory interface
This covers both the property and the minimal copy of the Factory
interface. It also notes that this interface is not covered by the
Helm backwards compatibility and why.

Signed-off-by: Matt Farina <matt.farina@suse.com>
Signed-off-by: Joe Julian <me@joejulian.name>
2023-05-05 17:20:31 -07:00
Matt Farina
b4b629c3c2 Merge pull request #11204 from sabre1041/oci-annotations
Attach annotations to OCI artifacts
2023-05-01 10:55:38 -04:00
Matt Farina
b81428919b Merge pull request #12015 from yann-soubeyrand/bump-k8s-io-deps
chore: bump k8s.io dependencies to v0.27.1
2023-05-01 09:54:14 -04:00
Andrew Block
f900e9f1b1 Attach annotations to OCI artifacts
Signed-off-by: Andrew Block <andy.block@gmail.com>
2023-04-29 08:10:04 -05:00
Matt Farina
01dabe5312 Merge pull request #11948 from wujunwei/fix-failed-testcase-on-windows
fix: failed testcase on windows
2023-04-28 15:20:37 -04:00
Matt Farina
9705369da6 Merge pull request #11973 from joejulian/quiet_lint
fail quiet linting when an error occurs
2023-04-28 14:53:04 -04:00
Matt Farina
0833318b32 Merge pull request #9182 from pscheid92/4030-provide-literal-alternative-for-set-flag
Provide an alternative for --set and/or --set-string to take a value literally
2023-04-28 14:39:41 -04:00
Matt Farina
3b74c13768 Merge pull request #11479 from MichaelMorrisEst/cascade
Add option to support foreground cascade deletion
2023-04-27 15:43:14 -04:00
Tom Wieczorek
b9361407a3 Bump k8s.io deps from v0.26.0 to v0.27.0
Adapt to changes in 1.27 client libs:

* The OpenAPIGetter method is now private, but the Validator method does
  what is needed instead.
* The function wait.PollImmediateUntil is deprecated. Switch to the
  recommended new function wait.PollUntilContextCancel.

Related dependency changes:

change k8s.io/kube-openapi v0.0.0-20221012153701-172d655c2280 => v0.0.0-20230308215209-15aac26d736a

And some transitive version changes:

add github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0
add github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1
remove github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153
github.com/go-errors/errors v1.0.1 => v1.4.2
github.com/go-openapi/jsonpointer v0.19.5 => v0.19.6
github.com/go-openapi/jsonreference v0.20.0 => v0.20.1
github.com/go-openapi/swag v0.19.14 => v0.22.3
github.com/golang/protobuf v1.5.2 => v1.5.3
github.com/mailru/easyjson v0.7.6 => v0.7.7
github.com/onsi/ginkgo/v2 v2.4.0 => v2.9.1
github.com/onsi/gomega v1.23.0 => v1.27.4
github.com/rogpeppe/go-internal v1.9.0 => v1.10.0
golang.org/x/mod v0.8.0 => v0.9.0
golang.org/x/net v0.7.0 => v0.8.0
golang.org/x/term v0.5.0 => v0.6.0
golang.org/x/tools v0.6.0 => v0.7.0
gotest.tools/v3 v3.0.3 => v3.4.0
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 => v0.0.0-20221116044647-bc3834ca7abd
sigs.k8s.io/kustomize/api v0.12.1 => v0.13.2
sigs.k8s.io/kustomize/kyaml v0.13.9 => v0.14.1

Signed-off-by: Tom Wieczorek <twieczorek@mirantis.com>
2023-04-13 10:48:42 +02:00
Matt Farina
cf3d2531a8 Merge pull request #11898 from willzgli/waitbatchPerform
Fix goroutine leak in perform
2023-04-11 11:21:21 -04:00
Matt Farina
7c9d636f40 Fix goroutine leak in action install
During the install process there was a place where an install
process could be stuck trying to write to a channel. This would
happen when a context had completed prior to performInstall
finishing. In a short running Helm Client this was not a problem.
But, for long running applications that use Helm as an SDK there
are problems where a memory leak ends up happening due to
goroutines never being able to complete.

This fix provides a means for performInstall to write to its
channel using the method already used to fix the upgrade
issue of the same kind.

Fixes #11805

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-04-10 16:45:41 -04:00
Matt Farina
10587613cf Merge pull request #11949 from dirkmueller/goarches
Fix 32bit-x86 typo in testsuite
2023-04-10 12:26:19 -04:00
Joe Julian
853c18002f fix quiet lint does not fail on non-linting errors
Signed-off-by: Joe Julian <me@joejulian.name>
2023-04-10 09:22:24 -07:00
Aman Nijhawan
eea2f27bab Fixes Readiness Check for statefulsets using partitioned rolling update. (#11774)
* Fixes Readiness Check for statefulsets using partitioned rolling update.
Fixes #11773

This change updates readiness check in ready.go to correctly
account for statefulsets that are utilizing a partitioned upgrade.
These statefulsets only upgrade a subset of the managed pods with each call
to helm upgrade. This causes the upgrade to legitimately hit the condition where
sts.status.CurrentRevision != sts.Status.UpdateRevision which causes helm to mark
the upgrade has failed when in fact it is successful.

This change fixes that behavior to only check when partition is unspecified or 0.

Signed-off-by: Aman Nijhawan <anijhawan@yugabyte.com>

* Adding a unit test to verify that partitioned rolling upgrade for a statefulset works.

Signed-off-by: Aman Nijhawan <anijhawan@yugabyte.com>

---------

Signed-off-by: Aman Nijhawan <anijhawan@yugabyte.com>
Co-authored-by: Aman Nijhawan <anijhawan@yugabyte.com>
2023-03-30 10:39:29 -06:00
wujunwei
878e962b23 fix: failed testcase on windows
Signed-off-by: wujunwei <wjw3323@live.com>
2023-03-29 10:27:44 +08:00
Dirk Müller
1fc8369356 Fix 32bit-x86 typo in testsuite
The GOARCH here is 386 not i386. This caused a slightly odd test
suite failure on that architecture:

--- FAIL: TestPlatformPrepareCommand (0.00s)
     plugin_test.go:45: Expected arg="os-arch", got "linux-s390x"
     plugin_test.go:64: Expected arg="os-arch", got "linux-s390x"

Signed-off-by: Dirk Müller <dirk@dmllr.de>
2023-03-28 15:10:19 +02:00
Matt Farina
046646c944 Handle failed DNS case for Go 1.20+
Go 1.20 introduced DNS/CNAME handling changes. This can cause an
IP address represented in hex, oct, etc to be looked up as DNS and
fail. This change introduces a mock DNS resolver.

Note, with the mock resolver, we don't need to use 0x7f000001 any
longer. Keeping because it was already there.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-03-23 13:22:07 -04:00
Matt Farina
4e7e939f19 Updating the Go version in go.mod
At this time both Go 1.19 and 1.20 are supported. The version
specified in the go.mod file is the minimum version we expect Helm
to be compiled against. This is the oldest supported version to
support environments where others compile Helm. The Helm project
is using Go 1.20 to build Helm itself.

Updating to Go 1.19 also includes dealing with io/ioutil
deprecation and some additional linting issues around staticcheck.
All the staticcheck issues were in test files so linting was
skipped for those.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-03-22 11:52:30 -04:00
Matt Farina
50c22ed7f9 Bump the Go version
Needed to gofmt source to meet changes in style

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-03-22 11:29:26 -04:00
Matt Farina
299a6463a0 Merge pull request #11886 from hiddeco/properly-invalidate-client
Properly invalidate client after CRD install
2023-03-22 10:36:41 -04:00
willzgli
11150cdcc6 Fix goroutine leak in perform
Signed-off-by: willzgli <willzgli@tencent.com>
2023-03-17 23:30:12 +08:00
Hidde Beydals
68f7b1f194 Properly invalidate client after CRD install
As the CRDs are installed before the capabilities are gathered, the
current call to invalidate the discovery client is premature and
expensive.

What actually is required is an invalidation of the REST mapper, as
otherwise the Helm install action may later on fail with a `resource
mapping not found` error. More specifically when the caller of the
action is making use of a persisting[1] `RESTClientGetter`.

Which is not something done by the Helm CLI (albeit it could, and this
would potentially save quite some resources?). But is a default
configuration offered by the Helm SDK via `kube.New` when a nil value
is provided as the `getter`.

[1]: https://github.com/kubernetes/cli-runtime/blob/v0.26.2/pkg/genericclioptions/config_flags.go#L118

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-07 20:07:41 +01:00
Soule BA
11738dde51 Provide a helper to set the registryClient in cmd
If enabled the registryClient is set using a helper that accepts the TLS
flags. This keeps the client creation consistent accross the different
commands.

Signed-off-by: Soule BA <bah.soule@gmail.com>
2023-03-03 07:33:17 -06:00
Andrew Block
c94306f75d Reimplemented change in httpgetter for insecure TLS option
Signed-off-by: Andrew Block <andy.block@gmail.com>
2023-03-03 07:33:17 -06:00
Andrew Block
ec5e29e801 Removed conditional
Signed-off-by: Andrew Block <andy.block@gmail.com>
2023-03-03 07:33:17 -06:00
Andrew Block
154f37efec Added insecure option to login subcommand
Signed-off-by: Andrew Block <andy.block@gmail.com>
2023-03-03 07:33:17 -06:00
Andrew Block
08593c8dd6 Added support for insecure OCI registries
Signed-off-by: Andrew Block <andy.block@gmail.com>
2023-03-03 07:33:17 -06:00
Soule BA
b0ecb21056 Enable custom certificates option for OCI
If implemented, users will be able to use custom certificates and CA to
while interacting with OCI registries.

Signed-off-by: Soule BA <bah.soule@gmail.com>
2023-03-03 07:33:17 -06:00
cpanato
006bc0f39d update k8s registry domain
Signed-off-by: cpanato <ctadeu@gmail.com>
2023-02-17 09:50:04 +01:00
Matt Farina
863bc74e5a Update to func handling
Signed-off-by: Matt Farina <matt@mattfarina.com>
2023-02-03 15:36:32 -05:00
MichaelMorris
830d4a9ee9 Add option to support cascade deletion options
Add --cascade=<background|foreground|orphan> option to helm uninstall
Current behaviour is hardcoded to background

Addresses issue: https://github.com/helm/helm/issues/10586

Signed-off-by: MichaelMorris <michael.morris@est.tech>
2023-02-02 11:22:32 +00:00
Matt Farina
76157c6d06 Merge pull request #11720 from mattfarina/fix-11712
Fix improper use of Table request/response to k8s API
2023-01-13 11:57:35 -05:00
Cenk Alti
442d594570 Check status code before retrying request
Signed-off-by: Cenk Alti <cenkalti@gmail.com>
2023-01-12 21:03:45 -05:00
Matt Farina
36e18fa6e1 Fix improper use of Table request/response to k8s API
Fixes #11712

A change was made that when validation was turned off the Kubernetes
packages were building objects as a Table type. This was done for
display purposes. When details about the objects was going to be
printed as part of #10912.

This broke rollback, and possibly other functionality, as a Table
type was returned in some cases that needed the regular object.
This caused things to break silently.

The fix involved adding in a new Function (and interface) to
query for tables instead of the objects themselves. There was not
a clean way to add it to the existing function that covered all
cases.

A second problem was noticed along the way. When data was output
via status as YAML or JSON it was in the form of a table rather
than the objects themselves. This did not reflect expectations
and did not match the functionality in kubectl. The code was
updated to return a table when that was presented and the objects
when they are being output for YAML or JSON. The API also supports
this handling to SDK users can replicate this functionality.

API changes made here were never released. The functions were
developed for this release of Helm and only ever appeared in an
RC. In this case, they can be changed.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-01-12 08:38:10 -05:00
Matt Farina
6facbada26 bump version to v3.11.0
Signed-off-by: Matt Farina <matt.farina@suse.com>
(cherry picked from commit 9d8fee155b)
2023-01-09 21:23:22 -05:00
Matt Farina
6487d43965 Merge pull request #11672 from VaibhavSharma-47/feature
[CMD/PKG] Adopted resource not replaced when using upgrade --install --force
2023-01-09 20:48:08 -05:00
Matt Farina
774c6ce703 Merge pull request #11439 from phoenixsqf/main
use intstr.GetScaledValueFromIntOrPercent instead of the deprecated
2023-01-09 18:08:40 -05:00
Patrick Scheid
c1a65d589a Add protection for stack-overflows for nested keys
Signed-off-by: Patrick Scheid <p.scheid92@gmail.com>
2023-01-06 14:49:11 +01:00
Martin Hickey
1819f1f616 Merge pull request #11628 from dastrobu/Linting_error_on_null_in_dependencies_is_misleading_#11627
change linting error messages for null values in arrays
2023-01-06 09:46:48 +00:00
Daniel Strobusch
6a5f240e9a change linting error messages for null values in arrays
Closes #11627

Signed-off-by: Daniel Strobusch <1847260+dastrobu@users.noreply.github.com>
2023-01-05 18:28:14 +01:00
Jakub Warczarek
3d81ea22ac Fix after CR
Signed-off-by: Jakub Warczarek <jakub.warczarek@gmail.com>
2023-01-03 23:35:19 +01:00
Jakub Warczarek
553f1e34f5 Add test for User-Agent header setting and refactor
Signed-off-by: Jakub Warczarek <jakub.warczarek@gmail.com>
2023-01-03 23:13:11 +01:00
Jakub Warczarek
2fa7b3d1b7 Fix User-Agent header in requests made by Helm
Signed-off-by: Jakub Warczarek <jakub.warczarek@gmail.com>
2023-01-03 23:13:11 +01:00
Matt Farina
50ec3d4fe4 Fixing indentation
Signed-off-by: Matt Farina <matt.farina@suse.com>
2023-01-03 09:18:13 -05:00
Matt Farina
6611cdcd01 Merge branch 'main' into 4030-provide-literal-alternative-for-set-flag
Signed-off-by: Matt Farina <matt@mattfarina.com>
2023-01-03 09:06:14 -05:00
Matt Farina
71ef5f477b Merge pull request #11524 from sap-contributions/harmonize-url-reference-resolving
harmonize URL reference resolving
2023-01-03 09:02:12 -05:00
Matt Farina
6d2b10832e Merge pull request #11616 from zalsader/add-docs-cli-values
docs: add docs for cli/values.Options
2023-01-03 09:01:24 -05:00
Vaibhav Sharma
3181c7ddad fix adopted resource not replaced
Signed-off-by: Vaibhav Sharma <17532va@gmail.com>
2022-12-24 00:19:06 +05:30
Matt Farina
eb7150fc61 Merge pull request #10912 from SoujanyaMangipudi/main
feat(helm): Supporting helm3 to show up resource names in helm status
2022-12-23 11:00:59 -05:00
Soujanya Mangipudi
6f8c1785a4 Merge remote-tracking branch 'helm-upstream/main' into somangip/MergeHelmMain1219
Signed-off-by: Soujanya Mangipudi <somangip@microsoft.com>
2022-12-19 15:22:52 -08:00