Skip to content

Commit b4a6df5

Browse files
committed
[fix] patch prefix
Signed-off-by: Stepan Paksashvili <stepan.paksashvili@flant.com>
1 parent be1a9ab commit b4a6df5

4 files changed

Lines changed: 25 additions & 59 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ require (
3737
replace github.com/go-openapi/validate => github.com/flant/go-openapi-validate v0.19.12-flant.0
3838

3939
require (
40-
github.com/deckhouse/module-sdk v0.10.0
40+
github.com/deckhouse/module-sdk v0.10.2-0.20260304160619-6b32d3428382
4141
github.com/gojuno/minimock/v3 v3.4.7
4242
github.com/itchyny/gojq v0.12.17
4343
github.com/muesli/termenv v0.16.0

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ github.com/deckhouse/deckhouse/pkg/metrics-storage v0.3.0 h1:xZvbKuexrSQGEw6CB4n
3939
github.com/deckhouse/deckhouse/pkg/metrics-storage v0.3.0/go.mod h1:Rz++SzCLkFW03WGgftnn91TimGU2shiKb5S/YuxcBuE=
4040
github.com/deckhouse/module-sdk v0.10.0 h1:VPhYvMVQ3pT32I2WL1ITtQyrYdpiUR0RocLw7S4TfNg=
4141
github.com/deckhouse/module-sdk v0.10.0/go.mod h1:Z1jfmd0fICoYww0daMijWAU+OZTxeJUXfMciKKuYAYA=
42+
github.com/deckhouse/module-sdk v0.10.2-0.20260304160619-6b32d3428382 h1:EjnN5+q6/FI1N+JmPpRz7vm/Vfz8nW7FOT2/TtwS07Y=
43+
github.com/deckhouse/module-sdk v0.10.2-0.20260304160619-6b32d3428382/go.mod h1:Z1jfmd0fICoYww0daMijWAU+OZTxeJUXfMciKKuYAYA=
4244
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
4345
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
4446
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=

pkg/kube/object_patch/operation.go

Lines changed: 22 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package object_patch
33
import (
44
"fmt"
55
"log/slog"
6+
"strings"
67

78
"github.com/deckhouse/deckhouse/pkg/log"
89
sdkpkg "github.com/deckhouse/module-sdk/pkg"
@@ -99,36 +100,20 @@ func (op *createOperation) Description() string {
99100
return fmt.Sprintf("Create object %s/%s/%s/%s", u.GetAPIVersion(), u.GetKind(), u.GetNamespace(), u.GetName())
100101
}
101102

102-
func (op *createOperation) GetName() string {
103-
u, err := toUnstructured(op.object)
104-
if err != nil {
105-
return ""
106-
}
107-
return u.GetName()
108-
}
109-
110-
func (op *createOperation) SetName(name string) {
103+
// SetObjectPrefix sets prefix for object name.
104+
func (op *createOperation) SetObjectPrefix(prefix string) {
111105
u, err := toUnstructured(op.object)
112106
if err != nil {
113107
return
114108
}
115-
u.SetName(name)
116-
op.object = u
117-
}
118109

119-
func (op *createOperation) SetNamePrefix(prefix string) {
120-
name := op.GetName()
121-
if name != "" {
122-
op.SetName(prefix + name)
110+
name := u.GetName()
111+
if strings.HasPrefix(name, prefix) {
112+
return
123113
}
124-
}
125114

126-
func (op *createOperation) GetNamespace() string {
127-
u, err := toUnstructured(op.object)
128-
if err != nil {
129-
return ""
130-
}
131-
return u.GetNamespace()
115+
u.SetName(fmt.Sprintf("%s-%s", prefix, name))
116+
op.object = u
132117
}
133118

134119
func (op *createOperation) WithSubresource(subresource string) {
@@ -163,20 +148,13 @@ func (op *deleteOperation) WithSubresource(subresource string) {
163148
op.subresource = subresource
164149
}
165150

166-
func (op *deleteOperation) GetName() string {
167-
return op.name
168-
}
169-
170-
func (op *deleteOperation) SetName(name string) {
171-
op.name = name
172-
}
173-
174-
func (op *deleteOperation) SetNamePrefix(prefix string) {
175-
op.name = prefix + op.name
176-
}
151+
// SetObjectPrefix sets prefix for object name.
152+
func (op *deleteOperation) SetObjectPrefix(prefix string) {
153+
if strings.HasPrefix(op.name, prefix) {
154+
return
155+
}
177156

178-
func (op *deleteOperation) GetNamespace() string {
179-
return op.namespace
157+
op.name = fmt.Sprintf("%s-%s", prefix, op.name)
180158
}
181159

182160
type patchOperation struct {
@@ -198,24 +176,17 @@ type patchOperation struct {
198176
ignoreHookError bool
199177
}
200178

201-
func (op *patchOperation) GetName() string {
202-
return op.name
203-
}
204-
205-
func (op *patchOperation) SetName(name string) {
206-
op.name = name
207-
}
208-
209-
func (op *patchOperation) SetNamePrefix(prefix string) {
210-
op.name = prefix + op.name
179+
func (op *patchOperation) Description() string {
180+
return fmt.Sprintf("Filter object %s/%s/%s/%s", op.apiVersion, op.kind, op.namespace, op.name)
211181
}
212182

213-
func (op *patchOperation) GetNamespace() string {
214-
return op.namespace
215-
}
183+
// SetObjectPrefix sets prefix for object name.
184+
func (op *patchOperation) SetObjectPrefix(prefix string) {
185+
if strings.HasPrefix(op.name, prefix) {
186+
return
187+
}
216188

217-
func (op *patchOperation) Description() string {
218-
return fmt.Sprintf("Filter object %s/%s/%s/%s", op.apiVersion, op.kind, op.namespace, op.name)
189+
op.name = fmt.Sprintf("%s-%s", prefix, op.name)
219190
}
220191

221192
func (op *patchOperation) hasFilterFn() bool {

pkg/kube/object_patch/patch_collector.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package object_patch
22

33
import (
4-
"io"
5-
64
sdkpkg "github.com/deckhouse/module-sdk/pkg"
75
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
86
)
@@ -153,8 +151,3 @@ func (dop *PatchCollector) PatchWithJSON(jsonPatch any, apiVersion string, kind
153151
func (dop *PatchCollector) PatchWithMerge(mergePatch any, apiVersion string, kind string, namespace string, name string, opts ...sdkpkg.PatchCollectorOption) {
154152
dop.add(NewMergePatchOperation(mergePatch, apiVersion, kind, namespace, name, opts...))
155153
}
156-
157-
func (dop *PatchCollector) WriteOutput(_ io.Writer) error {
158-
// TODO implement me
159-
return nil
160-
}

0 commit comments

Comments
 (0)