mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-13 01:50:55 +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:
|
default:
|
||||||
return
|
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 {
|
if tag, found := typeToTag[t]; found {
|
||||||
// make sure the right tag is set
|
// make sure the right tag is set
|
||||||
node.Tag = tag
|
node.Tag = tag
|
||||||
|
|||||||
Reference in New Issue
Block a user