Skip to content

Commit 3ef3f80

Browse files
authored
Merge pull request #30 from layer5io/kumarabd/feature/db
minor enhancement on update logic
2 parents 12b06c2 + bf81c55 commit 3ef3f80

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

utils/kubernetes/apply-manifest.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,13 +137,23 @@ func newRestClient(restConfig rest.Config, gv schema.GroupVersion) (rest.Interfa
137137
}
138138

139139
func createObject(restHelper *resource.Helper, namespace string, obj runtime.Object, update bool) (runtime.Object, error) {
140-
141-
if update {
142-
_, _ = deleteObject(restHelper, namespace, obj)
140+
name, err := meta.NewAccessor().Name(obj)
141+
if err != nil {
142+
return nil, err
143143
}
144144

145145
object, err := restHelper.Create(namespace, update, obj)
146146
if err != nil {
147+
if kubeerror.IsAlreadyExists(err) && update {
148+
object, er := restHelper.Replace(namespace, name, update, obj)
149+
if er != nil {
150+
if kubeerror.IsInvalid(er) && strings.Contains(er.Error(), "field is immutable") {
151+
return object, nil
152+
}
153+
return nil, er
154+
}
155+
return object, nil
156+
}
147157
return nil, err
148158
}
149159

0 commit comments

Comments
 (0)