@@ -38,13 +38,24 @@ func CreateCRD(clientset apiextensionsclient.Interface) error {
38
38
Plural : crdv1 .VolumeSnapshotClassResourcePlural ,
39
39
Kind : reflect .TypeOf (crdv1.VolumeSnapshotClass {}).Name (),
40
40
},
41
+ Subresources : & apiextensionsv1beta1.CustomResourceSubresources {
42
+ Status : & apiextensionsv1beta1.CustomResourceSubresourceStatus {},
43
+ },
41
44
},
42
45
}
43
- res , err := clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
44
46
45
- if err != nil && ! apierrors .IsAlreadyExists (err ) {
46
- glog .Fatalf ("failed to create VolumeSnapshotResource: %#v, err: %#v" ,
47
- res , err )
47
+ _ , err := clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Get (crd .Name , metav1.GetOptions {})
48
+ if err == nil {
49
+ if res , err := clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Update (crd ); err != nil {
50
+ glog .Fatalf ("failed to update VolumeSnapshotResource: %#v, err: %#v" ,
51
+ res , err )
52
+ }
53
+ } else {
54
+ res , err := clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
55
+ if err != nil && ! apierrors .IsAlreadyExists (err ) {
56
+ glog .Fatalf ("failed to create VolumeSnapshotResource: %#v, err: %#v" ,
57
+ res , err )
58
+ }
48
59
}
49
60
50
61
crd = & apiextensionsv1beta1.CustomResourceDefinition {
@@ -61,7 +72,7 @@ func CreateCRD(clientset apiextensionsclient.Interface) error {
61
72
},
62
73
},
63
74
}
64
- res , err = clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
75
+ res , err : = clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
65
76
66
77
if err != nil && ! apierrors .IsAlreadyExists (err ) {
67
78
glog .Fatalf ("failed to create VolumeSnapshotContentResource: %#v, err: %#v" ,
0 commit comments