Refactor set

- Implement inline setters as OpenAPI extensions
- Naming cleanup substitute -> set
- Documentation cleanup
- Simplify implementation
This commit is contained in:
Phillip Wittrock
2020-01-01 22:06:18 -08:00
parent 3bef339186
commit b37abbf057
28 changed files with 934 additions and 1265 deletions

39
kyaml/setters/addkio.go Normal file
View File

@@ -0,0 +1,39 @@
// Copyright 2019 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package setters
import (
"sigs.k8s.io/kustomize/kyaml/kio"
"sigs.k8s.io/kustomize/kyaml/yaml"
)
var _ kio.Filter = &CreateSetter{}
// CreateSetter creates a custom setter as an OpenAPI property through a comment
type CreateSetter struct {
// customFieldSetter is the marker to set
SetPartialField customFieldSetter
// ResourceMeta defines the Resource to set the marker on
ResourceMeta yaml.ResourceMeta
}
func (s *CreateSetter) Filter(input []*yaml.RNode) ([]*yaml.RNode, error) {
for i := range input {
m, err := input[i].GetMeta()
if err != nil {
return nil, err
}
if s.ResourceMeta.Name != "" && m.Name != s.ResourceMeta.Name {
continue
}
if s.ResourceMeta.Kind != "" && m.Kind != s.ResourceMeta.Kind {
continue
}
if err := input[i].PipeE(&s.SetPartialField); err != nil {
return nil, err
}
}
return input, nil
}