Skip to content

Commit 82957af

Browse files
RottenRatipaqsa
andauthored
chore: prefix object patch (#848)
Signed-off-by: Sinelnikov Michail <mikhail.sinelnikov@flant.com> Signed-off-by: Stepan Paksashvili <stepan.paksashvili@flant.com> Co-authored-by: Stepan Paksashvili <stepan.paksashvili@flant.com>
1 parent be72f69 commit 82957af

3 files changed

Lines changed: 43 additions & 4 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
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 & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ github.com/deckhouse/deckhouse/pkg/log v0.2.0 h1:6tmZQLwNb1o/hP1gzJQBjcwfA/bubbg
3737
github.com/deckhouse/deckhouse/pkg/log v0.2.0/go.mod h1:pbAxTSDcPmwyl3wwKDcEB3qdxHnRxqTV+J0K+sha8bw=
3838
github.com/deckhouse/deckhouse/pkg/metrics-storage v0.3.0 h1:xZvbKuexrSQGEw6CB4n3UC7XbOb9QNLbm8UhcGZ2R1I=
3939
github.com/deckhouse/deckhouse/pkg/metrics-storage v0.3.0/go.mod h1:Rz++SzCLkFW03WGgftnn91TimGU2shiKb5S/YuxcBuE=
40-
github.com/deckhouse/module-sdk v0.10.0 h1:VPhYvMVQ3pT32I2WL1ITtQyrYdpiUR0RocLw7S4TfNg=
41-
github.com/deckhouse/module-sdk v0.10.0/go.mod h1:Z1jfmd0fICoYww0daMijWAU+OZTxeJUXfMciKKuYAYA=
40+
github.com/deckhouse/module-sdk v0.10.2 h1:jYxFTgjdaZ9NKWKbFP95RvD55WJvhwjPAeSMFKhZb0o=
41+
github.com/deckhouse/module-sdk v0.10.2/go.mod h1:Z1jfmd0fICoYww0daMijWAU+OZTxeJUXfMciKKuYAYA=
4242
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
4343
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
4444
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=

pkg/kube/object_patch/operation.go

Lines changed: 40 additions & 1 deletion
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"
@@ -92,7 +93,27 @@ type createOperation struct {
9293
}
9394

9495
func (op *createOperation) Description() string {
95-
return "Create object"
96+
u, err := toUnstructured(op.object)
97+
if err != nil {
98+
return "Create object (unknown)"
99+
}
100+
return fmt.Sprintf("Create object %s/%s/%s/%s", u.GetAPIVersion(), u.GetKind(), u.GetNamespace(), u.GetName())
101+
}
102+
103+
// SetObjectPrefix sets prefix for object name.
104+
func (op *createOperation) SetObjectPrefix(prefix string) {
105+
u, err := toUnstructured(op.object)
106+
if err != nil {
107+
return
108+
}
109+
110+
name := u.GetName()
111+
if strings.HasPrefix(name, prefix+"-") {
112+
return
113+
}
114+
115+
u.SetName(fmt.Sprintf("%s-%s", prefix, name))
116+
op.object = u
96117
}
97118

98119
func (op *createOperation) WithSubresource(subresource string) {
@@ -127,6 +148,15 @@ func (op *deleteOperation) WithSubresource(subresource string) {
127148
op.subresource = subresource
128149
}
129150

151+
// SetObjectPrefix sets prefix for object name.
152+
func (op *deleteOperation) SetObjectPrefix(prefix string) {
153+
if strings.HasPrefix(op.name, prefix+"-") {
154+
return
155+
}
156+
157+
op.name = fmt.Sprintf("%s-%s", prefix, op.name)
158+
}
159+
130160
type patchOperation struct {
131161
// Object coordinates for patch and delete.
132162
apiVersion string
@@ -150,6 +180,15 @@ func (op *patchOperation) Description() string {
150180
return fmt.Sprintf("Filter object %s/%s/%s/%s", op.apiVersion, op.kind, op.namespace, op.name)
151181
}
152182

183+
// SetObjectPrefix sets prefix for object name.
184+
func (op *patchOperation) SetObjectPrefix(prefix string) {
185+
if strings.HasPrefix(op.name, prefix+"-") {
186+
return
187+
}
188+
189+
op.name = fmt.Sprintf("%s-%s", prefix, op.name)
190+
}
191+
153192
func (op *patchOperation) hasFilterFn() bool {
154193
return op.filterFunc != nil
155194
}

0 commit comments

Comments
 (0)