From 74da91ce76dc67a7348a9c7d1e793261cb743ec1 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Mon, 29 Apr 2019 22:02:20 +0200 Subject: [PATCH 1/2] Fix error shadowing when parsing manifests This caused parsing errors in YAML files to go unnoticed (the files where simply not included in the result) --- cluster/kubernetes/resource/load.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cluster/kubernetes/resource/load.go b/cluster/kubernetes/resource/load.go index e5352783f..109b63600 100644 --- a/cluster/kubernetes/resource/load.go +++ b/cluster/kubernetes/resource/load.go @@ -140,7 +140,7 @@ func ParseMultidoc(multidoc []byte, source string) (map[string]KubeManifest, err // NOTE: gopkg.in/yaml.v3 supports round tripping comments // by using `gopkg.in/yaml.v3.Node`. var val interface{} - if err := decoder.Decode(&val); err != nil { + if err = decoder.Decode(&val); err != nil { break } bytes, err := yaml.Marshal(val) From ba650c05fbdc48e41a0ca50a3e6fe84ac2d17080 Mon Sep 17 00:00:00 2001 From: Alfonso Acosta Date: Mon, 29 Apr 2019 22:14:01 +0200 Subject: [PATCH 2/2] Add test --- cluster/kubernetes/resource/load_test.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cluster/kubernetes/resource/load_test.go b/cluster/kubernetes/resource/load_test.go index 0ea8facfa..ffffbe79f 100644 --- a/cluster/kubernetes/resource/load_test.go +++ b/cluster/kubernetes/resource/load_test.go @@ -142,6 +142,18 @@ metadata: assert.Len(t, resources, 1) } +func TestParseError(t *testing.T) { + doc := `--- +kind: ConfigMap +metadata: + name: bigmap # contains a tab at the beginning +` + buffer := bytes.NewBufferString(doc) + + _, err := ParseMultidoc(buffer.Bytes(), "test") + assert.Error(t, err) +} + func TestParseCronJob(t *testing.T) { doc := `--- apiVersion: batch/v1beta1