Skip to content

Commit

Permalink
Merge pull request #4018 from phanimarupaka/DontAddFormatTags
Browse files Browse the repository at this point in the history
Handle null values while formatting
  • Loading branch information
k8s-ci-robot authored Jun 28, 2021
2 parents dac84d8 + 1aa7a1e commit 276d043
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 0 deletions.
49 changes: 49 additions & 0 deletions kyaml/kio/filters/fmtr_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1048,3 +1048,52 @@ metadata:
})
}
}

func TestFormatInput_NullCases(t *testing.T) {
y := `
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: null
spec:
selector:
app: nginx
ports:
- name: http
port: 80
targetPort: ~
nodePort: null
allocateLoadBalancerNodePorts: null
`

// keep the style on values that parse as non-string types
expected := `apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: null
spec:
selector:
app: nginx
ports:
- name: http
port: 80
targetPort: ~
nodePort: null
allocateLoadBalancerNodePorts: null
`

buff := &bytes.Buffer{}
err := kio.Pipeline{
Inputs: []kio.Reader{&kio.ByteReader{Reader: strings.NewReader(y)}},
Filters: []kio.Filter{FormatFilter{
UseSchema: true,
}},
Outputs: []kio.Writer{kio.ByteWriter{Writer: buff}},
}.Execute()
assert.NoError(t, err)
assert.Equal(t, expected, buff.String())
}
8 changes: 8 additions & 0 deletions kyaml/yaml/compatibility.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,14 @@ func FormatNonStringStyle(node *Node, schema spec.Schema) {
default:
return
}

// if the node tag is null, make sure we don't add any non-null tags
// https://github.com/GoogleContainerTools/kpt/issues/2321
if node.Tag == NodeTagNull {
// must NOT quote null values
node.Style = 0
return
}
if tag, found := typeToTag[t]; found {
// make sure the right tag is set
node.Tag = tag
Expand Down

0 comments on commit 276d043

Please sign in to comment.