mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
e8381db778
* Update Kubernetes to v1.21.0 * Update to golang v1.16.2 * Update dependent modules to track with upstream * Switch to upstream flannel * Track changes to upstream cloud-controller-manager and FeatureGates Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
94 lines
2.4 KiB
Go
94 lines
2.4 KiB
Go
// Code generated by pluginator on PatchJson6902Transformer; DO NOT EDIT.
|
|
// pluginator {unknown 1970-01-01T00:00:00Z }
|
|
|
|
package builtins
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
jsonpatch "github.com/evanphx/json-patch"
|
|
"github.com/pkg/errors"
|
|
"sigs.k8s.io/kustomize/api/filters/patchjson6902"
|
|
"sigs.k8s.io/kustomize/api/ifc"
|
|
"sigs.k8s.io/kustomize/api/resmap"
|
|
"sigs.k8s.io/kustomize/api/types"
|
|
"sigs.k8s.io/yaml"
|
|
)
|
|
|
|
type PatchJson6902TransformerPlugin struct {
|
|
ldr ifc.Loader
|
|
decodedPatch jsonpatch.Patch
|
|
Target *types.Selector `json:"target,omitempty" yaml:"target,omitempty"`
|
|
Path string `json:"path,omitempty" yaml:"path,omitempty"`
|
|
JsonOp string `json:"jsonOp,omitempty" yaml:"jsonOp,omitempty"`
|
|
}
|
|
|
|
func (p *PatchJson6902TransformerPlugin) Config(
|
|
h *resmap.PluginHelpers, c []byte) (err error) {
|
|
p.ldr = h.Loader()
|
|
err = yaml.Unmarshal(c, p)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if p.Target.Name == "" {
|
|
return fmt.Errorf("must specify the target name")
|
|
}
|
|
if p.Path == "" && p.JsonOp == "" {
|
|
return fmt.Errorf("empty file path and empty jsonOp")
|
|
}
|
|
if p.Path != "" {
|
|
if p.JsonOp != "" {
|
|
return fmt.Errorf("must specify a file path or jsonOp, not both")
|
|
}
|
|
rawOp, err := p.ldr.Load(p.Path)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
p.JsonOp = string(rawOp)
|
|
if p.JsonOp == "" {
|
|
return fmt.Errorf("patch file '%s' empty seems to be empty", p.Path)
|
|
}
|
|
}
|
|
if p.JsonOp[0] != '[' {
|
|
// if it doesn't seem to be JSON, imagine
|
|
// it is YAML, and convert to JSON.
|
|
op, err := yaml.YAMLToJSON([]byte(p.JsonOp))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
p.JsonOp = string(op)
|
|
}
|
|
p.decodedPatch, err = jsonpatch.DecodePatch([]byte(p.JsonOp))
|
|
if err != nil {
|
|
return errors.Wrapf(err, "decoding %s", p.JsonOp)
|
|
}
|
|
if len(p.decodedPatch) == 0 {
|
|
return fmt.Errorf(
|
|
"patch appears to be empty; file=%s, JsonOp=%s", p.Path, p.JsonOp)
|
|
}
|
|
return err
|
|
}
|
|
|
|
func (p *PatchJson6902TransformerPlugin) Transform(m resmap.ResMap) error {
|
|
if p.Target == nil {
|
|
return fmt.Errorf("must specify a target for patch %s", p.JsonOp)
|
|
}
|
|
resources, err := m.Select(*p.Target)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
for _, res := range resources {
|
|
err = res.ApplyFilter(patchjson6902.Filter{
|
|
Patch: p.JsonOp,
|
|
})
|
|
if err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func NewPatchJson6902TransformerPlugin() resmap.TransformerPlugin {
|
|
return &PatchJson6902TransformerPlugin{}
|
|
}
|