Rename OverlayTranformer to PatchTransformer.

This commit is contained in:
jregan
2018-06-10 11:23:47 -07:00
parent 4f3f76addd
commit d06620c74d
4 changed files with 33 additions and 33 deletions

View File

@@ -230,7 +230,7 @@ func (a *applicationImpl) subApp() ([]Application, error) {
func (a *applicationImpl) newTransformer(patches []*resource.Resource) (transformers.Transformer, error) {
ts := []transformers.Transformer{}
ot, err := transformers.NewOverlayTransformer(patches)
ot, err := transformers.NewPatchTransformer(patches)
if err != nil {
return nil, err
}

View File

@@ -29,33 +29,33 @@ import (
"k8s.io/client-go/kubernetes/scheme"
)
// overlayTransformer contains a map of overlay objects
type overlayTransformer struct {
overlay []*resource.Resource
// patchTransformer applies patches.
type patchTransformer struct {
patches []*resource.Resource
}
var _ Transformer = &overlayTransformer{}
var _ Transformer = &patchTransformer{}
// NewOverlayTransformer constructs a overlayTransformer.
func NewOverlayTransformer(overlay []*resource.Resource) (Transformer, error) {
if len(overlay) == 0 {
// NewPatchTransformer constructs a patchTransformer.
func NewPatchTransformer(slice []*resource.Resource) (Transformer, error) {
if len(slice) == 0 {
return NewNoOpTransformer(), nil
}
return &overlayTransformer{overlay}, nil
return &patchTransformer{slice}, nil
}
// Transform apply the overlay on top of the base resources.
func (o *overlayTransformer) Transform(baseResourceMap resmap.ResMap) error {
// Transform apply the patches on top of the base resources.
func (pt *patchTransformer) Transform(baseResourceMap resmap.ResMap) error {
// Merge and then index the patches by Id.
overlays, err := o.mergePatches()
patches, err := pt.mergePatches()
if err != nil {
return err
}
// Strategic merge the resources exist in both base and overlay.
for _, overlay := range overlays {
// Merge overlay with base resource.
id := overlay.Id()
// Strategic merge the resources exist in both base and patches.
for _, patch := range patches {
// Merge patches with base resource.
id := patch.Id()
base, found := baseResourceMap[id]
if !found {
return fmt.Errorf("failed to find an object with %#v to apply the patch", id.Gvk())
@@ -70,7 +70,7 @@ func (o *overlayTransformer) Transform(baseResourceMap resmap.ResMap) error {
if err != nil {
return err
}
patchBytes, err := json.Marshal(overlay)
patchBytes, err := json.Marshal(patch)
if err != nil {
return err
}
@@ -95,7 +95,7 @@ func (o *overlayTransformer) Transform(baseResourceMap resmap.ResMap) error {
}
merged, err = strategicpatch.StrategicMergeMapPatchUsingLookupPatchMeta(
base.Object,
overlay.Object,
patch.Object,
lookupPatchMeta)
if err != nil {
return err
@@ -109,9 +109,9 @@ func (o *overlayTransformer) Transform(baseResourceMap resmap.ResMap) error {
// mergePatches merge and index patches by Id.
// It errors out if there is conflict between patches.
func (o *overlayTransformer) mergePatches() (resmap.ResMap, error) {
func (pt *patchTransformer) mergePatches() (resmap.ResMap, error) {
rc := resmap.ResMap{}
for ix, patch := range o.overlay {
for ix, patch := range pt.patches {
id := patch.Id()
existing, found := rc[id]
if !found {
@@ -138,7 +138,7 @@ func (o *overlayTransformer) mergePatches() (resmap.ResMap, error) {
return nil, err
}
if conflict {
conflictingPatch, err := cd.findConflict(ix, o.overlay)
conflictingPatch, err := cd.findConflict(ix, pt.patches)
if err != nil {
return nil, err
}

View File

@@ -53,7 +53,7 @@ func TestOverlayRun(t *testing.T) {
},
}),
}
overlay := []*resource.Resource{
patch := []*resource.Resource{
resource.NewResourceFromMap(map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -120,7 +120,7 @@ func TestOverlayRun(t *testing.T) {
},
}),
}
lt, err := NewOverlayTransformer(overlay)
lt, err := NewPatchTransformer(patch)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -157,7 +157,7 @@ func TestMultiplePatches(t *testing.T) {
},
}),
}
overlay := []*resource.Resource{
patch := []*resource.Resource{
resource.NewResourceFromMap(map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -250,7 +250,7 @@ func TestMultiplePatches(t *testing.T) {
},
}),
}
lt, err := NewOverlayTransformer(overlay)
lt, err := NewPatchTransformer(patch)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -287,7 +287,7 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
},
}),
}
overlay := []*resource.Resource{
patch := []*resource.Resource{
resource.NewResourceFromMap(map[string]interface{}{
"apiVersion": "apps/v1",
"kind": "Deployment",
@@ -336,7 +336,7 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
),
}
lt, err := NewOverlayTransformer(overlay)
lt, err := NewPatchTransformer(patch)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -366,7 +366,7 @@ func TestNoSchemaOverlayRun(t *testing.T) {
},
}),
}
overlay := []*resource.Resource{
patch := []*resource.Resource{
resource.NewResourceFromMap(map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",
@@ -399,7 +399,7 @@ func TestNoSchemaOverlayRun(t *testing.T) {
}),
}
lt, err := NewOverlayTransformer(overlay)
lt, err := NewPatchTransformer(patch)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -429,7 +429,7 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
},
}),
}
overlay := []*resource.Resource{
patch := []*resource.Resource{
resource.NewResourceFromMap(map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",
@@ -483,7 +483,7 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
}),
}
lt, err := NewOverlayTransformer(overlay)
lt, err := NewPatchTransformer(patch)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
@@ -513,7 +513,7 @@ func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
},
}),
}
overlay := []*resource.Resource{
patch := []*resource.Resource{
resource.NewResourceFromMap(map[string]interface{}{
"apiVersion": "example.com/v1",
"kind": "Foo",
@@ -541,7 +541,7 @@ func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
}),
}
lt, err := NewOverlayTransformer(overlay)
lt, err := NewPatchTransformer(patch)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}