diff --git a/api/krusty/baseandoverlaymedium_test.go b/api/krusty/baseandoverlaymedium_test.go index 19bd3d8da..c207a18d2 100644 --- a/api/krusty/baseandoverlaymedium_test.go +++ b/api/krusty/baseandoverlaymedium_test.go @@ -153,9 +153,9 @@ FRUIT=banana LEGUME=chickpea `) th.WriteF("/app/overlay/configmap/dummy.txt", - `Lorem ipsum dolor sit amet, consectetur -adipiscing elit, sed do eiusmod tempor -incididunt ut labore et dolore magna aliqua. + `Lorem ipsum dolor sit amet, consectetur +adipiscing elit, sed do eiusmod tempor +incididunt ut labore et dolore magna aliqua. `) th.WriteF("/app/overlay/deployment/deployment.yaml", ` apiVersion: apps/v1 @@ -292,8 +292,10 @@ metadata: --- apiVersion: v1 data: - nonsense: "Lorem ipsum dolor sit amet, consectetur\nadipiscing elit, sed do eiusmod - tempor\nincididunt ut labore et dolore magna aliqua. \n" + nonsense: | + Lorem ipsum dolor sit amet, consectetur + adipiscing elit, sed do eiusmod tempor + incididunt ut labore et dolore magna aliqua. kind: ConfigMap metadata: annotations: @@ -302,6 +304,6 @@ metadata: app: mungebot org: kubernetes repo: test-infra - name: test-infra-app-config-f462h769f9 + name: test-infra-app-config-4mt28b5bg2 `) } diff --git a/api/kv/kv.go b/api/kv/kv.go index b887e583c..25a2e8476 100644 --- a/api/kv/kv.go +++ b/api/kv/kv.go @@ -9,6 +9,7 @@ import ( "fmt" "os" "path" + "regexp" "strings" "unicode" "unicode/utf8" @@ -85,11 +86,17 @@ func (kvl *loader) keyValuesFromFileSources(sources []string) ([]types.Pair, err if err != nil { return nil, err } - kvs = append(kvs, types.Pair{Key: k, Value: string(content)}) + kvs = append(kvs, types.Pair{Key: k, Value: trimTrailingSpacesInLines(string(content))}) } return kvs, nil } +// trimTrailingSpacesInLines takes string with multiple lines and trims the trailing white spaces and tabs from each line. +func trimTrailingSpacesInLines(str string) string { + re := regexp.MustCompile(`\s*\n`) + return re.ReplaceAllString(str, "\n") +} + func (kvl *loader) keyValuesFromEnvFiles(paths []string) ([]types.Pair, error) { var kvs []types.Pair for _, p := range paths { diff --git a/api/kv/kv_test.go b/api/kv/kv_test.go index bc362adce..25b628197 100644 --- a/api/kv/kv_test.go +++ b/api/kv/kv_test.go @@ -95,3 +95,12 @@ func TestKeyValuesFromFileSources(t *testing.T) { } } } + +func TestTrimTrailingSpacesInLines(t *testing.T) { + input := "\"fooKey\": \"fooValue\" \t\n\t\"barKey\": \"barValue\"" + expected := "\"fooKey\": \"fooValue\"\n\t\"barKey\": \"barValue\"" + res := trimTrailingSpacesInLines(input) + if !reflect.DeepEqual(res, expected) { + t.Errorf("Trim trailing spaces in lines should succeed, got: %s exptected: %s", res, expected) + } +}