diff --git a/pkg/client/clientcmd/loader.go b/pkg/client/clientcmd/loader.go index 0b5ad460b66..a75ea25e9f9 100644 --- a/pkg/client/clientcmd/loader.go +++ b/pkg/client/clientcmd/loader.go @@ -183,7 +183,12 @@ func LoadFromFile(filename string) (*clientcmdapi.Config, error) { // Load takes a byte slice and deserializes the contents into Config object. // Encapsulates deserialization without assuming the source is a file. func Load(data []byte) (*clientcmdapi.Config, error) { - config := &clientcmdapi.Config{} + config := clientcmdapi.NewConfig() + // if there's no data in a file, return the default object instead of failing (DecodeInto reject empty input) + if len(data) == 0 { + return config, nil + } + if err := clientcmdlatest.Codec.DecodeInto(data, config); err != nil { return nil, err }