If a release has been deleted, `install --replace` will work but the release
status will still be "deleted". This means that subsequest attempts to
change the release will fail. Upgrading the release instead will prevent
such zombie releases.
Closes#1131
This modifies `helm status` to return info about deleted and failed
releases. We do our best to retrieve info for releases that were
partially deployed.
This adds support for the following 'helm list' flags:
- all: show all release types
- deleted: show deleted releases
- deployed: show deployed releases
- failed: show failed releases
These flags can be toggled. Only '--deployed' is turned on by default.
On the server side, Tiller's list function can now filter based on a
slice of release.Status_Code filters. While the client only supports a
subset, the server supports all known release.Status_Code types.
Closes#973
This limits the number of characters in a release name to 14. This
preserves 10 characters for customizing the `name:` field in charts.
Relates to #1071
This commit adds an Update function to the client.
The Update function takes in the modified manifests and
the original manifests. It then iterates through the modified
objects, creates objects not found in kubernetes, and updates
objects that exists but have been modified. Finally, it
iterates through the original resources and checks to see if
they have been deleted in the modified configuration and then
proceeds to delete them. #690
This removes partials and empty manifests during the sortHooks
operation. Doing so makes sortHooks the defacto place for sorting
manifests, hooks, and partials.
Closes#991
This stops a repeat deletion from sending requests all the way to
Kubernetes, and gives a clear error message when a deletion is requested
on an already deleted resource.
Relates to #972
This makes the template system less tolerant in the name of detecting
YAML parse errors before things are sent to Kubernetes. It returns a
more detailed error message when a template creates a manifest which is
not valid YAML.
Closes#957
This includes a substantial bit of unit test improvements. Also, in
order to allow us to tests command line args (which translate to
helm.Option objects), I had to add a new interface to pkg/helm.
Template paths were relative to the chart that contained them, which
meant that all templates were named 'template/SOMETHING'. This made it
trivially easy to hit namespace collisions as in #933.
Template path names are essentially opaque strings so this patch simply
changes them to be qualified by parent chart.
When a release failed, the release record was not saved. That led to the
case where Kubernetes resources were deployed, but the release that
deployed them was not tracked.
To fix, we now save the release on failure. The 'helm delete' operation
can delete failed resources.
Closes#851
This is a minor fix to the Tiller internals to allow an alternate
template engine. This will still require future work to make it possible
to bootstrap in a different template renderer.
Previously, paging used the last release name of the current set to ask
for more results. Now switched to using the first name of the next set.
Not sure I like this method. It makes the user experience more
complicated.
This adds support for filtering list results. Filter strings are
passed from Helm to Tiller, where they are compiled as regular
expressions and executed against the list of releases. Only matching
releases are returned.
Filters are applied before limits and sorts.
This commit finally ties `helm install` together with the Kubernetes
client library to make an end-to-end trip.
There were several small fixes to go on both client and server side,
along with some changes to proto to support better error reporting.
The alpine chart has been updated to exhibit how the new Helm works.
This adds support for dry run on install, as well as providing
enough info for an install to display (verbose) manifests. While
doing this, I ended up just storing the rendered manifests for
simplicity.