From 567532d74d500c5db359233edfab61ac194a4f30 Mon Sep 17 00:00:00 2001 From: Vladimir Zorin Date: Thu, 14 Mar 2019 13:36:26 +0200 Subject: [PATCH] Do not process empty yaml objects (fixes #222) --- pkg/deploy/controller.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/pkg/deploy/controller.go b/pkg/deploy/controller.go index 9a86d64981..1bf7dad2d5 100644 --- a/pkg/deploy/controller.go +++ b/pkg/deploy/controller.go @@ -251,6 +251,17 @@ func checksum(bytes []byte) string { return hex.EncodeToString(d[:]) } +func isEmptyYaml(yaml []byte) bool { + isEmpty := true + lines := bytes.Split(yaml, []byte("\n")) + for _, k := range lines { + if string(k) != "---" && !bytes.HasPrefix(k, []byte("#")) && string(k) != "" { + isEmpty = false + } + } + return isEmpty +} + func yamlToObjects(in io.Reader) ([]runtime.Object, error) { var result []runtime.Object reader := yamlDecoder.NewYAMLReader(bufio.NewReaderSize(in, 4096)) @@ -263,12 +274,14 @@ func yamlToObjects(in io.Reader) ([]runtime.Object, error) { return nil, err } - obj, err := toObjects(raw) - if err != nil { - return nil, err - } + if !isEmptyYaml(raw) { + obj, err := toObjects(raw) + if err != nil { + return nil, err + } - result = append(result, obj...) + result = append(result, obj...) + } } return result, nil @@ -279,6 +292,7 @@ func toObjects(bytes []byte) ([]runtime.Object, error) { if err != nil { return nil, err } + obj, _, err := unstructured.UnstructuredJSONScheme.Decode(bytes, nil, nil) if err != nil { return nil, err