Commit Graph
47 Commits
Author SHA1 Message Date
Terry Howe fc36041702 fix: plugin installer test with no Internet
Signed-off-by: Terry Howe <terrylhowe@gmail.com>
2025-05-30 06:56:02 -04:00
Matt Farina fba9d08dce Ensuring the file paths are clean prior to passing to securejoin
securejoin v0.4.0 made a possibly breaking change. Only clean paths
are safe to pass to SecureJoin or they could return an error or
have the wrong path. The details are in the release notes for v0.4.0.

This change ensures the paths are clean prior to passing to SecureJoin.

Signed-off-by: Matt Farina <matt.farina@suse.com>
(cherry picked from commit 35a9ead998)
2025-01-14 15:35:47 -05:00
Matt Farina 847369c184 Update to Go 1.21 for builds
Noteis:
1. This moves golangci scanning to a GitHub action. This will
   enable inline pointers to issues in the PR where linting fails.
2. Go 1.21 is specified in the go.mod because Kubernetes libs
   require it.
3. The lint issues were removed. Some were fixed while others
   were handled by skipping linting or using _ as an argument.
   Many of these can be refactored later for better cleanup.

Signed-off-by: Matt Farina <matt.farina@suse.com>
2024-01-08 15:48:36 -05: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
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
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
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
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 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 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
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 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 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
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 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 f791421fab feat(Makefile): add formatting target
Signed-off-by: Adam Reese <adam@reese.io>
2019-02-08 12:24:47 -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 496ca54183 ref(*): bypass grpc for helm client 2018-04-16 11:19:22 -07:00
Adam Reese fa611fe285 fix(plugins): support installing plugins by relative path (#3568)
Support installing plugins by relative path

```
helm plugins install .
```
2018-02-26 15:49:07 -08:00
Adam Reese c314e2e2f1 fix(plugins): support newer git (#3571)
Newer gits don't like checking out an empty string.

```
empty string is not a valid pathspec. please use . instead if you meant to match all paths
```
2018-02-26 15:44:32 -08:00
oilbeater 0764d95a03 defer in loop may cause resource leak
defer statement executes only when function return, and the resource still be hold during loop. Release the resource manually when not needed.
2018-02-09 10:24:47 +08:00
Johan Lyheden 4831089500 Add tests to HTTPInstaller, update plugin documentation 2017-10-20 10:28:40 +02:00
Johan Lyheden f1a08adb41 Update to comply with linter rules and gofmt 2017-10-19 13:42:11 +02:00
Johan Lyheden d43d5ab452 Add plugin installer from http archive 2017-10-19 10:28:16 +02:00
Seth Goings e7a51d5424 fix(plugins): exists --> exist 2017-05-30 09:57:20 -06:00
Sushil Kumar a6556b4982 Check existence of $HELM_HOME/plugins before installing plugin
Fixes https://github.com/kubernetes/helm/issues/2488
2017-05-25 15:04:10 -07:00
Adam Reese 1e8ebae249 fix(plugins): add error when updating modified plugins
If git has autosetuprebase enabled pulling will fail without a
descriptive error message.
2017-05-19 14:18:24 -07:00
Sushil Kumar ff42dadde4 Adds update option to plugin command (#2410)
* Adds update option to plugin command

Fixes issues/2385 - helm install silently updates the plugin, if it pre-existed

* Added tests for new methods for plugin update

* Updated docs

* Updated review comments :)

* Return error exit code when there is error
2017-05-16 11:07:15 -06:00
Sushil Kumar 24157e4aed Updated review comments :) 2017-05-06 15:59:20 -07:00
Sushil Kumar c84fb11a68 Errors out in case requested plugin exists
Partially fixes issues/2385 - helm install silently updates the plugin, if it pre-existed
2017-05-06 15:47:21 -07:00
Sushil Kumar 6344f1d8e9 Errors out in case requested plugin version does not exists
Fixes issues/2384 - helm plugin install installs a default version in case requested version is not available
2017-05-06 15:47:21 -07:00
Adam Reese e611936893 ref(plugin): cleanup unused functions 2017-04-07 00:11:23 -07:00
Adam Reese 51b8d8a6ee feat(helm): add plugin management commands
Add plugin management subcommands for installing and removing plugins
to `$HELM_HOST/plugins`.

Install accepts a vcs url or a local directory.

```
$ helm plugin install http://github.com/adamreese/helm-env
Installed plugin: env

$ helm plugin list
NAME    	VERSION	DESCRIPTION
env     	0.1.0  	Print out the helm environment.

$ helm plugin remove env
Removed plugin: env
```

closes #1977
2017-04-06 11:28:09 -07:00