update csiDriver apiVersion

Signed-off-by: f10atin9 <f10atin9@kubesphere.io>
This commit is contained in:
f10atin9
2021-09-01 17:56:29 +08:00
parent 9455ab92a9
commit b68ff57e60
5 changed files with 10 additions and 253 deletions

View File

@@ -100,7 +100,7 @@ func addControllers(
storageCapabilityController := capability.NewController(
client.Kubernetes().StorageV1().StorageClasses(),
kubernetesInformer.Storage().V1().StorageClasses(),
kubernetesInformer.Storage().V1beta1().CSIDrivers(),
kubernetesInformer.Storage().V1().CSIDrivers(),
)
volumeSnapshotController := snapshotclass.NewController(

View File

@@ -1,120 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: provisionercapabilities.storage.kubesphere.io
spec:
group: storage.kubesphere.io
names:
kind: ProvisionerCapability
listKind: ProvisionerCapabilityList
plural: provisionercapabilities
singular: provisionercapability
scope: Cluster
versions:
- additionalPrinterColumns:
- jsonPath: .spec.pluginInfo.name
name: Provisioner
type: string
- jsonPath: .spec.features.volume.expandMode
name: Expand
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: ProvisionerCapability is the schema for the provisionercapability
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ProvisionerCapabilitySpec defines the desired state of ProvisionerCapability
properties:
features:
description: CapabilityFeatures describe storage features
properties:
snapshot:
description: SnapshotFeature describe snapshot features
properties:
create:
type: boolean
list:
type: boolean
required:
- create
- list
type: object
topology:
type: boolean
volume:
description: VolumeFeature describe volume features
properties:
attach:
type: boolean
clone:
type: boolean
create:
type: boolean
expandMode:
type: string
list:
type: boolean
stats:
type: boolean
required:
- attach
- clone
- create
- expandMode
- list
- stats
type: object
required:
- snapshot
- topology
- volume
type: object
pluginInfo:
description: PluginInfo describes plugin info
properties:
name:
type: string
version:
type: string
required:
- name
- version
type: object
required:
- features
- pluginInfo
type: object
required:
- spec
type: object
served: true
storage: true
subresources: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -1,120 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: storageclasscapabilities.storage.kubesphere.io
spec:
group: storage.kubesphere.io
names:
kind: StorageClassCapability
listKind: StorageClassCapabilityList
plural: storageclasscapabilities
singular: storageclasscapability
scope: Cluster
versions:
- additionalPrinterColumns:
- jsonPath: .spec.provisioner
name: Provisioner
type: string
- jsonPath: .spec.features.volume.create
name: Volume
type: boolean
- jsonPath: .spec.features.volume.expandMode
name: Expand
type: string
- jsonPath: .spec.features.volume.clone
name: Clone
type: boolean
- jsonPath: .spec.features.snapshot.create
name: Snapshot
type: boolean
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1alpha1
schema:
openAPIV3Schema:
description: StorageClassCapability is the Schema for the storage class capability
API
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
of an object. Servers should convert recognized schemas to the latest
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this
object represents. Servers may infer this from the endpoint the client
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: StorageClassCapabilitySpec defines the desired state of StorageClassCapability
properties:
features:
description: CapabilityFeatures describe storage features
properties:
snapshot:
description: SnapshotFeature describe snapshot features
properties:
create:
type: boolean
list:
type: boolean
required:
- create
- list
type: object
topology:
type: boolean
volume:
description: VolumeFeature describe volume features
properties:
attach:
type: boolean
clone:
type: boolean
create:
type: boolean
expandMode:
type: string
list:
type: boolean
stats:
type: boolean
required:
- attach
- clone
- create
- expandMode
- list
- stats
type: object
required:
- snapshot
- topology
- volume
type: object
provisioner:
type: string
required:
- features
- provisioner
type: object
required:
- spec
type: object
served: true
storage: true
subresources: {}
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []

View File

@@ -25,8 +25,6 @@ import (
"time"
"k8s.io/apimachinery/pkg/labels"
storageinformersv1beta1 "k8s.io/client-go/informers/storage/v1beta1"
storagelistersv1beta1 "k8s.io/client-go/listers/storage/v1beta1"
storagev1 "k8s.io/api/storage/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -53,7 +51,7 @@ type StorageCapabilityController struct {
storageClassLister storagelistersv1.StorageClassLister
storageClassSynced cache.InformerSynced
csiDriverLister storagelistersv1beta1.CSIDriverLister
csiDriverLister storagelistersv1.CSIDriverLister
csiDriverSynced cache.InformerSynced
storageClassWorkQueue workqueue.RateLimitingInterface
@@ -64,7 +62,7 @@ type StorageCapabilityController struct {
func NewController(
storageClassClient storageclient.StorageClassInterface,
storageClassInformer storageinformersv1.StorageClassInformer,
csiDriverInformer storageinformersv1beta1.CSIDriverInformer,
csiDriverInformer storageinformersv1.CSIDriverInformer,
) *StorageCapabilityController {
utilruntime.Must(crdscheme.AddToScheme(scheme.Scheme))

View File

@@ -19,13 +19,12 @@
package capability
import (
"github.com/google/go-cmp/cmp"
"k8s.io/api/storage/v1beta1"
"reflect"
"testing"
"time"
"github.com/google/go-cmp/cmp"
storagev1 "k8s.io/api/storage/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
@@ -53,7 +52,7 @@ type fixture struct {
storageObjects []runtime.Object // include StorageClass
// Objects to put in the store.
storageClassLister []*storagev1.StorageClass
csiDriverLister []*v1beta1.CSIDriver
csiDriverLister []*storagev1.CSIDriver
// Actions expected to happen on the client.
actions []core.Action
}
@@ -74,14 +73,14 @@ func (f *fixture) newController() (*StorageCapabilityController,
c := NewController(
f.k8sClient.StorageV1().StorageClasses(),
k8sInformers.Storage().V1().StorageClasses(),
k8sInformers.Storage().V1beta1().CSIDrivers(),
k8sInformers.Storage().V1().CSIDrivers(),
)
for _, storageClass := range f.storageClassLister {
_ = k8sInformers.Storage().V1().StorageClasses().Informer().GetIndexer().Add(storageClass)
}
for _, csiDriver := range f.csiDriverLister {
_ = k8sInformers.Storage().V1beta1().CSIDrivers().Informer().GetIndexer().Add(csiDriver)
_ = k8sInformers.Storage().V1().CSIDrivers().Informer().GetIndexer().Add(csiDriver)
}
return c, k8sInformers
@@ -197,8 +196,8 @@ func newStorageClass(name string, provisioner string) *storagev1.StorageClass {
}
}
func newCSIDriver(name string) *v1beta1.CSIDriver {
return &v1beta1.CSIDriver{
func newCSIDriver(name string) *storagev1.CSIDriver {
return &storagev1.CSIDriver{
ObjectMeta: v1.ObjectMeta{
Name: name,
},