mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
address comments
This commit is contained in:
@@ -54,7 +54,7 @@ func (c *copier) VisitList(s walk.Sources, _ *openapi.ResourceSchema, _ walk.Lis
|
||||
origin := originItems[i]
|
||||
|
||||
if dest.Value == origin.Value {
|
||||
// We should do it recursively on each node in the list.
|
||||
// We copy the comments recursively on each node in the list.
|
||||
if err := CopyComments(yaml.NewRNode(dest), yaml.NewRNode(origin)); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -52,10 +52,7 @@ var _ Writer = ByteWriter{}
|
||||
|
||||
func (w ByteWriter) Write(inputNodes []*yaml.RNode) error {
|
||||
// Copy the nodes to prevent writer from mutating the original nodes.
|
||||
var nodes []*yaml.RNode
|
||||
for i := range inputNodes {
|
||||
nodes = append(nodes, inputNodes[i].Copy())
|
||||
}
|
||||
nodes := copyRNodes(inputNodes)
|
||||
yaml.DoSerializationHacksOnNodes(nodes)
|
||||
if w.Sort {
|
||||
if err := kioutil.SortNodes(nodes); err != nil {
|
||||
@@ -135,8 +132,15 @@ func (w ByteWriter) Write(inputNodes []*yaml.RNode) error {
|
||||
for i := range nodes {
|
||||
items.Content = append(items.Content, nodes[i].YNode())
|
||||
}
|
||||
err := encoder.Encode(doc)
|
||||
return err
|
||||
return encoder.Encode(doc)
|
||||
}
|
||||
|
||||
func copyRNodes(in []*yaml.RNode) []*yaml.RNode {
|
||||
out := make([]*yaml.RNode, len(in))
|
||||
for i := range in {
|
||||
out[i] = in[i].Copy()
|
||||
}
|
||||
return out
|
||||
}
|
||||
|
||||
// shouldJSONEncodeSingleBareNode determines if nodes contain a single node that should not be
|
||||
|
||||
@@ -91,6 +91,127 @@ a: b #first
|
||||
`,
|
||||
},
|
||||
|
||||
//
|
||||
// Test Case
|
||||
//
|
||||
{
|
||||
name: "handle_comments",
|
||||
items: []string{
|
||||
`# comment 0
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: my-nginx
|
||||
namespace: my-space
|
||||
labels:
|
||||
env: dev
|
||||
foo: bar
|
||||
spec:
|
||||
# comment 1
|
||||
replicas: 3
|
||||
selector:
|
||||
# comment 2
|
||||
matchLabels: # comment 3
|
||||
# comment 4
|
||||
app: nginx # comment 5
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
# comment 6
|
||||
containers:
|
||||
# comment 7
|
||||
- name: nginx
|
||||
image: nginx:1.14.2 # comment 8
|
||||
ports:
|
||||
# comment 9
|
||||
- containerPort: 80 # comment 10
|
||||
`,
|
||||
`apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: my-service
|
||||
spec:
|
||||
ports:
|
||||
# comment 1
|
||||
- name: etcd-server-ssl
|
||||
port: 2380
|
||||
# comment 2
|
||||
- name: etcd-client-ssl
|
||||
port: 2379
|
||||
`,
|
||||
`apiVersion: constraints.gatekeeper.sh/v1beta1
|
||||
kind: EnforceFoo
|
||||
metadata:
|
||||
name: enforce-foo
|
||||
spec:
|
||||
parameters:
|
||||
naming_rules:
|
||||
- kind: Folder
|
||||
patterns:
|
||||
# comment 1
|
||||
- ^(dev|prod|staging|qa|shared)$
|
||||
`,
|
||||
},
|
||||
expectedOutput: `# comment 0
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: my-nginx
|
||||
namespace: my-space
|
||||
labels:
|
||||
env: dev
|
||||
foo: bar
|
||||
spec:
|
||||
# comment 1
|
||||
replicas: 3
|
||||
selector:
|
||||
# comment 2
|
||||
matchLabels: # comment 3
|
||||
# comment 4
|
||||
app: nginx # comment 5
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
# comment 6
|
||||
containers:
|
||||
# comment 7
|
||||
- name: nginx
|
||||
image: nginx:1.14.2 # comment 8
|
||||
ports:
|
||||
# comment 9
|
||||
- containerPort: 80 # comment 10
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: my-service
|
||||
spec:
|
||||
ports:
|
||||
# comment 1
|
||||
- name: etcd-server-ssl
|
||||
port: 2380
|
||||
# comment 2
|
||||
- name: etcd-client-ssl
|
||||
port: 2379
|
||||
---
|
||||
apiVersion: constraints.gatekeeper.sh/v1beta1
|
||||
kind: EnforceFoo
|
||||
metadata:
|
||||
name: enforce-foo
|
||||
spec:
|
||||
parameters:
|
||||
naming_rules:
|
||||
- kind: Folder
|
||||
patterns:
|
||||
# comment 1
|
||||
- ^(dev|prod|staging|qa|shared)$
|
||||
`,
|
||||
},
|
||||
|
||||
//
|
||||
// Test Case
|
||||
//
|
||||
|
||||
@@ -420,8 +420,8 @@ spec:
|
||||
image: nginx:1.7.9
|
||||
# this is a container
|
||||
ports:
|
||||
- # this is a port
|
||||
containerPort: 80
|
||||
# this is a port
|
||||
- containerPort: 80
|
||||
`
|
||||
s, err := FormatInput(strings.NewReader(y))
|
||||
assert.NoError(t, err)
|
||||
|
||||
@@ -40,6 +40,7 @@ func DoSerializationHacks(node *yaml.Node) {
|
||||
}
|
||||
node.Content[0].HeadComment = ""
|
||||
}
|
||||
DoSerializationHacks(node)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user