• Oleg Sidorov's avatar
    chartutil.ReadValues is forced to unmarshal numbers into json.Number · 9014bd9c
    Oleg Sidorov authored
    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.UseNumberSigned-off-by: 's avatarOleg Sidorov <oleg.sidorov@booking.com>
    9014bd9c
coleridge.yaml 262 Bytes