* Ahead-of-time wildcard path expansion solution
* Wrapped PathGetter solution
This approach doesn't work when multiple existing sequence elements
should match, i.e. because the sequence contains maps and we're
searching on a key they all contain (target all containers with a certain
image would be one use case for this). PathGetter just takes the first
match in that case, which is not what we want.
* Add creation support to PathMatcher
* Regression test for existing bug when creation is enabled and sequence query should match multiple elements
* PathMatcher Create tests and support for sequence appending
* revert hyphen append support
PathGetter treats it as meaning 'last' not 'append' and does not have test coverage for its handling of this when create is set. Semantics are dubious given that multiple Replacement fieldPaths may be specified, which would cause successive appends.
* This also provides a solution to issue 1493
* Review feedback
* check tag values for double quoting
* reuse setentry
* don't override single quotes in merge and fix cm generator immutable val
* get rid of comment
* starlark annotation tests
* don't commit test image changes
* set network to bool
* isSet bool
* updating e2e config tool
* leave createtag
* fn command failing unmarshal test
* fn command test
* don't set style in run-fs
* use setentry to set tag
* remove e2e test changes and make IsStringValue an RNode method
* WIP
* Fix merge corner cases
* Add test for explicit !!merge tag
* Fix tests
* Cleanup
* Cleanup
* Fix deanchoring lists
* Add test case for keeping comments
* Add MapEntrySetter and fix json marshalling after deanchoring
* Keep duplicated keys
* Move MergeTag definition to yaml alias
* Remove go-spew from api
* Add support for sequence nodes on merge tags
* Add docstring to MapEntrySetter.Key
* Add docstring to MapEntrySetter struct
* Add tests to MapEntrySetter
* Fix duplicate merge key
* Revert whitespace changes on forked go-yaml
* Remove AssocMapEntry function
* Refactoring merge order
* Return errors on VisitFields and PipeE
* Add tests for each non-conforming map merges
dropping the node style creates a compatibility issue where quotes around "on" are dropped
because yaml.v3 interprets it as a string.
other yaml parsers interpret on as a bool value, and parse it as a bool rather than string.
fix: retain the original style so it is kept as quoted.
- fmt: don't drop the styles
- merge2: keep the style when merging elements
- setting a field: if changing the value of a scalar field, retain its style by default