Commit graph

74 commits

Author SHA1 Message Date
Matt Farina
dbef83eac3
Merge pull request #10913 from sureshdsk/pluginbug
fix: plugin does not load when helm base dir contains space
2023-09-18 15:20:00 -04:00
Eng Zer Jun
2ceebffc77
test: replace ensure.TempDir with t.TempDir
This commit replaces `ensure.TempDir` with `t.TempDir` in tests. The
directory created by `t.TempDir` is automatically removed when the test
and all its subtests complete.

Prior to this commit, temporary directory created using `ensure.TempDir`
needs to be removed manually by calling `os.RemoveAll`, which is omitted
in some tests. The error handling boilerplate e.g.
	defer func() {
		if err := os.RemoveAll(dir); err != nil {
			t.Fatal(err)
		}
	}
is also tedious, but `t.TempDir` handles this for us nicely.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2023-07-29 16:11:22 +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
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
Philipp Stehle
965f8591e7 improve error message on plugin install
Signed-off-by: Philipp Stehle <philipp.stehle@sap.com>
2022-11-09 10:41:55 +01:00
cui fliter
09d3f31358 fix a few function names on comments
Signed-off-by: cui fliter <imcusg@gmail.com>
2022-10-17 20:41:59 +08:00
Suresh Kumar
d7a5f54b6f test: added tests to load plugin from home dir with space
Signed-off-by: Suresh Kumar <sureshdsk91@gmail.com>
2022-05-01 08:59:16 +05:30
Suresh Kumar
2b49de0860 fix: plugin does not load when helm base dir contains space
Signed-off-by: Suresh Kumar <sureshdsk91@gmail.com>
2022-04-29 17:02:45 +05:30
Eng Zer Jun
2e3e22a003
test: use T.TempDir to create temporary test directory
The directory created by `T.TempDir` is automatically removed when the
test and all its subtests complete.

