diff --git a/internal/objectpatch/patch.go b/internal/objectpatch/patch.go index 071bfa2..94768d2 100644 --- a/internal/objectpatch/patch.go +++ b/internal/objectpatch/patch.go @@ -2,6 +2,7 @@ package objectpatch import ( "fmt" + "strings" "github.com/deckhouse/module-sdk/pkg" ) @@ -27,6 +28,24 @@ func (p *Patch) Description() string { return fmt.Sprintf("%v", op) } +// SetObjectPrefix sets prefix for object name. +func (p *Patch) SetObjectPrefix(prefix string) { + if p.patchValues == nil { + return + } + + name, ok := p.patchValues["name"] + if !ok { + return + } + + if strings.HasPrefix(name.(string), prefix+"-") { + return + } + + p.patchValues["name"] = fmt.Sprintf("%s-%s", prefix, name.(string)) +} + // WithSubresource sets the subresource to patch (e.g., "status", "scale"). func (p *Patch) WithSubresource(subresource string) { p.patchValues["subresource"] = subresource diff --git a/pkg/patch.go b/pkg/patch.go index 2302bec..3372e33 100644 --- a/pkg/patch.go +++ b/pkg/patch.go @@ -93,6 +93,7 @@ type NamespacedPatchCollector interface { // - filterOperation to modify object via Get-filter-Update process type PatchCollectorOperation interface { Description() string + SetObjectPrefix(prefix string) } type PatchCollectorOption interface {