Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chartutil.ReadValues unmarshals numbers into json.Number refs #1707 #6888

Commits on Apr 16, 2020

  1. chartutil.ReadValues unmarshals numbers into json.Number refs helm#1707

    This change is a second attempt to fix the aforementioned problem. The
    first one (helm#6032) caused a major regression in numeric values helm#6708.
    The new approach takes the experience of the failed attempt under
    consideration and introduces some deeper-level changes to the rendering
    engine. The proposed change overloads all defined template functions and
    converts json.Number arguments in runtime.
    
    The rest of the description is preserved from the original ticket:
    
    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: helm#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 <me@whitebox.io>
    Oleg Sidorov committed Apr 16, 2020
    Configuration menu
    Copy the full SHA
    d53993f View commit details
    Browse the repository at this point in the history