• Matthew Fisher's avatar
    fix(helm): fix regression with TLS flags/environment variables not being parsed (#4657) · 8be42bae
    Matthew Fisher authored
    * fix(helm): fix regression with TLS flags/envvars
    
    This change fixes some of the assumptions made in an earlier commit. Helm's TLS flags and environment variables were not respected because they were parsed well before execution (during settings.AddFlagsTLS()), causing erroneous behaviour at runtime. By re-introducing environment.Init(), Helm can properly parse environment variables at the correct time.
    
    One change that had to occur in this PR is the fact that we need to call settings.Init() each time we call settings.AddFlagsTLS(). This is because each command owns its own FlagSet, so we need to parse each flagset to read and propagate the environment variables correctly.
    
    I also noticed that we were maintaining two separate variables for each TLS value. Refactoring out some of the older code to all use the settings object makes the code much cleaner to read and fixes an issue where setting a flag or environment variable would propagate to the settings object, but we'd be reading from tlsEnable.
    
    I've also added some unit tests to ensure this regression doesn't occur again.
    Signed-off-by: 's avatarMatthew Fisher <matt.fisher@microsoft.com>
    
    * fix bug where os.ExpandEnv() on the default value causes differing behaviour
    Signed-off-by: 's avatarMatthew Fisher <matt.fisher@microsoft.com>
    
    * add more context to the TODO/FIXME messages
    Signed-off-by: 's avatarMatthew Fisher <matt.fisher@microsoft.com>
    8be42bae
version.go 4.2 KB