Because the 'settings' variable is a pointer, it cannot be used to store
the original envSettings and then restore them.
Instead, this commit creates an entirely new envSettings, after having
set the environment variables, which may affect it.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
The completion of charts was using 'helm search repo' which can be
quite slow as it must parse the entire yaml of every repo cache file.
Using completion for a chart name can end up triggering multiple calls
to 'helm search'; this makes the user experience poor, as there is
a delay of over a second at every <TAB> press.
This commit creates a cache file for each repo which contains the list
of charts for that repo. The completion logic then uses this new
cache file directly and obtains the chart names very quickly.
With only the stable repo configured, this optimization makes the
completion of charts about 85 times faster, going from 1.2 seconds to
0.014 seconds; such a difference gives a much better user experience
when completing chart names.
On the other hand, adding the creation of the chart list cache file to
'helm repo update' or 'helm repo add' is pretty much negligible compared
to the downloading of the index file.
It is also worth noting that when more repos are configured,
'helm search repo' only becomes slower, while the completion logic that
uses the new chart list cache file will not be affected as it only looks
for the single relevant repo file.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
* fix(cmd): Fixes logging on action conf init error
Errors relating to initializing the action config cause helm to exit silently,
except when in debug mode. This now emits the useful error.
Closes#6863
Signed-off-by: Jorge Gasca <jorge.ignacio.gasca@gmail.com>
* Remove unnecessary formatting of err struct
Signed-off-by: Jorge Gasca <jorge.ignacio.gasca@gmail.com>
* Include requirements.* as Files in APIVersionV1
Fixes#6974.
This ensures that when reading a Chart marked with APIVersion v1, we
maintain the behaviour of Helm v2 and include the requirements.yaml and
requirements.lock in the Files collection, and hence produce charts that
work correctly with Helm v2.
Signed-off-by: Paul "Hampy" Hampson <p_hampson@wargaming.net>
* Write out requirements.lock for APIVersion1 Charts
This keeps the on-disk format consistent after `helm dependency update`
of an APIVersion1 Chart.
Signed-off-by: Paul "Hampy" Hampson <p_hampson@wargaming.net>
* Exclude 'dependencies' from APVersion1 Chart.yaml
This fixes `helm lint` against an APIVersion1 chart packaged with Helm
v3.
Signed-off-by: Paul "Hampy" Hampson <p_hampson@wargaming.net>
* Generate APIVersion v2 charts for dependency tests
As the generated chart contains no requirements.yaml in its files list,
but has dependencies in its metadata, it is not a valid APIVersion v1
chart.
Signed-off-by: Paul "Hampy" Hampson <p_hampson@wargaming.net>
* Generate APIVersion v2 charts for manager tests
Specifically for the charts that have dependencies, the generated chart
contains no requirements.yaml in its files but has dependencies in its
metadata. Hence it is not a valid APIVersion v1 chart.
Signed-off-by: Paul "Hampy" Hampson <p_hampson@wargaming.net>
When the unreleased tag was removed, some tests that were added after
the PR was created started failing. This fixes them.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
* fix(helm): add --description flag to 'helm install', 'helm upgrade', and 'helm uninstall'
When added, this flag allow us to add a custom description to the release. E.g. '--description "my custom description"'
Closes#7033
Signed-off-by: Juan Matias Kungfu de la Camara Beovide <juanmatias@gmail.com>
* fix(helm): fixed style issues on top of previous commit (3a43a9a487)
Closes#7033
Signed-off-by: Juan Matias Kungfu de la Camara Beovide <juanmatias@gmail.com>
* fix(helm): fixed wrong test issue on top of previous commit (3a43a9a)
Closes#7033
Signed-off-by: Juan Matias Kungfu de la Camara Beovide <juanmatias@gmail.com>
* docs(install): clarify the --replace flag
The description of the `--replace` flag was unclear, as it can’t be
used to replace active releases.
Signed-off-by: Remco Haszing <remcohaszing@gmail.com>
* docs(install): reword replace flag description
Signed-off-by: Remco Haszing <remcohaszing@gmail.com>
When calling a plugin, if a global flag requiring a parameter was
missing the parameter, helm would crash.
For example:
helm 2to3 --namespace<ENTER>
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
Before this change, running 'helm env' multiple times would generate
a different order for the output each time. This is because Go
purposely loops over hash maps in a random order.
This commit sorts the environment variables by alphabetical order before
generating the output.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
After discussing similar changes in #6866, we decided to make sure all
JSON and YAML output uses lower snake case names as is generally standard
Signed-off-by: Taylor Thomas <taylor.thomas@microsoft.com>
If a user has aliases commands that we use in the completion script
such as grep, cut, tail, it may cause the script to misbehave.
By escaping the commands, we tell the shell not to use any aliases.
Signed-off-by: Marc Khouzam <marc.khouzam@montreal.ca>
This is a follow up to discussion in #6663 that clarifies exactly what the
validate flag is doing. It isn't meant to be a generic schema validator, but
rather validates the manifests against the current cluster as if it was
going to be installing them.
Signed-off-by: Taylor Thomas <taylor.thomas@microsoft.com>