mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 09:02:53 +00:00
Rename OverlayTranformer to PatchTransformer.
This commit is contained in:
@@ -230,7 +230,7 @@ func (a *applicationImpl) subApp() ([]Application, error) {
|
|||||||
func (a *applicationImpl) newTransformer(patches []*resource.Resource) (transformers.Transformer, error) {
|
func (a *applicationImpl) newTransformer(patches []*resource.Resource) (transformers.Transformer, error) {
|
||||||
ts := []transformers.Transformer{}
|
ts := []transformers.Transformer{}
|
||||||
|
|
||||||
ot, err := transformers.NewOverlayTransformer(patches)
|
ot, err := transformers.NewPatchTransformer(patches)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,33 +29,33 @@ import (
|
|||||||
"k8s.io/client-go/kubernetes/scheme"
|
"k8s.io/client-go/kubernetes/scheme"
|
||||||
)
|
)
|
||||||
|
|
||||||
// overlayTransformer contains a map of overlay objects
|
// patchTransformer applies patches.
|
||||||
type overlayTransformer struct {
|
type patchTransformer struct {
|
||||||
overlay []*resource.Resource
|
patches []*resource.Resource
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ Transformer = &overlayTransformer{}
|
var _ Transformer = &patchTransformer{}
|
||||||
|
|
||||||
// NewOverlayTransformer constructs a overlayTransformer.
|
// NewPatchTransformer constructs a patchTransformer.
|
||||||
func NewOverlayTransformer(overlay []*resource.Resource) (Transformer, error) {
|
func NewPatchTransformer(slice []*resource.Resource) (Transformer, error) {
|
||||||
if len(overlay) == 0 {
|
if len(slice) == 0 {
|
||||||
return NewNoOpTransformer(), nil
|
return NewNoOpTransformer(), nil
|
||||||
}
|
}
|
||||||
return &overlayTransformer{overlay}, nil
|
return &patchTransformer{slice}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transform apply the overlay on top of the base resources.
|
// Transform apply the patches on top of the base resources.
|
||||||
func (o *overlayTransformer) Transform(baseResourceMap resmap.ResMap) error {
|
func (pt *patchTransformer) Transform(baseResourceMap resmap.ResMap) error {
|
||||||
// Merge and then index the patches by Id.
|
// Merge and then index the patches by Id.
|
||||||
overlays, err := o.mergePatches()
|
patches, err := pt.mergePatches()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Strategic merge the resources exist in both base and overlay.
|
// Strategic merge the resources exist in both base and patches.
|
||||||
for _, overlay := range overlays {
|
for _, patch := range patches {
|
||||||
// Merge overlay with base resource.
|
// Merge patches with base resource.
|
||||||
id := overlay.Id()
|
id := patch.Id()
|
||||||
base, found := baseResourceMap[id]
|
base, found := baseResourceMap[id]
|
||||||
if !found {
|
if !found {
|
||||||
return fmt.Errorf("failed to find an object with %#v to apply the patch", id.Gvk())
|
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 {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
patchBytes, err := json.Marshal(overlay)
|
patchBytes, err := json.Marshal(patch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -95,7 +95,7 @@ func (o *overlayTransformer) Transform(baseResourceMap resmap.ResMap) error {
|
|||||||
}
|
}
|
||||||
merged, err = strategicpatch.StrategicMergeMapPatchUsingLookupPatchMeta(
|
merged, err = strategicpatch.StrategicMergeMapPatchUsingLookupPatchMeta(
|
||||||
base.Object,
|
base.Object,
|
||||||
overlay.Object,
|
patch.Object,
|
||||||
lookupPatchMeta)
|
lookupPatchMeta)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -109,9 +109,9 @@ func (o *overlayTransformer) Transform(baseResourceMap resmap.ResMap) error {
|
|||||||
|
|
||||||
// mergePatches merge and index patches by Id.
|
// mergePatches merge and index patches by Id.
|
||||||
// It errors out if there is conflict between patches.
|
// 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{}
|
rc := resmap.ResMap{}
|
||||||
for ix, patch := range o.overlay {
|
for ix, patch := range pt.patches {
|
||||||
id := patch.Id()
|
id := patch.Id()
|
||||||
existing, found := rc[id]
|
existing, found := rc[id]
|
||||||
if !found {
|
if !found {
|
||||||
@@ -138,7 +138,7 @@ func (o *overlayTransformer) mergePatches() (resmap.ResMap, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if conflict {
|
if conflict {
|
||||||
conflictingPatch, err := cd.findConflict(ix, o.overlay)
|
conflictingPatch, err := cd.findConflict(ix, pt.patches)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@ func TestOverlayRun(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
overlay := []*resource.Resource{
|
patch := []*resource.Resource{
|
||||||
resource.NewResourceFromMap(map[string]interface{}{
|
resource.NewResourceFromMap(map[string]interface{}{
|
||||||
"apiVersion": "apps/v1",
|
"apiVersion": "apps/v1",
|
||||||
"kind": "Deployment",
|
"kind": "Deployment",
|
||||||
@@ -120,7 +120,7 @@ func TestOverlayRun(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
lt, err := NewOverlayTransformer(overlay)
|
lt, err := NewPatchTransformer(patch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
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{}{
|
resource.NewResourceFromMap(map[string]interface{}{
|
||||||
"apiVersion": "apps/v1",
|
"apiVersion": "apps/v1",
|
||||||
"kind": "Deployment",
|
"kind": "Deployment",
|
||||||
@@ -250,7 +250,7 @@ func TestMultiplePatches(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
lt, err := NewOverlayTransformer(overlay)
|
lt, err := NewPatchTransformer(patch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
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{}{
|
resource.NewResourceFromMap(map[string]interface{}{
|
||||||
"apiVersion": "apps/v1",
|
"apiVersion": "apps/v1",
|
||||||
"kind": "Deployment",
|
"kind": "Deployment",
|
||||||
@@ -336,7 +336,7 @@ func TestMultiplePatchesWithConflict(t *testing.T) {
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
lt, err := NewOverlayTransformer(overlay)
|
lt, err := NewPatchTransformer(patch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
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{}{
|
resource.NewResourceFromMap(map[string]interface{}{
|
||||||
"apiVersion": "example.com/v1",
|
"apiVersion": "example.com/v1",
|
||||||
"kind": "Foo",
|
"kind": "Foo",
|
||||||
@@ -399,7 +399,7 @@ func TestNoSchemaOverlayRun(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
lt, err := NewOverlayTransformer(overlay)
|
lt, err := NewPatchTransformer(patch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
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{}{
|
resource.NewResourceFromMap(map[string]interface{}{
|
||||||
"apiVersion": "example.com/v1",
|
"apiVersion": "example.com/v1",
|
||||||
"kind": "Foo",
|
"kind": "Foo",
|
||||||
@@ -483,7 +483,7 @@ func TestNoSchemaMultiplePatches(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
lt, err := NewOverlayTransformer(overlay)
|
lt, err := NewPatchTransformer(patch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
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{}{
|
resource.NewResourceFromMap(map[string]interface{}{
|
||||||
"apiVersion": "example.com/v1",
|
"apiVersion": "example.com/v1",
|
||||||
"kind": "Foo",
|
"kind": "Foo",
|
||||||
@@ -541,7 +541,7 @@ func TestNoSchemaMultiplePatchesWithConflict(t *testing.T) {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
|
|
||||||
lt, err := NewOverlayTransformer(overlay)
|
lt, err := NewPatchTransformer(patch)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("unexpected error: %v", err)
|
t.Fatalf("unexpected error: %v", err)
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user