CaptureConfig: Update config if it already exists.
Change-Id: I0ecd09a65f0d74806d0329772e04ffa57e9a40ee
diff --git a/apps/capture-config/main.go b/apps/capture-config/main.go
index 73b94d6..86ac22c 100644
--- a/apps/capture-config/main.go
+++ b/apps/capture-config/main.go
@@ -8,6 +8,7 @@
"path"
v1 "k8s.io/api/core/v1"
+ "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
@@ -73,7 +74,15 @@
}
fmt.Printf("--- MERGED:\n%s\n", string(merged))
config := newConig(merged)
- if _, err := client.Create(context.TODO(), config, metav1.CreateOptions{}); err != nil {
+ _, err = client.Create(context.TODO(), config, metav1.CreateOptions{})
+ if err == nil {
+ return
+ }
+ if !errors.IsAlreadyExists(err) {
+ panic(err)
+ }
+ _, err = client.Update(context.TODO(), config, metav1.UpdateOptions{})
+ if err != nil {
panic(err)
}
}