There are some places where releases are only located if they are in the
state DEPLOYED. That particular logic was incorrectly used for upgrades.
That caused #1566. While fixing that issue, I found that this was also
the root cause of #1587 (though because it was off by one). I added a
generic method to get the last release, regardless of its status.
This allows some behaviors that previously failed:
- 'helm upgrade' can now be performed on a DELETED release
- 'helm rollback' can now be performed on a DELETED release even if
there is only one revision of that release history.
Closes#1566Closes#1587
If a 'command:' is not found for a plugin, it will not result in an
ExitError, but in a PathError. This prevents that condition from
panicing.
Closes#1609
Normalize URLs before comparing them. This deviates slightly from the
URL spec, but in order to accomodate the predominant use pattern for
Helm. Specifically, './', '../', and '/' are all "interpreted" to be
filepath-like.
Closes#1588
This adds a hidden 'helm doc' command that generates documentation out
of the Helm help text.
Currently it can create:
- man pages for HELM(1)
- Markdown documentation
- bash autocompletions
Those are the three built-ins for Cobra.
The command is hidden so that it doesn't show up to the regular user,
since this is really a specialized task. It has the advantage of making
it trivially easy to install man pages and bash completion at installation time.
There were several places where an invalid name could be interpreted
into a wild-card by Kubernetes. That allows Bad Things.
This fix requires names to match the Kubernetes pattern for naming.
Closes#1594
This fixes the port forward connection using helm on windows by assigning explicitely 'localhost' to 'TillerHost' in 'setupConnection'. Otherwise, the connection between the helm client with the Tiller server deployed on Kubernetes will not work.
A bug in the semver package caused prereleases to be included in
version ranges by default. Prereleases, per the spec, are not
expected to be API compatible with the releases themselves.
The semver package now ignores prereleases when evaluating
constraints when the constraint does not contain a prerelease. If
the constraint contains a prerelease they are evaluated.