This change is an attempt to address the common problem of json number
unmarshalling where any number is converted into a float64 and
represented in a scientific notation on a marshall call. This behavior
breaks things like: chart versions and image tags if not converted to
yaml strings explicitly.
An example of this behavior: k8s failure to fetch an image tagged with a
big number like: $IMAGE:20190612073634 after a few steps of yaml
re-rendering turns into: $IMAGE:2.0190612073634e+13.
Example issue: https://github.com/helm/helm/issues/1707
This commit forces yaml parser to use JSON modifiers and explicitly
enables interface{} unmarshalling instead of float64. The change
introduced might be breaking so should be processed with an extra care.
Due to the fact helm mostly dals with human-produced data (charts), we
have a decent level of confidence this change looses no functionality
helm users rely upon (the scientific notation).
Relevant doc: https://golang.org/pkg/encoding/json/#Decoder.UseNumber
Signed-off-by: Oleg Sidorov <oleg.sidorov@booking.com>
- These are the capabilities as of k8s 1.14
- They are generated because getting them at runtime uses so much
memory it causes CI errors
Signed-off-by: Matt Farina <matt@mattfarina.com>
When an unexpected file format is provided for a chart archive, spend
some extra effort to provide the user with some meaningful feedback.
This is intended to help users who mistakenly invoke `helm template`
like this:
helm template values.yaml charts/mychart
This is a user error, and now we can report that the argument
`values.yaml` was expected to be a chart.
Fixes#5296
Signed-off-by: Jordan Sissel <jls@semicomplete.com>
- Add ability to test for nested non-existent keys
- Add test cases for nested null values
- Minimalist fix for nested null key test cases
- Add missing metadata to integration test
Signed-off-by: Adam Eijdenberg <adam.eijdenberg@digital.gov.au>
The 'app.kubernetes.io/version' label was not being rendered as
expected. It was appending onto the label before it and also
the next label label was appending onto it on the same line.
Signed-off-by: Martin Hickey <martin.hickey@ie.ibm.com>
Changes as per PR https://github.com/helm/helm/pull/5271
- make imagePullSecrets be an array
- move imagePullSecrets to 'root' level of Values
Signed-off-by: Don Bowman <db@donbowman.ca>
This relates to [#3529](https://github.com/helm/helm/issues/3529).
It adds image.pullSecret to the default generate blank chart
when the user does `helm create`.
Signed-off-by: Don Bowman <don@agilicus.com>
The lint command cannot parse a compressed chart with a pre-release
version, e.g. 0.1.0-alhpa: it errors out saying it cannot find the
Chart.yaml file. This is due to the way the lint command identifies the
chart dir name, i.e. using the last hyphen in the name of the compressed
file. Changing this method to using the name of the single directory
with the chart's name, as expected from decompressing a chart, allows
lint to parse pre-release charts.
Signed-off-by: Arash Deshmeh <adeshmeh@ca.ibm.com>
* fix: perform extra validation on paths in tar archives
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
* fix: Cover a few Windows cases and also remove a duplicate tar reader
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
* fix: removed debug output
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
* fix: Expand again preserves the files verbatim
Also added tests for Expand
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
* fix: add license block and remove println
Signed-off-by: Matt Butcher <matt.butcher@microsoft.com>
Enable to use charts with dependencies that have conditions (e.g. in
umbrella charts). Allow aliases for dependencies that have dependencies
with conditions.
Closes#3734
Signed-off-by: Christian Koeberl <christian.koeberl@gmail.com>