File tree 1 file changed +13
-2
lines changed
1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,8 @@ import (
27
27
28
28
apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1"
29
29
"k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
30
+ apierrors "k8s.io/apimachinery/pkg/api/errors"
31
+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
30
32
"k8s.io/apimachinery/pkg/runtime/schema"
31
33
"k8s.io/apimachinery/pkg/util/sets"
32
34
"k8s.io/apimachinery/pkg/util/wait"
@@ -190,8 +192,17 @@ func CreateCRDs(config *rest.Config, crds []*apiextensionsv1beta1.CustomResource
190
192
// Create each CRD
191
193
for _ , crd := range crds {
192
194
log .V (1 ).Info ("installing CRD" , "crd" , crd .Name )
193
- if _ , err := cs .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd ); err != nil {
194
- return err
195
+ var err error
196
+ if _ , err = cs .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Get (crd .Name , metav1.GetOptions {}); err != nil {
197
+ if apierrors .IsNotFound (err ) {
198
+ _ , err = cs .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
199
+ }
200
+ if apierrors .IsAlreadyExists (err ) {
201
+ _ , err = cs .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Update (crd )
202
+ }
203
+ if err != nil {
204
+ return err
205
+ }
195
206
}
196
207
}
197
208
return nil
You can’t perform that action at this time.
0 commit comments