@@ -38,13 +38,24 @@ func CreateCRD(clientset apiextensionsclient.Interface) error {
3838 Plural : crdv1 .VolumeSnapshotClassResourcePlural ,
3939 Kind : reflect .TypeOf (crdv1.VolumeSnapshotClass {}).Name (),
4040 },
41+ Subresources : & apiextensionsv1beta1.CustomResourceSubresources {
42+ Status : & apiextensionsv1beta1.CustomResourceSubresourceStatus {},
43+ },
4144 },
4245 }
43- res , err := clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
4446
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+ }
4859 }
4960
5061 crd = & apiextensionsv1beta1.CustomResourceDefinition {
@@ -61,7 +72,7 @@ func CreateCRD(clientset apiextensionsclient.Interface) error {
6172 },
6273 },
6374 }
64- res , err = clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
75+ res , err : = clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (crd )
6576
6677 if err != nil && ! apierrors .IsAlreadyExists (err ) {
6778 glog .Fatalf ("failed to create VolumeSnapshotContentResource: %#v, err: %#v" ,
0 commit comments