Reference: https://pkg.go.dev/testing#T.TempDir
Signed-off-by: Eng Zer Jun <engzerjun@gmail.com>
2022-02-12 13:54:54 +08:00
Tyler Auerbeck
4bf99e54eb
Update HELM_PLUGIN_SELF -> HELM_PLUGIN_DIR (#10380)
* Update HELM_PLUGIN_SELF -> HELM_PLUGIN_DIR

Signed-off-by: Tyler Auerbeck <tylerauerbeck@users.noreply.github.com>

* Trigger Build

Signed-off-by: Tyler Auerbeck <tylerauerbeck@users.noreply.github.com>

Co-authored-by: Tyler Auerbeck <tylerauerbeck@users.noreply.github.com>
2021-11-25 23:50:53 -08:00
yxxhero
133c227331 add unittest
Signed-off-by: yxxhero <aiopsclub@163.com>
2021-08-07 09:48:37 +08:00
yxxhero
90fa4c962a fix HELM PLUGINS behavior another_way
Signed-off-by: yxxhero <aiopsclub@163.com>
2021-08-07 09:38:17 +08:00
Martin Hickey
699ea6dcef
Merge pull request #9066 from scaat/fix-specification
[FIX]Unified go specification
2021-06-02 11:55:53 +01:00
Josh Soref
2bf8fdf45d
chore: Spelling (#9410)
* spelling: annotate

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: asserts

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: behavior

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: binary

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: contain

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: copied

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: dependency

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: depending

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: deprecated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: doesn't

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: donot

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: github

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: inputting

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: iteration

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: jabberwocky

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: kubernetes

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: length

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: mismatch

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: multiple

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: nonexistent

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: outputs

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: panicking

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: plugins

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: parsing

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: porthos

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: regular

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: resource

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: repositories

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: something

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: strict

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: string

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unknown

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2021-03-15 21:11:57 -04:00
Adam Reese
657ce552cb
fix(*): Validate metadata semver and printable characters
ref: https://github.com/helm/helm/security/advisories/GHSA-c38g-469g-cmgx

* Skip invalid chart versions when reading the repository index file or
  when programmatically adding a chart version.
* Adds semver validation and strips non-printable characters and
  normalizes spaces for string fields in Metadata.Validate()
* Fixes a unit test that was pulling a remote repo.  Now uses a local
  repo.
* Fixes ignored error in repo update command

Signed-off-by: Adam Reese <adam@reese.io>
2021-02-04 12:52:24 -08:00
Scaat Feng
89f2f84a02 [FIX]error string should not be capitalized
Signed-off-by: Scaat Feng <scaat.feng@gmail.com>
2020-11-26 14:13:38 +08:00
Ma Xinjian
1aa6e928ce Cleanup tempfiles introduced by unit tests under pkg/
Signed-off-by: Ma Xinjian <maxj.fnst@cn.fujitsu.com>
2020-11-23 17:22:52 +08:00
Matthew Fisher
6eeec4a002
switched to stricter YAML parsing on plugin metadata files
Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
2020-09-17 11:38:28 -07:00
Matt Butcher
809e2d999e
Merge pull request from GHSA-m54r-vrmv-hw33
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
2020-09-17 12:35:10 -06:00
Matt Butcher
e2da16f514
improve the HTTP detection for tar archives
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
2020-09-17 11:54:07 -06:00
Matt Butcher
b6bbe4f08b
Improve the extractor and add tests (#8317)
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
2020-06-15 16:39:39 -06:00
Matt Farina
512544b9ab
Fixing PAX Header handling (#8086)
* Fixing issue with PAX headers in plugin archive

PAX Headers can be added by some systems that create archives. Helm
should ignore them when extracting.

There are two PAX headers. One is global and the other is not. Both
are ignored. The test adds only the PAX global header because the
Go tar package is unable to write the header that is not global.

Closes #8084

Signed-off-by: Matt Farina <matt@mattfarina.com>

* Removing the PAX header test as it is not working

The PAX header test was making a WriteHeader call and ignoring the
error. When writing the type TypeXHeader it was causing an error
that was being silently ignored. The Go tar package cannot write
this type and produces an error when one tries to. The error reads
"cannot manually encode TypeXHeader, TypeGNULongName, or TypeGNULongLink
headers"

Signed-off-by: Matt Farina <matt@mattfarina.com>

* Adding check of returned error in test

Adding a check for the returned error to make sure a non-nil value
is not returned.

Signed-off-by: Matt Farina <matt@mattfarina.com>
2020-05-13 17:09:27 -05:00
Liu Ming
e1aaf995a6 refactor: alter constant pluginFileName to PluginFileName
in order to reuse the "plugin.yaml" value in installer package
and avoid magic value in installer.go

Signed-off-by: Liu Ming <hit_oak_tree@126.com>
2020-05-05 23:50:45 +08:00
Adam Reese
4a0dfbe53b
fix(pkg/cli): ensure correct configuration from kubeconfig file
Bind Helm flags to Kubernetes configuration loader to get a merged
config with kubeconfig.

Fixes: #7539

Signed-off-by: Adam Reese <adam@reese.io>
2020-04-23 12:20:14 -07:00
Adam Reese
1cdd0a2048
fix(pkg/plugin): copy plugins directly to the data directory (#7962)
Copy plugins from the cache rather than create a symlink.

fixes: #7206

Signed-off-by: Adam Reese <adam@reese.io>
2020-04-22 15:33:01 -07:00
ZouYu
df9cf87cbe add unit test for function FindPlugins
Signed-off-by: ZouYu <zouy.fnst@cn.fujitsu.com>
2020-04-16 14:12:40 +08:00
Yaakov Selkowitz
df20164cd2
Fix tests on arm64 and ppc64le (#7500)
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2020-01-31 09:59:35 +00:00
Vivian Kong
82823a6634 Allow tests to run on s390x (#7096)
Signed-off-by: Vivian Kong <vivkong@ca.ibm.com>
2020-01-17 15:39:26 +00:00
Josh Soref
02ad2b1187 Spelling (#7258)
* spelling: constraint

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: cryptographic

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: dependency

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: doesnot

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: don't

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: unexpected

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: dreadnought

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: default

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: envvars

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: evaluates

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: execute

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: extractor

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: frobnitz

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: generated

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: implementation

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: jabba

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: keywords

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: kubernetes

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: override

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: package

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: parsable

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: progress

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: recursively

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: release

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: cache

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: representing

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: serializer

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: subchart

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>

* spelling: utilities

Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
2019-12-18 12:04:08 +00:00
Taylor Thomas
fca14bcb76 feat(plugin): Ports file mode preservation for tarballs from v3
This is a port of #5428 and readds a unit test for the `Extract` method

Signed-off-by: Taylor Thomas <taylor.thomas@microsoft.com>
2019-10-07 15:36:41 -06:00
Matt Farina
9bc7934f35
Updating the module for v3 as the major version
Signed-off-by: Matt Farina <matt@mattfarina.com>
2019-10-03 14:27:05 -04:00
Matt Farina
967f4fed42
Update dependencies
* Kubernetes updated to 1.16.1
* SemVer and Sprig updated to latest releases that leverage go
  modules
* Tests and checks updated. These already landed in v2 via PR 6457

Signed-off-by: Matt Farina <matt@mattfarina.com>
2019-10-03 13:49:07 -04:00
Adam Reese
d3805a1d54
ref(pkg/cli): refactor environment variable setup
This change sets proper defaults based on environment variables for
global settings and plugin environments.

Signed-off-by: Adam Reese <adam@reese.io>
2019-09-25 14:00:43 -07:00
Matt Farina
1ea53d8934
Unifity environment variable naming and use
Signed-off-by: Matt Farina <matt@mattfarina.com>
2019-09-04 14:15:30 -04:00
Adam Reese
1779ad5302
ref(cmd/helm): remove init command
Signed-off-by: Adam Reese <adam@reese.io>
2019-08-26 10:21:52 -07:00
Adam Reese
b6fdd8783b
feat(cmd/helm): remove need for helm init command
* allow repository config via cli
* make `helm repo add` create repo config file if it does not exist
* squash a ton of bugs

Signed-off-by: Adam Reese <adam@reese.io>
2019-08-22 23:31:50 -07:00
Matthew Fisher
186f6c512f
fix(plugin): add HELM_HOME back
This allows Helm 2 plugins that used HELM_HOME as a scratchpad to continue to work the same in Helm 3.

Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
2019-08-02 13:42:21 -07:00
Matthew Fisher
c728611e5a
feat(cli): support XDG base directory specification
Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
2019-08-02 13:15:03 -07:00
Oleg Sidorov
ec440d446d Replaced ghodss/yaml with sigs.k8s.io/yaml
This commit replaces usage of github.com/ghodss/yaml with it's forked
version maintained by SIG community. The replaced library has
low-to-none support activity unlike the latter. We believe the new
Helm branch could benefit from using the community-supported version on
a long-term run as yaml parser is a key component of Helm chart rendering
engine.

This commit locks sigs.k8s.io/yaml dependency version on 1.1.0 which
is backwards compatible with ghodss/yaml 1.0.0.

This change also resolves the outdated dependency version lock for
ghodss/yaml (currently 1.0.0) and makes it possible to port changes from
https://github.com/helm/helm/pull/6010 to dev-v3.

Signed-off-by: Oleg Sidorov <oleg.sidorov@booking.com>
2019-07-12 16:52:15 +02:00
Matthew Fisher
e410a03c74
ref(getter): introduce Options for passing in getter parameters
instead of hard-coding the parameters being passed in the constructor, we should pass in an Options struct that can be used to pass in those parameters.

Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
2019-07-02 15:22:23 -07:00
Adam Reese
295092cd7d
ref(pkg/action): refactoring dup code and linter fixes
Signed-off-by: Adam Reese <adam@reese.io>
2019-03-26 11:11:27 -07:00
Adam Reese
895e9192d4
feat(*): use vanity import helm.sh/helm
Signed-off-by: Adam Reese <adam@reese.io>
2019-03-13 13:43:47 -07:00
Matthew Fisher
2571dbf82f
ref: remove pkg/helm, pkg/hapi, pkg/tiller
Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
2019-03-12 09:47:12 -07:00
Adam Reese
21d3a40f3b
feat(tests): replace gometalinter with golangci-lint
Signed-off-by: Adam Reese <adam@reese.io>
2019-03-08 11:45:42 -08:00
Adam Reese
f791421fab
feat(Makefile): add formatting target
Signed-off-by: Adam Reese <adam@reese.io>
2019-02-08 12:24:47 -08:00
Martin Hickey
86d8596763 Feature(Plugins): Enable platform specific commands (#5176)
* Add logic for platform specific commands to plugins
* Add plugins doc updated to incorporate platform specific commands
* Add condition for os match:  If OS matches and there is no more specific match, the command
will be executed
2019-01-16 21:52:58 -08:00
Adam Reese
4f26b658d8
change copyright to "Copyright The Helm Authors" 2018-08-24 12:03:55 -07:00
Adam Reese
726e3c41be
feat(*): print stacktrace on error with debug enabled 2018-05-10 09:34:41 -07:00
Adam Reese
c50813af54
ref(*): remove local repository (dead code) 2018-04-25 09:35:29 -07:00
Adam Reese
19398a2ef1
feat(*): store release History in same namespace as release
https://github.com/kubernetes-helm/community/blob/master/helm-v3/003-state.md#namespacing-changes
2018-04-23 09:48:07 -07:00