@@ -23,14 +23,15 @@ import (
2323
2424 "github.com/golang/glog"
2525 crdv1 "github.com/openebs/openebs-k8s-provisioner/pkg/apis/crd/v1"
26- apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1 "
26+ apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1 "
2727 apiextensionsclient "k8s.io/apiextensions-apiserver/pkg/client/clientset/clientset"
2828 apierrors "k8s.io/apimachinery/pkg/api/errors"
2929 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3030 "k8s.io/apimachinery/pkg/runtime"
3131 "k8s.io/apimachinery/pkg/runtime/serializer"
3232 "k8s.io/apimachinery/pkg/util/wait"
3333 "k8s.io/client-go/rest"
34+ utilpointer "k8s.io/utils/pointer"
3435)
3536
3637const (
@@ -62,52 +63,77 @@ func NewClient(cfg *rest.Config) (*rest.RESTClient, *runtime.Scheme, error) {
6263
6364// CreateCRD creates CustomResourceDefinition
6465func CreateCRD (clientset apiextensionsclient.Interface ) error {
65- crd := & apiextensionsv1beta1 .CustomResourceDefinition {
66+ crd := & apiextensionsv1 .CustomResourceDefinition {
6667 ObjectMeta : metav1.ObjectMeta {
6768 Name : crdv1 .VolumeSnapshotDataResourcePlural + "." + crdv1 .GroupName ,
6869 Annotations : map [string ]string {
6970 "api-approved.kubernetes.io" : "https://github.com/kubernetes-csi/external-snapshotter/pull/419" ,
7071 },
7172 },
72- Spec : apiextensionsv1beta1.CustomResourceDefinitionSpec {
73- Group : crdv1 .GroupName ,
74- Version : crdv1 .SchemeGroupVersion .Version ,
75- Scope : apiextensionsv1beta1 .ClusterScoped ,
76- Names : apiextensionsv1beta1.CustomResourceDefinitionNames {
73+ Spec : apiextensionsv1.CustomResourceDefinitionSpec {
74+ Group : crdv1 .GroupName ,
75+ Versions : []apiextensionsv1.CustomResourceDefinitionVersion {
76+ {
77+ Name : "v1" ,
78+ Served : true ,
79+ Storage : true ,
80+ Schema : & apiextensionsv1.CustomResourceValidation {
81+ OpenAPIV3Schema : & apiextensionsv1.JSONSchemaProps {
82+ XPreserveUnknownFields : utilpointer .BoolPtr (true ),
83+ },
84+ },
85+ },
86+ },
87+ Scope : apiextensionsv1 .ClusterScoped ,
88+ Names : apiextensionsv1.CustomResourceDefinitionNames {
7789 Plural : crdv1 .VolumeSnapshotDataResourcePlural ,
7890 Kind : reflect .TypeOf (crdv1.VolumeSnapshotData {}).Name (),
7991 },
8092 },
8193 }
82- res , err := clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (context .TODO (), crd , metav1.CreateOptions {})
94+ res , err := clientset .ApiextensionsV1 ().CustomResourceDefinitions ().Create (context .TODO (), crd , metav1.CreateOptions {})
8395
8496 if err != nil && ! apierrors .IsAlreadyExists (err ) {
8597 glog .Fatalf ("failed to create VolumeSnapshotDataResource: %#v, err: %#v" ,
8698 res , err )
8799 }
88100
89- crd = & apiextensionsv1beta1 .CustomResourceDefinition {
101+ crd = & apiextensionsv1 .CustomResourceDefinition {
90102 ObjectMeta : metav1.ObjectMeta {
91103 Name : crdv1 .VolumeSnapshotResourcePlural + "." + crdv1 .GroupName ,
92104 Annotations : map [string ]string {
93105 "api-approved.kubernetes.io" : "https://github.com/kubernetes-csi/external-snapshotter/pull/419" ,
94106 },
95107 },
96- Spec : apiextensionsv1beta1.CustomResourceDefinitionSpec {
97- Group : crdv1 .GroupName ,
98- Version : crdv1 .SchemeGroupVersion .Version ,
99- Scope : apiextensionsv1beta1 .NamespaceScoped ,
100- Names : apiextensionsv1beta1.CustomResourceDefinitionNames {
108+ Spec : apiextensionsv1.CustomResourceDefinitionSpec {
109+ Group : crdv1 .GroupName ,
110+ // Versions: crdv1.SchemeGroupVersion.Version,
111+ Versions : []apiextensionsv1.CustomResourceDefinitionVersion {
112+ {
113+ Name : "v1" ,
114+ Served : true ,
115+ Storage : true ,
116+ Schema : & apiextensionsv1.CustomResourceValidation {
117+ OpenAPIV3Schema : & apiextensionsv1.JSONSchemaProps {
118+ XPreserveUnknownFields : utilpointer .BoolPtr (true ),
119+ },
120+ },
121+ },
122+ },
123+ Scope : apiextensionsv1 .NamespaceScoped ,
124+ Names : apiextensionsv1.CustomResourceDefinitionNames {
101125 Plural : crdv1 .VolumeSnapshotResourcePlural ,
102126 Kind : reflect .TypeOf (crdv1.VolumeSnapshot {}).Name (),
103127 },
104128 },
105129 }
106- res , err = clientset .ApiextensionsV1beta1 ().CustomResourceDefinitions ().Create (context .TODO (), crd , metav1.CreateOptions {})
130+ res , err = clientset .ApiextensionsV1 ().CustomResourceDefinitions ().Create (context .TODO (), crd , metav1.CreateOptions {})
107131 if err != nil && ! apierrors .IsAlreadyExists (err ) {
108132 glog .Fatalf ("failed to create VolumeSnapshotResource: %#v, err: %#v" ,
109133 res , err )
110134 }
135+
136+ glog .Infof ("successfully created VolumeSnapshotResource" )
111137 return nil
112138}
113139
0 commit comments