mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-12 01:14:22 +00:00
Refactor set
- Implement inline setters as OpenAPI extensions - Naming cleanup substitute -> set - Documentation cleanup - Simplify implementation
This commit is contained in:
39
kyaml/setters/addkio.go
Normal file
39
kyaml/setters/addkio.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user