Trim trailing spaces and tabs from config map files

This commit is contained in:
Phani Teja Marupaka
2020-01-02 10:28:03 -08:00
parent 3577a7e174
commit fa8f504ff4
3 changed files with 26 additions and 7 deletions

View File

@@ -153,9 +153,9 @@ FRUIT=banana
LEGUME=chickpea LEGUME=chickpea
`) `)
th.WriteF("/app/overlay/configmap/dummy.txt", th.WriteF("/app/overlay/configmap/dummy.txt",
`Lorem ipsum dolor sit amet, consectetur `Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. incididunt ut labore et dolore magna aliqua.
`) `)
th.WriteF("/app/overlay/deployment/deployment.yaml", ` th.WriteF("/app/overlay/deployment/deployment.yaml", `
apiVersion: apps/v1 apiVersion: apps/v1
@@ -292,8 +292,10 @@ metadata:
--- ---
apiVersion: v1 apiVersion: v1
data: data:
nonsense: "Lorem ipsum dolor sit amet, consectetur\nadipiscing elit, sed do eiusmod nonsense: |
tempor\nincididunt ut labore et dolore magna aliqua. \n" Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua.
kind: ConfigMap kind: ConfigMap
metadata: metadata:
annotations: annotations:
@@ -302,6 +304,6 @@ metadata:
app: mungebot app: mungebot
org: kubernetes org: kubernetes
repo: test-infra repo: test-infra
name: test-infra-app-config-f462h769f9 name: test-infra-app-config-4mt28b5bg2
`) `)
} }

View File

@@ -9,6 +9,7 @@ import (
"fmt" "fmt"
"os" "os"
"path" "path"
"regexp"
"strings" "strings"
"unicode" "unicode"
"unicode/utf8" "unicode/utf8"
@@ -85,11 +86,17 @@ func (kvl *loader) keyValuesFromFileSources(sources []string) ([]types.Pair, err
if err != nil { if err != nil {
return nil, err return nil, err
} }
kvs = append(kvs, types.Pair{Key: k, Value: string(content)}) kvs = append(kvs, types.Pair{Key: k, Value: kvl.trimTrailingSpacesInLines(string(content))})
} }
return kvs, nil return kvs, nil
} }
// Takes string with multiple lines and trims the trailing white spaces from each line.
func (kvl *loader) trimTrailingSpacesInLines(str string) string {
re := regexp.MustCompile(`\s*\n`)
return re.ReplaceAllString(str, "\n")
}
func (kvl *loader) keyValuesFromEnvFiles(paths []string) ([]types.Pair, error) { func (kvl *loader) keyValuesFromEnvFiles(paths []string) ([]types.Pair, error) {
var kvs []types.Pair var kvs []types.Pair
for _, p := range paths { for _, p := range paths {

View File

@@ -95,3 +95,13 @@ func TestKeyValuesFromFileSources(t *testing.T) {
} }
} }
} }
func TestTrimTrailingSpacesInLines(t *testing.T) {
kvl := makeKvLoader(filesys.MakeFsInMemory())
input := "\"fooKey\": \"fooValue\" \t\n\t\"barKey\": \"barValue\""
expected := "\"fooKey\": \"fooValue\"\n\t\"barKey\": \"barValue\""
res := kvl.trimTrailingSpacesInLines(input)
if !reflect.DeepEqual(res, expected) {
t.Errorf("Trim trailing spaces in lines should succeed, got: %s exptected: %s", res, expected)
}
}