Merge pull request #2265 from pwittrock/merge3

Setters: support for setting string list fields
This commit is contained in:
Kubernetes Prow Robot
2020-03-17 09:44:30 -07:00
committed by GitHub
13 changed files with 320 additions and 57 deletions

View File

@@ -14,9 +14,9 @@ import (
// typeToTag maps OpenAPI schema types to yaml 1.2 tags
var typeToTag = map[string]string{
"string": "!!str",
"integer": "!!int",
"boolean": "!!bool",
"string": StringTag,
"integer": IntTag,
"boolean": BoolTag,
"number": "!!float",
}

View File

@@ -3,7 +3,9 @@
package yaml
import "gopkg.in/yaml.v3"
import (
"gopkg.in/yaml.v3"
)
// AnnotationClearer removes an annotation at metadata.annotations.
// Returns nil if the annotation or field does not exist.
@@ -33,7 +35,7 @@ type AnnotationSetter struct {
func (s AnnotationSetter) Filter(rn *RNode) (*RNode, error) {
// some tools get confused about the type if annotations are not quoted
v := NewScalarRNode(s.Value)
v.YNode().Tag = "!!str"
v.YNode().Tag = StringTag
v.YNode().Style = yaml.SingleQuotedStyle
return rn.Pipe(
PathGetter{Path: []string{"metadata", "annotations"}, Create: yaml.MappingNode},
@@ -80,7 +82,7 @@ type LabelSetter struct {
func (s LabelSetter) Filter(rn *RNode) (*RNode, error) {
// some tools get confused about the type if labels are not quoted
v := NewScalarRNode(s.Value)
v.YNode().Tag = "!!str"
v.YNode().Tag = StringTag
v.YNode().Style = yaml.SingleQuotedStyle
return rn.Pipe(
PathGetter{Path: []string{"metadata", "labels"}, Create: yaml.MappingNode},

View File

@@ -588,6 +588,12 @@ func (rn *RNode) VisitFields(fn func(node *MapNode) error) error {
return nil
}
const (
StringTag = "!!str"
BoolTag = "!!bool"
IntTag = "!!int"
)
// Elements returns the list of elements in the RNode.
// Returns an error for non-SequenceNodes.
func (rn *RNode) Elements() ([]*RNode, error) {