Start pluglib, a set of public, plugin specific functions.

This commit is contained in:
Jeffrey Regan
2019-10-14 17:52:40 -07:00
committed by jregan
parent 2fadb4dd59
commit 41a008e9a3
78 changed files with 280 additions and 329 deletions

View File

@@ -7,7 +7,6 @@ package main
import (
"fmt"
"sigs.k8s.io/kustomize/v3/pkg/ifc"
"sigs.k8s.io/kustomize/v3/pkg/resmap"
"sigs.k8s.io/kustomize/v3/pkg/resource"
"sigs.k8s.io/kustomize/v3/pkg/types"
@@ -15,8 +14,7 @@ import (
)
type plugin struct {
ldr ifc.Loader
rf *resmap.Factory
h *resmap.PluginHelpers
loadedPatches []*resource.Resource
Paths []types.PatchStrategicMerge `json:"paths,omitempty" yaml:"paths,omitempty"`
Patches string `json:"patches,omitempty" yaml:"patches,omitempty"`
@@ -26,9 +24,8 @@ type plugin struct {
var KustomizePlugin plugin
func (p *plugin) Config(
ldr ifc.Loader, rf *resmap.Factory, c []byte) (err error) {
p.ldr = ldr
p.rf = rf
h *resmap.PluginHelpers, c []byte) (err error) {
p.h = h
err = yaml.Unmarshal(c, p)
if err != nil {
return err
@@ -38,12 +35,13 @@ func (p *plugin) Config(
}
if len(p.Paths) != 0 {
for _, onePath := range p.Paths {
res, err := p.rf.RF().SliceFromBytes([]byte(onePath))
res, err := p.h.ResmapFactory().RF().SliceFromBytes([]byte(onePath))
if err == nil {
p.loadedPatches = append(p.loadedPatches, res...)
continue
}
res, err = p.rf.RF().SliceFromPatches(ldr, []types.PatchStrategicMerge{onePath})
res, err = p.h.ResmapFactory().RF().SliceFromPatches(
p.h.Loader(), []types.PatchStrategicMerge{onePath})
if err != nil {
return err
}
@@ -51,7 +49,7 @@ func (p *plugin) Config(
}
}
if p.Patches != "" {
res, err := p.rf.RF().SliceFromBytes([]byte(p.Patches))
res, err := p.h.ResmapFactory().RF().SliceFromBytes([]byte(p.Patches))
if err != nil {
return err
}
@@ -66,7 +64,7 @@ func (p *plugin) Config(
}
func (p *plugin) Transform(m resmap.ResMap) error {
patches, err := p.rf.MergePatches(p.loadedPatches)
patches, err := p.h.ResmapFactory().MergePatches(p.loadedPatches)
if err != nil {
return err
}

View File

@@ -8,8 +8,9 @@ import (
"strings"
"testing"
"sigs.k8s.io/kustomize/v3/pluglib"
"sigs.k8s.io/kustomize/v3/pkg/kusttest"
"sigs.k8s.io/kustomize/v3/pkg/plugins/testenv"
)
const (
@@ -59,7 +60,7 @@ spec:
)
func TestPatchStrategicMergeTransformerMissingFile(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -86,7 +87,7 @@ paths:
}
func TestBadPatchStrategicMergeTransformer(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -111,7 +112,7 @@ patches: 'thisIsNotAPatch'
}
func TestBothEmptyPatchStrategicMergeTransformer(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -134,7 +135,7 @@ metadata:
}
func TestPatchStrategicMergeTransformerFromFiles(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -184,7 +185,7 @@ spec:
}
func TestPatchStrategicMergeTransformerWithInlineJSON(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -219,7 +220,7 @@ spec:
}
func TestPatchStrategicMergeTransformerWithInlineYAML(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -271,7 +272,7 @@ spec:
}
func TestPatchStrategicMergeTransformerMultiplePatches(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -348,7 +349,7 @@ spec:
}
func TestStrategicMergeTransformerMultiplePatchesWithConflicts(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -409,7 +410,7 @@ paths:
}
func TestStrategicMergeTransformerWrongNamespace(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -452,7 +453,7 @@ paths:
}
func TestStrategicMergeTransformerNoSchema(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -492,7 +493,7 @@ spec:
}
func TestStrategicMergeTransformerNoSchemaMultiPatches(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -548,7 +549,7 @@ spec:
}
func TestStrategicMergeTransformerNoSchemaMultiPatchesWithConflict(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
@@ -884,7 +885,7 @@ func TestSinglePatch(t *testing.T) {
},
}
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
"builtin", "", "PatchStrategicMergeTransformer")
@@ -987,7 +988,7 @@ func TestMultiplePatches(t *testing.T) {
},
}
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
"builtin", "", "PatchStrategicMergeTransformer")
@@ -1118,7 +1119,7 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
},
}
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
"builtin", "", "PatchStrategicMergeTransformer")
@@ -1227,7 +1228,7 @@ func TestMultipleNamespaces(t *testing.T) {
},
}
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(
"builtin", "", "PatchStrategicMergeTransformer")
@@ -1249,7 +1250,7 @@ func TestMultipleNamespaces(t *testing.T) {
}
func TestPatchStrategicMergeTransformerPatchDelete(t *testing.T) {
tc := testenv.NewEnvForTest(t).Set()
tc := pluglib.NewEnvForTest(t).Set()
defer tc.Reset()
tc.BuildGoPlugin(