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]
|
origin := originItems[i]
|
||||||
|
|
||||||
if dest.Value == origin.Value {
|
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 {
|
if err := CopyComments(yaml.NewRNode(dest), yaml.NewRNode(origin)); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,10 +52,7 @@ var _ Writer = ByteWriter{}
|
|||||||
|
|
||||||
func (w ByteWriter) Write(inputNodes []*yaml.RNode) error {
|
func (w ByteWriter) Write(inputNodes []*yaml.RNode) error {
|
||||||
// Copy the nodes to prevent writer from mutating the original nodes.
|
// Copy the nodes to prevent writer from mutating the original nodes.
|
||||||
var nodes []*yaml.RNode
|
nodes := copyRNodes(inputNodes)
|
||||||
for i := range inputNodes {
|
|
||||||
nodes = append(nodes, inputNodes[i].Copy())
|
|
||||||
}
|
|
||||||
yaml.DoSerializationHacksOnNodes(nodes)
|
yaml.DoSerializationHacksOnNodes(nodes)
|
||||||
if w.Sort {
|
if w.Sort {
|
||||||
if err := kioutil.SortNodes(nodes); err != nil {
|
if err := kioutil.SortNodes(nodes); err != nil {
|
||||||
@@ -135,8 +132,15 @@ func (w ByteWriter) Write(inputNodes []*yaml.RNode) error {
|
|||||||
for i := range nodes {
|
for i := range nodes {
|
||||||
items.Content = append(items.Content, nodes[i].YNode())
|
items.Content = append(items.Content, nodes[i].YNode())
|
||||||
}
|
}
|
||||||
err := encoder.Encode(doc)
|
return encoder.Encode(doc)
|
||||||
return err
|
}
|
||||||
|
|
||||||
|
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
|
// 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
|
// Test Case
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -420,8 +420,8 @@ spec:
|
|||||||
image: nginx:1.7.9
|
image: nginx:1.7.9
|
||||||
# this is a container
|
# this is a container
|
||||||
ports:
|
ports:
|
||||||
- # this is a port
|
# this is a port
|
||||||
containerPort: 80
|
- containerPort: 80
|
||||||
`
|
`
|
||||||
s, err := FormatInput(strings.NewReader(y))
|
s, err := FormatInput(strings.NewReader(y))
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ func DoSerializationHacks(node *yaml.Node) {
|
|||||||
}
|
}
|
||||||
node.Content[0].HeadComment = ""
|
node.Content[0].HeadComment = ""
|
||||||
}
|
}
|
||||||
|
DoSerializationHacks(node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user