* 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
Erasing the scalar type tag leads to unfortunate circumstances, in that
the resulting yaml code is valid yaml, but will not meet the object
spec.
For example, using the replacement transformer to take a port number as
a string from a ConfigMap and set a Pod port would previously end up
with:
- containerPort: "8080"
when the spec requires that this is not a string:
- containerPort: 8080
Added unit tests for conversion to and from integers and booleans, plus
creation from string and creation from integer.
The creation behavior needs some refinement in a future PR.
Signed-off-by: Jim Ramsay <i.am@jimramsay.com>
* Fix image name parsing with name and digest
Image names may contain both tag name and digest. For example
`nginx:1.21.5@sha256:7826426c9d8d310c62fc68bcd5e8dde70cb39d4fbbd30eda3b1bd03e35fbde29`. Kustomizations with image transforms will not match
these image because the image parser assumes either a tag or digest, but not
both.
For a real life example of kuberenetes deployments that might need to perform
these types of transforms is from the [tekton-pipelines](https://github.com/tektoncd/pipeline) project (see the release.yaml).
* Return digest property from image name parser
image.Split now returns 3 fields: name, tag, and digest. The tag and digest
fields no longer include their respective delimiters (`:` and `@`).
* Fix merge file indentation
* Refactor imagetag updater string builder
This change updates the suffix filter to implement the TrackableFilter
interface. This provides the functionality for the user to track which
fields were updated by the suffix filter.
This change updates the replicacount filter to implement the
TrackableFilter interface. This provides the functionality for the
user to track which fields were updated by the replicacount filter.
This change updates the prefix filter to implement the TrackableFilter
interface. This provides the functionality for the user to track which
fields were updated by the prefix filter.
This change updates the namespace filter to implement the TrackableFilter
interface. This provides the functionality for the user to track which
fields were updated by the namespace filter.
This change provides a common test util for a mutation tracker stub.
This is intended to reduce the duplicated boilerplate as additional
filters implement the TrackableFilter interface.
The FieldPath was not being set for nodes underneath a SequenceNode
during fieldspec's traversal. This is in part because handleSequence
uses VisitElements in contrast to a PathGetter as is done by handleMap.
The accuracy of FieldPath is more relevant now with the recently added
support of mutation trackers in filtersutil. This change fixes the
case where a mutation tracker callback is called on a SequenceNode
element and the node does not have an accurate FieldPath value.
This change updates the imagetag filter to implement the TrackableFilter
interface. This provides the functionality for the user to track which
fields were updated by the imagetag filter.
This change refactors imagetag to reuse the abstraction provided by
filtersutil. This change is intended to make imagetag more consistent
with other filters by using the same layer of abstraction (filtersutil),
and to prepare for upcoming changes which are planned to be implemented
at the filtersutil layer.
* add kio filter interface
This interface is an extension of the Filter interface which can be used
for filters which are capable of tracking which fields they mutate.
* add TrackableSetter struct to filtersutil
This struct provides an abstraction to help Filters implement the
TrackableFilter interface
* implement TrackableFilter with annotations
This updates the annotations filter to implement the TrackableFilter
interface by reusing the TrackableSetter abstraction provided by
filtersutil.
This is done to provide a generic and consistent experience across the
filters
* implement TrackableFilter with labels
This updates the labels filter to implement the TrackableFilter
interface by reusing the TrackableSetter abstraction provided by
filtersutil.
This is done to provide a generic and consistent experience across the
filters
Add a configurable callback that is invoked each time a label is applied
by the labels filter. This is useful for scenarios such as tracking
labels as they are applied.
* Refactor prefix filter into its own filter, decoupled from the prefixsuffix filter
* Refactor prefix transformer into its own transformer, decoupled from the prefixsuffix transformer
* Refactor suffix filter into its own filter, decoupled from the prefixsuffix filter
* Refactor suffix transformer into its own transformer, decoupled from the prefixsuffix transformer
* Add a default nameSuffix field spec in addition to the namePrefix
* Remove the PrefixSuffixTransformer from the list of builtin transformers
* Add a multi-transformer to builtinhelpers.TransformFactories
* Remove the implementation of the prefixsuffixtransformer.PrefixSuffixTransformer
* Resolve style and format related feedback from the pull request
* Add test to test the legacy PrefixSuffixTransformer for BC purposes
Add a configurable callback that is invoked each time an
annotation is applied by the annotations filter. This is useful
for scenarios such as tracking annotations as they are applied.
Issues: GoogleContainerTools/kpt#2448
* Move api/filesys to kyaml/filesys
* Add deprecated version of api/filesys with aliases to new code
* Use new kyaml/filesys package and update dependencies
* Migrate to kyaml/filesys and update dependencies
* Skip tests that break on Windows