For more information, please see the following URL:
https://github.com/helm/community/blob/main/hips/hip-0006.md
Note: OCI support remains experimental, and you are still
required to set HELM_EXPERIMENTAL_OCI=1 in your environment.
Signed-off-by: Josh Dolitsky <josh@dolit.ski>
Current documentation list all available template vars, but does not provide an example of a template string that demonstrates template substitution. I had to look it up in the unit test.
Signed-off-by: Iaroslav Sheptykin <i.sheptykin@neusta.de>
The 'uninstall' command can accept more than one release name as
arguments; this commit teaches the completion logic to respect this.
At the same time, the commit adds tests for the commands using the
modified code path.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
The example given in the help out of the list command seems random, not a valid time format for golang.
Signed-off-by: Mert Inan <inanme@gmail.com>
Signed-off-by: mert <mert.inan@sky.uk>
Ref: HIP 0008
When completing output formats, extra information will be shown
for shells that support completions (fish, zsh). For example:
$ helm status -o <TAB>
json -- Output result in JSON format
table -- Output result in human-readable format
yaml -- Output result in YAML format
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
Ref: HIP 0008
When completing a version, extra information will be shown for
shells that support completions (fish, zsh). For example:
$ helm upgrade nginx stable/grafana --version <TAB>
0.8.4 -- Created: March 30, 2018
0.8.5 -- App: 5.0.4, Created: April 10, 2018
1.0.0 -- App: 5.0.4, Created: April 11, 2018 (deprecated)
1.10.0 -- App: 5.1.2, Created: June 1, 2018
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
Ref: HIP 0008
When completing a revision, extra information will be shown for
shells that support completions (fish, zsh). For example:
$ helm get manifest nginx --revision <TAB>
1 -- App: 1.19.1, Chart: nginx-6.0.2
2 -- App: v0.34.1, Chart: nginx-ingress-1.41.2
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
Ref: HIP 0008
When completing a kube-context, extra information will be shown for
shells that support completions (fish, zsh). For example:
$ helm --kube-context <TAB>
acc -- accept
default -- k3d-k3s-default
lab -- lab
lab2 -- cluster.local
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
Ref: HIP 0008
When completing a plugin name, extra information will be shown for
shells that support completions (fish, zsh). For example:
$ helm plugin uninstall <TAB>
2to3 -- migrate and cleanup Helm v2 configuration and releases in-place to Helm v3
diff -- Preview helm upgrade changes as a diff
fullstatus -- provide status of resources part of the release
github -- Install or upgrade Helm charts from GitHub repos
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
Ref: HIP 0008
When completing a release name, extra information will be shown for
shells that support completions (fish, zsh). For example, if I have
two releases: "nginx" and "nginx2", completion would yield:
$ helm history n<TAB>
nginx -- nginx-6.0.2 -> deployed
nginx2 -- nginx-ingress-1.41.2 -> deployed
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
The 'plugin update' and 'plugin uninstall' commands can accept more than
one plugin name as arguments; this commit teaches the completion logic
to respect this.
Also, the commit adds go test for completion of the plugin commands.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
The "helm completion zsh" and "helm completion fish" commands accept the
"--no-descriptions" flag, therefore we should not disable the addition
of "[flags]" to the usage line when printing help.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
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>
The recent addition of oci:// to specify dependencies in the
Chart.yaml dependencies and with helm pull missed handling for the
dependency build command. This command was failing to handle OCI.
This change adds support for the dep build command following the
same pattern used to add oci:// functionality.
Signed-off-by: Matt Farina <matt@mattfarina.com>
* Reduce linting severity for users of out-of-date kubernetes
Fixes#8596
Signed-off-by: Joe Julian <me@joejulian.name>
* add more verbose deprecation info
Signed-off-by: Joe Julian <me@joejulian.name>
* use new upstream deprecations
Signed-off-by: Joe Julian <me@joejulian.name>
* do not error for custom resources
Signed-off-by: Joe Julian <me@joejulian.name>
* Define deprecation version in lint rules by LDFLAG
Signed-off-by: Joe Julian <me@joejulian.name>
* make comment clearer
Signed-off-by: Joe Julian <me@joejulian.name>
* Extend the k8s version discovery and constants to chartutil
Signed-off-by: Joe Julian <me@joejulian.name>
* remove awk dependency
Signed-off-by: Joe Julian <me@joejulian.name>
* align k8s version constant names between capabilities.go and deprecations.go
Signed-off-by: Joe Julian <me@joejulian.name>
* show the error if the unexpected happens
Signed-off-by: Joe Julian <me@joejulian.name>
* bump k8sVersionMinor and golden chart templates for k8s 1.20
Signed-off-by: Joe Julian <me@joejulian.name>
* bump for tests to match 1.20.1
Signed-off-by: Joe Julian <me@joejulian.name>
* Replace Helm Hub with Artifact Hub
Signed-off-by: Scott Rigby <scott@r6by.com>
* Update link to new doc entry for Monocular compatible search API
Signed-off-by: Scott Rigby <scott@r6by.com>
* Add struct for Artifact Hub data, and return correct URL for both artifact hub instances and backwards compatibility for Monocular search API
Signed-off-by: Scott Rigby <scott@r6by.com>
* Keep default endpoint hub.helm.sh, so the helm org controls the domain. At least until artifacthub moves to CNCF incubation
Signed-off-by: Scott Rigby <scott@r6by.com>
* Implement `helm dep update` for oci dependencies
* New unit tests
* Remove `helm chart pull` command
* New `helm pull` does not depend on registry cache
Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Note, klog is now set to v2. This is because k8s 1.19 uses klog v2.
v1.0.0, which was previously used, also had a bug in the flag
initialization which we were using. Helm was pulling klog v2.2.0
prior to this for use with k8s. Helm was using the wrong version
of the library to initialize the flags. Updating that fixes the
issues that could arise there.
Signed-off-by: Matt Farina <matt@mattfarina.com>
For backwards-compatibility, the generation of markdown headers is
only enabled through the --generate-headers flag.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
With the move to Cobra 1.1.1, all commands that have sub-commands
have file completion automatically disabled, so helm need not do it
itself.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
This fixes the error output to display the error's default value (the error message) rather than
Go's internal representation of its value.
Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>
helm repo add automatically creates a lockfile based on the repository config file path
When the given filepath did not include a file extension, a lockfile in a nonexistent directory
would have been created.
Signed-off-by: Leon Bentrup <4458913+xanecs@users.noreply.github.com>
Refer to the stderr manpage:
$ man 3 stderr
*Note that mixing use of FILEs and raw file descriptors can produce unexpected results and should generally be avoided.*
And actually, we noticed that the warning() will output the message to
stdout instead of stderr sometimes.
lizj@FNSTPC:~/workspace/k8s/helm$ while true; do timeout 1m go test -count=1 -run TestCheckPerms ./cmd/helm -v 2>/dev/null; done
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.028s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.027s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.028s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.029s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.029s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.028s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.030s
=== RUN TestCheckPerms
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /tmp/helmtest093620773/testconfig
=== RUN TestCheckPerms
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /tmp/helmtest083469215/testconfig
=== RUN TestCheckPerms
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /tmp/helmtest101343249/testconfig
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.032s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.040s
=== RUN TestCheckPerms
--- PASS: TestCheckPerms (0.00s)
PASS
ok helm.sh/helm/v3/cmd/helm 0.031s
=== RUN TestCheckPerms
WARNING: Kubernetes configuration file is group-readable. This is insecure. Location: /tmp/helmtest706352639/testconfig
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Remove klog flags from help text. No change to behavior.
```
...
Flags:
--debug enable verbose output
-h, --help help for helm
--kube-apiserver string the address and the port for the Kubernetes API server
--kube-context string name of the kubeconfig context to use
--kube-token string bearer token used for authentication
--kubeconfig string path to the kubeconfig file
-n, --namespace string namespace scope for this request
--registry-config string path to the registry config file (default "/Users/areese/.config/helm/registry.json")
--repository-cache string path to the file containing cached repository indexes (default "/Users/areese/.cache/helm/repository")
--repository-config string path to the file containing repository names and URLs (default "/Users/areese/.config/helm/repositories.yaml")
```
Signed-off-by: Adam Reese <adam@reese.io>
When #8779 was merged it introduced an issue with windows builds,
which we do not test for in PR CI. This change fixes that problem.
Signed-off-by: Matt Farina <matt@mattfarina.com>
A security issue fixed in 3.3.2 caught repos with the same name
being added a second time and produced an error. This caused an
issue for tools, such as helmfile, that will add the same name
with the same configuration multiple times.
This fix checks that the configuration on the existing and new
repo are the same. If there is no change it notes it and exists
with a 0 exit code. If there is a change the existing error is
returned (for reverse compat). If --force-update is given the
user opts in to changing the config for the name.
Closes#8771
Signed-off-by: Matt Farina <matt@mattfarina.com>
For backward compatibility, as suggested by @bacongobbler, we introduce
a new API NewTempServerWithCleanup
Signed-off-by: Li Zhijian <lizhijian@cn.fujitsu.com>
When helm template is called with `--skip-tests` no manifests
in tests directories are rendered. No matter if they have a
`"helm.sh/hook": test` annotation or not.
This helps to avoid rendering manifests which are only used for test
execution.
Closes#8691
Signed-off-by: Torsten Walter <mail@torstenwalter.de>
With Cobra 1.0, it is now possible to control when file completion
should or should not be done. For example:
helm list <TAB>
should not trigger file completion since 'helm list' does not accept
any arguments.
This commit disables file completion when appropriate and adds tests to
verify that file completion is properly disabled.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
When #8156 was merged it had the side effect that all hooks were
run all the time. All the hooks were put in the flow of the
content rendered and sent to Kubernetes on every command.
For example, if you ran the following 2 commands the test hooks
would run:
helm create foo
helm install foo ./foo
This should not run any hooks. But, the generated test hook is run.
The change in this commit moves the writing of the hooks to output
or disk back into the template command rather than in a private
function within the actions. This is where it was for v3.2.
One side effect is that post renderers will not work on hooks. This
was the case in v3.2. Since this bug is blocking the release of v3.3.0
it is being rolled back. A refactor effort is underway for this section
of code. post renderer for hooks should be added back as part of that
work. Since post renderer hooks did not make it into a release it
is ok to roll it back for now.
There is code in the cmd/helm package that has been duplicated from
pkg/action. This is a temporary measure to fix the immediate bug
with plans to correct the situation as part of a refactor
of renderResources.
Signed-off-by: Matt Farina <matt@mattfarina.com>
* fix(sdk): Polish the downloader/manager package error return
Close#8471
Signed-off-by: Dong Gang <dong.gang@daocloud.io>
* Modify the repositories validation function `resloveRepoNames` and add a
unit test.
Signed-off-by: Dong Gang <dong.gang@daocloud.io>
* Remove wrong commit
Signed-off-by: Dong Gang <dong.gang@daocloud.io>
No longer using the 'syscall' package, as further reading into this
issue has shown that 'syscall' is deprecated/locked down. Additional
issues posted on Golang's github indicates that the newer preferred
mechanism to get the file descriptor for stdin is: int(os.Stdin.Fd())
Signed-off-by: Jack Weldon <jack.weldon.scm@gmail.com>
Previously in Helm 2, 'helm repo add' would prompt for your password if
you only provided the --username flag. This helps prevent someone's
credentials from being logged in their shell's history, from showing
up in process lists, and from being seen by others nearby.
Closes#7174
Signed-off-by: Jack Weldon <jack.weldon.scm@gmail.com>
* fix(template):Issue:helm template with --output-dir doesn't write template with a hook to file
Close#7836
Signed-off-by: Dong Gang <dong.gang@daocloud.io>
* fix go file style
Signed-off-by: Dong Gang <dong.gang@daocloud.io>
* fix go file style
Signed-off-by: Dong Gang <dong.gang@daocloud.io>
The warnings introduced when a chart has been deprecated is displayed on standard out. This is a regression for users piping the output of `helm template` from a deprecated chart to `kubectl`. This changes the error message to display on standard error instead.
Signed-off-by: Matthew Fisher <matt.fisher@microsoft.com>