mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Handle null values while formatting
This commit is contained in:
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user