99 lines
3.9 KiB
YAML
Generated
99 lines
3.9 KiB
YAML
Generated
# according to https://kubernetes.io/blog/2018/07/12/resizing-persistent-volumes-using-kubernetes/,
|
|
# and https://kubernetes.io/docs/concepts/storage/storage-classes/#allow-volume-expansion
|
|
# volume expansion support for the following in-tree volume plugins:
|
|
# AWS-EBS, GCE-PD, Azure Disk, Azure File, Glusterfs, Cinder, Portworx, and Ceph RBD.
|
|
# online file system expansion support for the following in-tree plugin
|
|
# GCE-PD, AWS-EBS, Cinder, and Ceph RBD
|
|
|
|
apiVersion: apiextensions.k8s.io/v1beta1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
name: provisionercapabilities.storage.kubesphere.io
|
|
spec:
|
|
group: storage.kubesphere.io
|
|
version: v1alpha1
|
|
preserveUnknownFields: false
|
|
names:
|
|
plural: provisionercapabilities
|
|
singular: provisionercapability
|
|
kind: ProvisionerCapability
|
|
shortNames:
|
|
- pcap
|
|
scope: Cluster
|
|
additionalPrinterColumns:
|
|
- name: Provisioner
|
|
type: string
|
|
description: The provisioner name should be the same as name
|
|
JSONPath: .spec.pluginInfo.name
|
|
- name: Expand
|
|
type: string
|
|
JSONPath: .spec.features.volume.expandMode
|
|
- name: Age
|
|
type: date
|
|
JSONPath: .metadata.creationTimestamp
|
|
validation:
|
|
openAPIV3Schema:
|
|
required:
|
|
- spec
|
|
type: object
|
|
properties:
|
|
apiVersion:
|
|
description: 'APIVersion defines the versioned schema of this representation of an object.'
|
|
type: string
|
|
kind:
|
|
description: 'Kind is a string value representing the REST resource this object represents.'
|
|
type: string
|
|
spec:
|
|
type: object
|
|
description: 'spec defines the desired characteristics of obejct'
|
|
properties:
|
|
pluginInfo:
|
|
type: object
|
|
description: 'Plugininfo represents plugin metadata'
|
|
properties:
|
|
name:
|
|
description: 'provisioner name'
|
|
type: string
|
|
version:
|
|
description: 'plugin version'
|
|
type: string
|
|
features:
|
|
type: object
|
|
description: 'Features represents plugin capability'
|
|
properties:
|
|
topology:
|
|
description: 'topology determines whether a provisioner support topology by looking up GetPluginCapabilities.PluginCapability'
|
|
type: boolean
|
|
volume:
|
|
type: object
|
|
description: 'Volume represents whether plugin supports volume features'
|
|
properties:
|
|
create:
|
|
description: 'Determined by ControllerGetCapabilities in ControllerServer'
|
|
type: boolean
|
|
attach:
|
|
description: 'Determined by ControllerGetCapabilities in ControllerServer'
|
|
type: boolean
|
|
list:
|
|
description: 'Determined by ControllerGetCapabilities in ControllerServer'
|
|
type: boolean
|
|
clone:
|
|
description: 'Determined by ControllerGetCapabilities in ControllerServer'
|
|
type: boolean
|
|
stats:
|
|
description: 'Determined by NodeGetCapabilities in NodeServer'
|
|
type: boolean
|
|
expandMode:
|
|
description: 'Determined by GetPluginCapabilities in IdentityServer'
|
|
type: string
|
|
items:
|
|
type: string
|
|
enum: ["UNKNOWN", "OFFLINE", "ONLINE"]
|
|
snapshot:
|
|
type: object
|
|
description: 'Snapshot represents whether plugin supports snapshot features'
|
|
properties:
|
|
create:
|
|
type: boolean
|
|
list:
|
|
type: boolean |