CSIStorageCapacity: 'make update'

This commit is contained in:
Patrick Ohly
2020-06-04 20:50:43 +02:00
parent 1089954fa6
commit 9a66e8e1b5
52 changed files with 1989 additions and 233 deletions

View File

@@ -14815,6 +14815,10 @@
"description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.",
"type": "boolean"
},
"storageCapacity": {
"description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.",
"type": "boolean"
},
"volumeLifecycleModes": {
"description": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.",
"items": {
@@ -15429,6 +15433,10 @@
"description": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.",
"type": "boolean"
},
"storageCapacity": {
"description": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.",
"type": "boolean"
},
"volumeLifecycleModes": {
"description": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.",
"items": {

View File

@@ -16,6 +16,7 @@ go_library(
importpath = "k8s.io/kubernetes/pkg/apis/storage",
deps = [
"//pkg/apis/core:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",

View File

@@ -53,7 +53,10 @@ go_test(
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/storage/install:go_default_library",
"//pkg/features:go_default_library",
"//staging/src/k8s.io/api/storage/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
],
)

View File

@@ -254,6 +254,7 @@ func autoConvert_v1_CSIDriverSpec_To_storage_CSIDriverSpec(in *v1.CSIDriverSpec,
out.AttachRequired = (*bool)(unsafe.Pointer(in.AttachRequired))
out.PodInfoOnMount = (*bool)(unsafe.Pointer(in.PodInfoOnMount))
out.VolumeLifecycleModes = *(*[]storage.VolumeLifecycleMode)(unsafe.Pointer(&in.VolumeLifecycleModes))
out.StorageCapacity = (*bool)(unsafe.Pointer(in.StorageCapacity))
return nil
}
@@ -266,6 +267,7 @@ func autoConvert_storage_CSIDriverSpec_To_v1_CSIDriverSpec(in *storage.CSIDriver
out.AttachRequired = (*bool)(unsafe.Pointer(in.AttachRequired))
out.PodInfoOnMount = (*bool)(unsafe.Pointer(in.PodInfoOnMount))
out.VolumeLifecycleModes = *(*[]v1.VolumeLifecycleMode)(unsafe.Pointer(&in.VolumeLifecycleModes))
out.StorageCapacity = (*bool)(unsafe.Pointer(in.StorageCapacity))
return nil
}

View File

@@ -16,6 +16,8 @@ go_library(
"//pkg/apis/storage:go_default_library",
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/api/storage/v1alpha1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/conversion:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",

View File

@@ -23,12 +23,14 @@ package v1alpha1
import (
unsafe "unsafe"
corev1 "k8s.io/api/core/v1"
apicorev1 "k8s.io/api/core/v1"
v1alpha1 "k8s.io/api/storage/v1alpha1"
resource "k8s.io/apimachinery/pkg/api/resource"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
conversion "k8s.io/apimachinery/pkg/conversion"
runtime "k8s.io/apimachinery/pkg/runtime"
core "k8s.io/kubernetes/pkg/apis/core"
v1 "k8s.io/kubernetes/pkg/apis/core/v1"
corev1 "k8s.io/kubernetes/pkg/apis/core/v1"
storage "k8s.io/kubernetes/pkg/apis/storage"
)
@@ -39,6 +41,26 @@ func init() {
// RegisterConversions adds conversion functions to the given scheme.
// Public to allow building arbitrary schemes.
func RegisterConversions(s *runtime.Scheme) error {
if err := s.AddGeneratedConversionFunc((*v1alpha1.CSIStorageCapacity)(nil), (*storage.CSIStorageCapacity)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha1_CSIStorageCapacity_To_storage_CSIStorageCapacity(a.(*v1alpha1.CSIStorageCapacity), b.(*storage.CSIStorageCapacity), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*storage.CSIStorageCapacity)(nil), (*v1alpha1.CSIStorageCapacity)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_storage_CSIStorageCapacity_To_v1alpha1_CSIStorageCapacity(a.(*storage.CSIStorageCapacity), b.(*v1alpha1.CSIStorageCapacity), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*v1alpha1.CSIStorageCapacityList)(nil), (*storage.CSIStorageCapacityList)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha1_CSIStorageCapacityList_To_storage_CSIStorageCapacityList(a.(*v1alpha1.CSIStorageCapacityList), b.(*storage.CSIStorageCapacityList), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*storage.CSIStorageCapacityList)(nil), (*v1alpha1.CSIStorageCapacityList)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_storage_CSIStorageCapacityList_To_v1alpha1_CSIStorageCapacityList(a.(*storage.CSIStorageCapacityList), b.(*v1alpha1.CSIStorageCapacityList), scope)
}); err != nil {
return err
}
if err := s.AddGeneratedConversionFunc((*v1alpha1.VolumeAttachment)(nil), (*storage.VolumeAttachment)(nil), func(a, b interface{}, scope conversion.Scope) error {
return Convert_v1alpha1_VolumeAttachment_To_storage_VolumeAttachment(a.(*v1alpha1.VolumeAttachment), b.(*storage.VolumeAttachment), scope)
}); err != nil {
@@ -102,6 +124,54 @@ func RegisterConversions(s *runtime.Scheme) error {
return nil
}
func autoConvert_v1alpha1_CSIStorageCapacity_To_storage_CSIStorageCapacity(in *v1alpha1.CSIStorageCapacity, out *storage.CSIStorageCapacity, s conversion.Scope) error {
out.ObjectMeta = in.ObjectMeta
out.NodeTopology = (*v1.LabelSelector)(unsafe.Pointer(in.NodeTopology))
out.StorageClassName = in.StorageClassName
out.Capacity = (*resource.Quantity)(unsafe.Pointer(in.Capacity))
return nil
}
// Convert_v1alpha1_CSIStorageCapacity_To_storage_CSIStorageCapacity is an autogenerated conversion function.
func Convert_v1alpha1_CSIStorageCapacity_To_storage_CSIStorageCapacity(in *v1alpha1.CSIStorageCapacity, out *storage.CSIStorageCapacity, s conversion.Scope) error {
return autoConvert_v1alpha1_CSIStorageCapacity_To_storage_CSIStorageCapacity(in, out, s)
}
func autoConvert_storage_CSIStorageCapacity_To_v1alpha1_CSIStorageCapacity(in *storage.CSIStorageCapacity, out *v1alpha1.CSIStorageCapacity, s conversion.Scope) error {
out.ObjectMeta = in.ObjectMeta
out.NodeTopology = (*v1.LabelSelector)(unsafe.Pointer(in.NodeTopology))
out.StorageClassName = in.StorageClassName
out.Capacity = (*resource.Quantity)(unsafe.Pointer(in.Capacity))
return nil
}
// Convert_storage_CSIStorageCapacity_To_v1alpha1_CSIStorageCapacity is an autogenerated conversion function.
func Convert_storage_CSIStorageCapacity_To_v1alpha1_CSIStorageCapacity(in *storage.CSIStorageCapacity, out *v1alpha1.CSIStorageCapacity, s conversion.Scope) error {
return autoConvert_storage_CSIStorageCapacity_To_v1alpha1_CSIStorageCapacity(in, out, s)
}
func autoConvert_v1alpha1_CSIStorageCapacityList_To_storage_CSIStorageCapacityList(in *v1alpha1.CSIStorageCapacityList, out *storage.CSIStorageCapacityList, s conversion.Scope) error {
out.ListMeta = in.ListMeta
out.Items = *(*[]storage.CSIStorageCapacity)(unsafe.Pointer(&in.Items))
return nil
}
// Convert_v1alpha1_CSIStorageCapacityList_To_storage_CSIStorageCapacityList is an autogenerated conversion function.
func Convert_v1alpha1_CSIStorageCapacityList_To_storage_CSIStorageCapacityList(in *v1alpha1.CSIStorageCapacityList, out *storage.CSIStorageCapacityList, s conversion.Scope) error {
return autoConvert_v1alpha1_CSIStorageCapacityList_To_storage_CSIStorageCapacityList(in, out, s)
}
func autoConvert_storage_CSIStorageCapacityList_To_v1alpha1_CSIStorageCapacityList(in *storage.CSIStorageCapacityList, out *v1alpha1.CSIStorageCapacityList, s conversion.Scope) error {
out.ListMeta = in.ListMeta
out.Items = *(*[]v1alpha1.CSIStorageCapacity)(unsafe.Pointer(&in.Items))
return nil
}
// Convert_storage_CSIStorageCapacityList_To_v1alpha1_CSIStorageCapacityList is an autogenerated conversion function.
func Convert_storage_CSIStorageCapacityList_To_v1alpha1_CSIStorageCapacityList(in *storage.CSIStorageCapacityList, out *v1alpha1.CSIStorageCapacityList, s conversion.Scope) error {
return autoConvert_storage_CSIStorageCapacityList_To_v1alpha1_CSIStorageCapacityList(in, out, s)
}
func autoConvert_v1alpha1_VolumeAttachment_To_storage_VolumeAttachment(in *v1alpha1.VolumeAttachment, out *storage.VolumeAttachment, s conversion.Scope) error {
out.ObjectMeta = in.ObjectMeta
if err := Convert_v1alpha1_VolumeAttachmentSpec_To_storage_VolumeAttachmentSpec(&in.Spec, &out.Spec, s); err != nil {
@@ -181,7 +251,7 @@ func autoConvert_v1alpha1_VolumeAttachmentSource_To_storage_VolumeAttachmentSour
if in.InlineVolumeSpec != nil {
in, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec
*out = new(core.PersistentVolumeSpec)
if err := v1.Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(*in, *out, s); err != nil {
if err := corev1.Convert_v1_PersistentVolumeSpec_To_core_PersistentVolumeSpec(*in, *out, s); err != nil {
return err
}
} else {
@@ -199,8 +269,8 @@ func autoConvert_storage_VolumeAttachmentSource_To_v1alpha1_VolumeAttachmentSour
out.PersistentVolumeName = (*string)(unsafe.Pointer(in.PersistentVolumeName))
if in.InlineVolumeSpec != nil {
in, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec
*out = new(corev1.PersistentVolumeSpec)
if err := v1.Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(*in, *out, s); err != nil {
*out = new(apicorev1.PersistentVolumeSpec)
if err := corev1.Convert_core_PersistentVolumeSpec_To_v1_PersistentVolumeSpec(*in, *out, s); err != nil {
return err
}
} else {

View File

@@ -254,6 +254,7 @@ func autoConvert_v1beta1_CSIDriverSpec_To_storage_CSIDriverSpec(in *v1beta1.CSID
out.AttachRequired = (*bool)(unsafe.Pointer(in.AttachRequired))
out.PodInfoOnMount = (*bool)(unsafe.Pointer(in.PodInfoOnMount))
out.VolumeLifecycleModes = *(*[]storage.VolumeLifecycleMode)(unsafe.Pointer(&in.VolumeLifecycleModes))
out.StorageCapacity = (*bool)(unsafe.Pointer(in.StorageCapacity))
return nil
}
@@ -266,6 +267,7 @@ func autoConvert_storage_CSIDriverSpec_To_v1beta1_CSIDriverSpec(in *storage.CSID
out.AttachRequired = (*bool)(unsafe.Pointer(in.AttachRequired))
out.PodInfoOnMount = (*bool)(unsafe.Pointer(in.PodInfoOnMount))
out.VolumeLifecycleModes = *(*[]v1beta1.VolumeLifecycleMode)(unsafe.Pointer(&in.VolumeLifecycleModes))
out.StorageCapacity = (*bool)(unsafe.Pointer(in.StorageCapacity))
return nil
}

View File

@@ -17,6 +17,8 @@ go_library(
"//pkg/apis/storage:go_default_library",
"//pkg/features:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/validation:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/validation:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/validation:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",

View File

@@ -23,6 +23,7 @@ import (
apiequality "k8s.io/apimachinery/pkg/api/equality"
apimachineryvalidation "k8s.io/apimachinery/pkg/api/validation"
metav1validation "k8s.io/apimachinery/pkg/apis/meta/v1/validation"
"k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/validation"
"k8s.io/apimachinery/pkg/util/validation/field"

View File

@@ -21,6 +21,7 @@ limitations under the License.
package storage
import (
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
core "k8s.io/kubernetes/pkg/apis/core"
)
@@ -103,6 +104,11 @@ func (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {
*out = make([]VolumeLifecycleMode, len(*in))
copy(*out, *in)
}
if in.StorageCapacity != nil {
in, out := &in.StorageCapacity, &out.StorageCapacity
*out = new(bool)
**out = **in
}
return
}
@@ -225,6 +231,75 @@ func (in *CSINodeSpec) DeepCopy() *CSINodeSpec {
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
if in.NodeTopology != nil {
in, out := &in.NodeTopology, &out.NodeTopology
*out = new(v1.LabelSelector)
(*in).DeepCopyInto(*out)
}
if in.Capacity != nil {
in, out := &in.Capacity, &out.Capacity
x := (*in).DeepCopy()
*out = &x
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.
func (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {
if in == nil {
return nil
}
out := new(CSIStorageCapacity)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]CSIStorageCapacity, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.
func (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {
if in == nil {
return nil
}
out := new(CSIStorageCapacityList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *StorageClass) DeepCopyInto(out *StorageClass) {
*out = *in

View File

@@ -80,6 +80,7 @@ go_library(
"//pkg/apis/storage:go_default_library",
"//pkg/apis/storage/install:go_default_library",
"//pkg/apis/storage/util:go_default_library",
"//pkg/features:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/util/node:go_default_library",
"//staging/src/k8s.io/api/apps/v1beta1:go_default_library",
@@ -96,12 +97,14 @@ go_library(
"//staging/src/k8s.io/api/rbac/v1beta1:go_default_library",
"//staging/src/k8s.io/api/scheduling/v1:go_default_library",
"//staging/src/k8s.io/api/storage/v1:go_default_library",
"//staging/src/k8s.io/api/storage/v1alpha1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/duration:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
],
)

View File

@@ -91,6 +91,7 @@ filegroup(
"//pkg/registry/settings/rest:all-srcs",
"//pkg/registry/storage/csidriver:all-srcs",
"//pkg/registry/storage/csinode:all-srcs",
"//pkg/registry/storage/csistoragecapacity:all-srcs",
"//pkg/registry/storage/rest:all-srcs",
"//pkg/registry/storage/storageclass:all-srcs",
"//pkg/registry/storage/volumeattachment:all-srcs",

View File

@@ -0,0 +1,53 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = [
"doc.go",
"strategy.go",
],
importpath = "k8s.io/kubernetes/pkg/registry/storage/csistoragecapacity",
visibility = ["//visibility:public"],
deps = [
"//pkg/api/legacyscheme:go_default_library",
"//pkg/apis/storage:go_default_library",
"//pkg/apis/storage/validation:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/storage/names:go_default_library",
],
)
go_test(
name = "go_default_test",
srcs = ["strategy_test.go"],
embed = [":go_default_library"],
deps = [
"//pkg/apis/storage:go_default_library",
"//pkg/features:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/equality:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/diff:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/endpoints/request:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library",
"//staging/src/k8s.io/component-base/featuregate/testing:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [
":package-srcs",
"//pkg/registry/storage/csistoragecapacity/storage:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,49 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
go_library(
name = "go_default_library",
srcs = ["storage.go"],
importpath = "k8s.io/kubernetes/pkg/registry/storage/csistoragecapacity/storage",
visibility = ["//visibility:public"],
deps = [
"//pkg/apis/storage:go_default_library",
"//pkg/registry/storage/csistoragecapacity:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/registry/generic:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/registry/generic/registry:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/registry/rest:go_default_library",
],
)
go_test(
name = "go_default_test",
srcs = ["storage_test.go"],
embed = [":go_default_library"],
deps = [
"//pkg/apis/storage:go_default_library",
"//pkg/apis/storage/install:go_default_library",
"//pkg/registry/registrytest:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/fields:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/registry/generic:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/registry/generic/testing:go_default_library",
"//staging/src/k8s.io/apiserver/pkg/storage/etcd3/testing:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -15,6 +15,7 @@ go_library(
"//pkg/features:go_default_library",
"//pkg/registry/storage/csidriver/storage:go_default_library",
"//pkg/registry/storage/csinode/storage:go_default_library",
"//pkg/registry/storage/csistoragecapacity/storage:go_default_library",
"//pkg/registry/storage/storageclass/storage:go_default_library",
"//pkg/registry/storage/volumeattachment/storage:go_default_library",
"//staging/src/k8s.io/api/storage/v1:go_default_library",

View File

@@ -520,91 +520,93 @@ func init() {
}
var fileDescriptor_3b530c1983504d8d = []byte{
// 1336 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x4f, 0x6f, 0x1b, 0x45,
0x14, 0xcf, 0xc6, 0xf9, 0x3b, 0x4e, 0x5a, 0x67, 0x1a, 0xc0, 0xe4, 0xe0, 0x8d, 0x96, 0x0a, 0x42,
0xa1, 0xeb, 0xa6, 0x94, 0xaa, 0xaa, 0x04, 0x52, 0x36, 0x31, 0x22, 0x22, 0x4e, 0xa2, 0x49, 0xa9,
0x10, 0x02, 0xc4, 0x64, 0xf7, 0xd5, 0xd9, 0xc6, 0xbb, 0xb3, 0xdd, 0x1d, 0x1b, 0x7c, 0xe3, 0xc4,
0x0d, 0x09, 0xae, 0x7c, 0x0a, 0x90, 0xe0, 0xc2, 0x91, 0x53, 0xb9, 0x55, 0x9c, 0x7a, 0xb2, 0xe8,
0x72, 0x05, 0x3e, 0x40, 0x4e, 0x68, 0x66, 0xc7, 0xde, 0xb5, 0xbd, 0x4e, 0xd3, 0x8b, 0x6f, 0x9e,
0xf7, 0xde, 0xef, 0xf7, 0xde, 0x9b, 0xf7, 0x67, 0xd6, 0xe8, 0xfd, 0xd3, 0x3b, 0x91, 0xe9, 0xb2,
0xea, 0x69, 0xeb, 0x18, 0x42, 0x1f, 0x38, 0x44, 0xd5, 0x36, 0xf8, 0x0e, 0x0b, 0xab, 0x4a, 0x41,
0x03, 0xb7, 0x1a, 0x71, 0x16, 0xd2, 0x06, 0x54, 0xdb, 0x9b, 0xd5, 0x06, 0xf8, 0x10, 0x52, 0x0e,
0x8e, 0x19, 0x84, 0x8c, 0x33, 0xfc, 0x52, 0x62, 0x66, 0xd2, 0xc0, 0x35, 0x95, 0x99, 0xd9, 0xde,
0x5c, 0xbb, 0xde, 0x70, 0xf9, 0x49, 0xeb, 0xd8, 0xb4, 0x99, 0x57, 0x6d, 0xb0, 0x06, 0xab, 0x4a,
0xeb, 0xe3, 0xd6, 0x03, 0x79, 0x92, 0x07, 0xf9, 0x2b, 0x61, 0x59, 0x33, 0x32, 0xce, 0x6c, 0x16,
0xe6, 0x79, 0x5a, 0xbb, 0x95, 0xda, 0x78, 0xd4, 0x3e, 0x71, 0x7d, 0x08, 0x3b, 0xd5, 0xe0, 0xb4,
0x21, 0x04, 0x51, 0xd5, 0x03, 0x4e, 0xf3, 0x50, 0xd5, 0x71, 0xa8, 0xb0, 0xe5, 0x73, 0xd7, 0x83,
0x11, 0xc0, 0xed, 0xe7, 0x01, 0x22, 0xfb, 0x04, 0x3c, 0x3a, 0x8c, 0x33, 0x7e, 0xd5, 0xd0, 0xe2,
0xf6, 0xd1, 0xee, 0x4e, 0xe8, 0xb6, 0x21, 0xc4, 0x5f, 0xa2, 0x05, 0x11, 0x91, 0x43, 0x39, 0x2d,
0x6b, 0xeb, 0xda, 0x46, 0xf1, 0xe6, 0x0d, 0x33, 0xbd, 0xa9, 0x3e, 0xb1, 0x19, 0x9c, 0x36, 0x84,
0x20, 0x32, 0x85, 0xb5, 0xd9, 0xde, 0x34, 0x0f, 0x8e, 0x1f, 0x82, 0xcd, 0xeb, 0xc0, 0xa9, 0x85,
0x1f, 0x77, 0xf5, 0xa9, 0xb8, 0xab, 0xa3, 0x54, 0x46, 0xfa, 0xac, 0xf8, 0x03, 0x34, 0x13, 0x05,
0x60, 0x97, 0xa7, 0x25, 0xfb, 0x55, 0x33, 0xb7, 0x0e, 0x66, 0x3f, 0xa2, 0xa3, 0x00, 0x6c, 0x6b,
0x49, 0x31, 0xce, 0x88, 0x13, 0x91, 0x78, 0xe3, 0x17, 0x0d, 0x2d, 0xf7, 0xad, 0xf6, 0xdc, 0x88,
0xe3, 0xcf, 0x46, 0x62, 0x37, 0x2f, 0x16, 0xbb, 0x40, 0xcb, 0xc8, 0x4b, 0xca, 0xcf, 0x42, 0x4f,
0x92, 0x89, 0xbb, 0x86, 0x66, 0x5d, 0x0e, 0x5e, 0x54, 0x9e, 0x5e, 0x2f, 0x6c, 0x14, 0x6f, 0xae,
0x3f, 0x2f, 0x70, 0x6b, 0x59, 0x91, 0xcd, 0xee, 0x0a, 0x18, 0x49, 0xd0, 0xc6, 0x3f, 0xd9, 0xb0,
0x45, 0x3a, 0xf8, 0x2e, 0xba, 0x44, 0x39, 0xa7, 0xf6, 0x09, 0x81, 0x47, 0x2d, 0x37, 0x04, 0x47,
0x06, 0xbf, 0x60, 0xe1, 0xb8, 0xab, 0x5f, 0xda, 0x1a, 0xd0, 0x90, 0x21, 0x4b, 0x81, 0x0d, 0x98,
0xb3, 0xeb, 0x3f, 0x60, 0x07, 0x7e, 0x9d, 0xb5, 0x7c, 0x2e, 0xaf, 0x55, 0x61, 0x0f, 0x07, 0x34,
0x64, 0xc8, 0x12, 0xdb, 0x68, 0xb5, 0xcd, 0x9a, 0x2d, 0x0f, 0xf6, 0xdc, 0x07, 0x60, 0x77, 0xec,
0x26, 0xd4, 0x99, 0x03, 0x51, 0xb9, 0xb0, 0x5e, 0xd8, 0x58, 0xb4, 0xaa, 0x71, 0x57, 0x5f, 0xbd,
0x9f, 0xa3, 0x3f, 0xeb, 0xea, 0x57, 0x72, 0xe4, 0x24, 0x97, 0xcc, 0xf8, 0x59, 0x43, 0xf3, 0xdb,
0x47, 0xbb, 0xfb, 0xcc, 0x81, 0x09, 0xf4, 0xd6, 0xce, 0x40, 0x6f, 0x19, 0xe3, 0x4b, 0x24, 0xe2,
0x19, 0xdb, 0x59, 0xff, 0x25, 0x25, 0x12, 0x36, 0x6a, 0x2a, 0xd6, 0xd1, 0x8c, 0x4f, 0x3d, 0x90,
0x51, 0x2f, 0xa6, 0x98, 0x7d, 0xea, 0x01, 0x91, 0x1a, 0xfc, 0x3a, 0x9a, 0xf3, 0x99, 0x03, 0xbb,
0x3b, 0xd2, 0xf7, 0xa2, 0x75, 0x49, 0xd9, 0xcc, 0xed, 0x4b, 0x29, 0x51, 0x5a, 0x7c, 0x0b, 0x2d,
0x71, 0x16, 0xb0, 0x26, 0x6b, 0x74, 0x3e, 0x82, 0x4e, 0xef, 0xb2, 0x4b, 0x71, 0x57, 0x5f, 0xba,
0x97, 0x91, 0x93, 0x01, 0x2b, 0xfc, 0x39, 0x2a, 0xd2, 0x66, 0x93, 0xd9, 0x94, 0xd3, 0xe3, 0x26,
0x94, 0x67, 0x64, 0x7a, 0xd7, 0xc6, 0xa4, 0x97, 0x14, 0x47, 0xf8, 0x25, 0x10, 0xb1, 0x56, 0x68,
0x43, 0x64, 0x5d, 0x8e, 0xbb, 0x7a, 0x71, 0x2b, 0xa5, 0x20, 0x59, 0x3e, 0xe3, 0x27, 0x0d, 0x15,
0x55, 0xc2, 0x13, 0x18, 0xa4, 0xed, 0xc1, 0x41, 0xaa, 0x9c, 0x5f, 0xa5, 0x31, 0x63, 0xf4, 0x45,
0x3f, 0x62, 0x39, 0x43, 0x07, 0x68, 0xde, 0x91, 0xa5, 0x8a, 0xca, 0x9a, 0x64, 0xbd, 0x7a, 0x3e,
0xab, 0x1a, 0xd1, 0xcb, 0x8a, 0x7b, 0x3e, 0x39, 0x47, 0xa4, 0xc7, 0x62, 0x7c, 0x37, 0x87, 0x96,
0x8e, 0x12, 0xd8, 0x76, 0x93, 0x46, 0xd1, 0x04, 0x9a, 0xf7, 0x5d, 0x54, 0x0c, 0x42, 0xd6, 0x76,
0x23, 0x97, 0xf9, 0x10, 0xaa, 0x3e, 0xba, 0xa2, 0x20, 0xc5, 0xc3, 0x54, 0x45, 0xb2, 0x76, 0xb8,
0x81, 0x50, 0x40, 0x43, 0xea, 0x01, 0x17, 0xd9, 0x17, 0x64, 0xf6, 0xef, 0x8c, 0xc9, 0x3e, 0x9b,
0x91, 0x79, 0xd8, 0x47, 0xd5, 0x7c, 0x1e, 0x76, 0xd2, 0xe8, 0x52, 0x05, 0xc9, 0x50, 0xe3, 0x53,
0xb4, 0x1c, 0x82, 0xdd, 0xa4, 0xae, 0x77, 0xc8, 0x9a, 0xae, 0xdd, 0x91, 0x6d, 0xb8, 0x68, 0xd5,
0xe2, 0xae, 0xbe, 0x4c, 0xb2, 0x8a, 0xb3, 0xae, 0x7e, 0x63, 0xf4, 0x5d, 0x34, 0x0f, 0x21, 0x8c,
0xdc, 0x88, 0x83, 0xcf, 0x93, 0x0e, 0x1d, 0xc0, 0x90, 0x41, 0x6e, 0x31, 0x27, 0x9e, 0xd8, 0x52,
0x07, 0x01, 0x77, 0x99, 0x1f, 0x95, 0x67, 0xd3, 0x39, 0xa9, 0x67, 0xe4, 0x64, 0xc0, 0x0a, 0xef,
0xa1, 0x55, 0xd1, 0xd7, 0x5f, 0x25, 0x0e, 0x6a, 0x5f, 0x07, 0xd4, 0x17, 0xb7, 0x54, 0x9e, 0x93,
0x4b, 0xb1, 0x2c, 0x56, 0xda, 0x56, 0x8e, 0x9e, 0xe4, 0xa2, 0xf0, 0x27, 0x68, 0x25, 0xd9, 0x69,
0x96, 0xeb, 0x3b, 0xae, 0xdf, 0x10, 0x1b, 0xad, 0x3c, 0x2f, 0x93, 0xbe, 0x16, 0x77, 0xf5, 0x95,
0xfb, 0xc3, 0xca, 0xb3, 0x3c, 0x21, 0x19, 0x25, 0xc1, 0x8f, 0xd0, 0x8a, 0xf4, 0x08, 0x8e, 0x1a,
0x7a, 0x17, 0xa2, 0xf2, 0x82, 0x2c, 0xdd, 0x46, 0xb6, 0x74, 0xe2, 0xea, 0x44, 0xdd, 0x7a, 0xab,
0xe1, 0x08, 0x9a, 0x60, 0x73, 0x16, 0xde, 0x83, 0xd0, 0xb3, 0x5e, 0x55, 0xf5, 0x5a, 0xd9, 0x1a,
0xa6, 0x22, 0xa3, 0xec, 0x6b, 0xef, 0xa1, 0xcb, 0x43, 0x05, 0xc7, 0x25, 0x54, 0x38, 0x85, 0x4e,
0xb2, 0xd4, 0x88, 0xf8, 0x89, 0x57, 0xd1, 0x6c, 0x9b, 0x36, 0x5b, 0x90, 0x34, 0x1f, 0x49, 0x0e,
0x77, 0xa7, 0xef, 0x68, 0xc6, 0x6f, 0x1a, 0x2a, 0x65, 0xbb, 0x67, 0x02, 0x7b, 0xe2, 0xc3, 0xc1,
0x3d, 0xf1, 0xda, 0x05, 0x7a, 0x7a, 0xcc, 0xb2, 0xf8, 0x71, 0x1a, 0x95, 0x92, 0xba, 0x24, 0xcf,
0xa9, 0x07, 0x3e, 0x9f, 0xc0, 0x40, 0xd7, 0x07, 0x5e, 0xa3, 0xb7, 0xce, 0x5d, 0xd7, 0x69, 0x60,
0xe3, 0x9e, 0x25, 0xfc, 0x31, 0x9a, 0x8b, 0x38, 0xe5, 0x2d, 0x31, 0xe4, 0x82, 0xf0, 0xfa, 0x45,
0x09, 0x25, 0x28, 0x7d, 0x91, 0x92, 0x33, 0x51, 0x64, 0xc6, 0xef, 0x1a, 0x5a, 0x1d, 0x86, 0x4c,
0xa0, 0xba, 0x7b, 0x83, 0xd5, 0x7d, 0xe3, 0x82, 0xc9, 0x8c, 0xa9, 0xf0, 0x9f, 0x1a, 0x7a, 0x79,
0x24, 0x6f, 0xf9, 0xf6, 0x89, 0x9d, 0x10, 0x0c, 0x6d, 0x9e, 0xfd, 0xf4, 0x2d, 0x97, 0x3b, 0xe1,
0x30, 0x47, 0x4f, 0x72, 0x51, 0xf8, 0x21, 0x2a, 0xb9, 0x7e, 0xd3, 0xf5, 0x21, 0x91, 0x1d, 0xa5,
0xf5, 0xcd, 0x1d, 0xdc, 0x61, 0x66, 0x59, 0xdc, 0xd5, 0xb8, 0xab, 0x97, 0x76, 0x87, 0x58, 0xc8,
0x08, 0xaf, 0xf1, 0x47, 0x4e, 0x65, 0xe4, 0x6b, 0xf7, 0x36, 0x5a, 0x48, 0xbe, 0x03, 0x21, 0x54,
0x69, 0xf4, 0x6f, 0x7a, 0x4b, 0xc9, 0x49, 0xdf, 0x42, 0xf6, 0x8d, 0xbc, 0x0a, 0x15, 0xe8, 0x85,
0xfb, 0x46, 0x82, 0x32, 0x7d, 0x23, 0xcf, 0x44, 0x91, 0x89, 0x20, 0xc4, 0x37, 0x8d, 0xbc, 0xcb,
0xc2, 0x60, 0x10, 0xfb, 0x4a, 0x4e, 0xfa, 0x16, 0xc6, 0xbf, 0x85, 0x9c, 0x02, 0xc9, 0x06, 0xcc,
0x64, 0xd3, 0xfb, 0xf2, 0x1d, 0xce, 0xc6, 0xe9, 0x67, 0xe3, 0xe0, 0x1f, 0x34, 0x84, 0x69, 0x9f,
0xa2, 0xde, 0x6b, 0xd0, 0xa4, 0x8b, 0x6a, 0x2f, 0x34, 0x12, 0xe6, 0xd6, 0x08, 0x4f, 0xf2, 0x12,
0xae, 0x29, 0xff, 0x78, 0xd4, 0x80, 0xe4, 0x38, 0xc7, 0x0e, 0x2a, 0x26, 0xd2, 0x5a, 0x18, 0xb2,
0x50, 0x8d, 0xa7, 0x71, 0x6e, 0x2c, 0xd2, 0xd2, 0xaa, 0xc8, 0xcf, 0xb2, 0x14, 0x7a, 0xd6, 0xd5,
0x8b, 0x19, 0x3d, 0xc9, 0xd2, 0x0a, 0x2f, 0x0e, 0xa4, 0x5e, 0x66, 0x5e, 0xcc, 0xcb, 0x0e, 0x8c,
0xf7, 0x92, 0xa1, 0x5d, 0xab, 0xa1, 0x57, 0xc6, 0x5c, 0xcb, 0x0b, 0xbd, 0x17, 0xdf, 0x6a, 0x28,
0xeb, 0x03, 0xef, 0xa1, 0x19, 0xf1, 0x27, 0x54, 0x2d, 0x92, 0x6b, 0x17, 0x5b, 0x24, 0xf7, 0x5c,
0x0f, 0xd2, 0x55, 0x28, 0x4e, 0x44, 0xb2, 0xe0, 0x37, 0xd1, 0xbc, 0x07, 0x51, 0x44, 0x1b, 0xca,
0x73, 0xfa, 0x21, 0x57, 0x4f, 0xc4, 0xa4, 0xa7, 0x37, 0x6e, 0xa3, 0x2b, 0x39, 0x1f, 0xc4, 0x58,
0x47, 0xb3, 0xb6, 0xfc, 0xbf, 0x24, 0x02, 0x9a, 0xb5, 0x16, 0xc5, 0x46, 0xd9, 0x96, 0x7f, 0x93,
0x12, 0xb9, 0xb5, 0xf1, 0xf8, 0x59, 0x65, 0xea, 0xc9, 0xb3, 0xca, 0xd4, 0xd3, 0x67, 0x95, 0xa9,
0x6f, 0xe2, 0x8a, 0xf6, 0x38, 0xae, 0x68, 0x4f, 0xe2, 0x8a, 0xf6, 0x34, 0xae, 0x68, 0x7f, 0xc5,
0x15, 0xed, 0xfb, 0xbf, 0x2b, 0x53, 0x9f, 0x4e, 0xb7, 0x37, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff,
0x9b, 0x74, 0xdf, 0x56, 0x8a, 0x10, 0x00, 0x00,
// 1363 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcf, 0x6f, 0x1b, 0xc5,
0x17, 0xcf, 0xc6, 0xf9, 0x39, 0x4e, 0x1a, 0x67, 0x92, 0xef, 0x17, 0x93, 0x83, 0x37, 0x5a, 0x2a,
0x08, 0x85, 0xae, 0x9b, 0x52, 0xaa, 0xaa, 0x52, 0x91, 0xe2, 0xc4, 0x88, 0x88, 0x38, 0x89, 0x26,
0xa5, 0x42, 0x08, 0x10, 0x93, 0xdd, 0x57, 0x67, 0x1b, 0xef, 0xce, 0x76, 0x77, 0x6c, 0xf0, 0x8d,
0x13, 0x37, 0x24, 0xb8, 0xf2, 0x2f, 0x70, 0x01, 0x09, 0x2e, 0x1c, 0x39, 0x95, 0x5b, 0xc5, 0xa9,
0x27, 0x8b, 0x2e, 0x67, 0xf8, 0x03, 0x72, 0x42, 0x33, 0x3b, 0xf6, 0xee, 0xda, 0xeb, 0x34, 0xbd,
0xe4, 0xe6, 0x79, 0xef, 0x7d, 0x3e, 0xef, 0xbd, 0x79, 0x3f, 0x66, 0x8d, 0xde, 0x3b, 0xbd, 0x13,
0x9a, 0x0e, 0xab, 0x9e, 0xb6, 0x8f, 0x21, 0xf0, 0x80, 0x43, 0x58, 0xed, 0x80, 0x67, 0xb3, 0xa0,
0xaa, 0x14, 0xd4, 0x77, 0xaa, 0x21, 0x67, 0x01, 0x6d, 0x42, 0xb5, 0xb3, 0x59, 0x6d, 0x82, 0x07,
0x01, 0xe5, 0x60, 0x9b, 0x7e, 0xc0, 0x38, 0xc3, 0xff, 0x8b, 0xcd, 0x4c, 0xea, 0x3b, 0xa6, 0x32,
0x33, 0x3b, 0x9b, 0x6b, 0xd7, 0x9b, 0x0e, 0x3f, 0x69, 0x1f, 0x9b, 0x16, 0x73, 0xab, 0x4d, 0xd6,
0x64, 0x55, 0x69, 0x7d, 0xdc, 0x7e, 0x28, 0x4f, 0xf2, 0x20, 0x7f, 0xc5, 0x2c, 0x6b, 0x46, 0xca,
0x99, 0xc5, 0x82, 0x3c, 0x4f, 0x6b, 0xb7, 0x12, 0x1b, 0x97, 0x5a, 0x27, 0x8e, 0x07, 0x41, 0xb7,
0xea, 0x9f, 0x36, 0x85, 0x20, 0xac, 0xba, 0xc0, 0x69, 0x1e, 0xaa, 0x3a, 0x0e, 0x15, 0xb4, 0x3d,
0xee, 0xb8, 0x30, 0x02, 0xb8, 0xfd, 0x22, 0x40, 0x68, 0x9d, 0x80, 0x4b, 0x87, 0x71, 0xc6, 0xaf,
0x1a, 0x9a, 0xdf, 0x3e, 0xda, 0xdd, 0x09, 0x9c, 0x0e, 0x04, 0xf8, 0x0b, 0x34, 0x27, 0x22, 0xb2,
0x29, 0xa7, 0x65, 0x6d, 0x5d, 0xdb, 0x28, 0xde, 0xbc, 0x61, 0x26, 0x37, 0x35, 0x20, 0x36, 0xfd,
0xd3, 0xa6, 0x10, 0x84, 0xa6, 0xb0, 0x36, 0x3b, 0x9b, 0xe6, 0xc1, 0xf1, 0x23, 0xb0, 0x78, 0x03,
0x38, 0xad, 0xe1, 0x27, 0x3d, 0x7d, 0x22, 0xea, 0xe9, 0x28, 0x91, 0x91, 0x01, 0x2b, 0x7e, 0x1f,
0x4d, 0x85, 0x3e, 0x58, 0xe5, 0x49, 0xc9, 0x7e, 0xd5, 0xcc, 0xad, 0x83, 0x39, 0x88, 0xe8, 0xc8,
0x07, 0xab, 0xb6, 0xa0, 0x18, 0xa7, 0xc4, 0x89, 0x48, 0xbc, 0xf1, 0x8b, 0x86, 0x16, 0x07, 0x56,
0x7b, 0x4e, 0xc8, 0xf1, 0xa7, 0x23, 0xb1, 0x9b, 0x17, 0x8b, 0x5d, 0xa0, 0x65, 0xe4, 0x25, 0xe5,
0x67, 0xae, 0x2f, 0x49, 0xc5, 0x5d, 0x47, 0xd3, 0x0e, 0x07, 0x37, 0x2c, 0x4f, 0xae, 0x17, 0x36,
0x8a, 0x37, 0xd7, 0x5f, 0x14, 0x78, 0x6d, 0x51, 0x91, 0x4d, 0xef, 0x0a, 0x18, 0x89, 0xd1, 0xc6,
0x8f, 0x93, 0xa9, 0xb0, 0x45, 0x3a, 0xf8, 0x2e, 0xba, 0x42, 0x39, 0xa7, 0xd6, 0x09, 0x81, 0xc7,
0x6d, 0x27, 0x00, 0x5b, 0x06, 0x3f, 0x57, 0xc3, 0x51, 0x4f, 0xbf, 0xb2, 0x95, 0xd1, 0x90, 0x21,
0x4b, 0x81, 0xf5, 0x99, 0xbd, 0xeb, 0x3d, 0x64, 0x07, 0x5e, 0x83, 0xb5, 0x3d, 0x2e, 0xaf, 0x55,
0x61, 0x0f, 0x33, 0x1a, 0x32, 0x64, 0x89, 0x2d, 0xb4, 0xda, 0x61, 0xad, 0xb6, 0x0b, 0x7b, 0xce,
0x43, 0xb0, 0xba, 0x56, 0x0b, 0x1a, 0xcc, 0x86, 0xb0, 0x5c, 0x58, 0x2f, 0x6c, 0xcc, 0xd7, 0xaa,
0x51, 0x4f, 0x5f, 0x7d, 0x90, 0xa3, 0x3f, 0xeb, 0xe9, 0x2b, 0x39, 0x72, 0x92, 0x4b, 0x86, 0xef,
0xa1, 0x25, 0x75, 0x39, 0xdb, 0xd4, 0xa7, 0x96, 0xc3, 0xbb, 0xe5, 0x29, 0x19, 0xe1, 0x4a, 0xd4,
0xd3, 0x97, 0x8e, 0xb2, 0x2a, 0x32, 0x6c, 0x6b, 0xfc, 0xac, 0xa1, 0xd9, 0xed, 0xa3, 0xdd, 0x7d,
0x66, 0xc3, 0x25, 0xb4, 0xe6, 0x4e, 0xa6, 0x35, 0x8d, 0xf1, 0x15, 0x16, 0xf1, 0x8c, 0x6d, 0xcc,
0x7f, 0xe3, 0xc6, 0x14, 0x36, 0x6a, 0xa8, 0xd6, 0xd1, 0x94, 0x47, 0x5d, 0x90, 0x51, 0xcf, 0x27,
0x98, 0x7d, 0xea, 0x02, 0x91, 0x1a, 0xfc, 0x3a, 0x9a, 0xf1, 0x98, 0x0d, 0xbb, 0x3b, 0xd2, 0xf7,
0x7c, 0xed, 0x8a, 0xb2, 0x99, 0xd9, 0x97, 0x52, 0xa2, 0xb4, 0xf8, 0x16, 0x5a, 0xe0, 0xcc, 0x67,
0x2d, 0xd6, 0xec, 0x7e, 0x08, 0xdd, 0x7e, 0xad, 0x4a, 0x51, 0x4f, 0x5f, 0xb8, 0x9f, 0x92, 0x93,
0x8c, 0x15, 0xfe, 0x0c, 0x15, 0x69, 0xab, 0xc5, 0x2c, 0xca, 0xe9, 0x71, 0x0b, 0x64, 0x01, 0x8a,
0x37, 0xaf, 0x8d, 0x49, 0x2f, 0xae, 0xad, 0xf0, 0x4b, 0x20, 0x64, 0xed, 0xc0, 0x82, 0xb0, 0xb6,
0x14, 0xf5, 0xf4, 0xe2, 0x56, 0x42, 0x41, 0xd2, 0x7c, 0xc6, 0x4f, 0x1a, 0x2a, 0xaa, 0x84, 0x2f,
0x61, 0x0e, 0xb7, 0xb3, 0x73, 0x58, 0x39, 0xbf, 0x4a, 0x63, 0xa6, 0xf0, 0xf3, 0x41, 0xc4, 0x72,
0x04, 0x0f, 0xd0, 0xac, 0x2d, 0x4b, 0x15, 0x96, 0x35, 0xc9, 0x7a, 0xf5, 0x7c, 0x56, 0x35, 0xe1,
0x4b, 0x8a, 0x7b, 0x36, 0x3e, 0x87, 0xa4, 0xcf, 0x62, 0x7c, 0x3b, 0x83, 0x16, 0xfa, 0xcd, 0xdd,
0xa2, 0x61, 0x78, 0x09, 0xcd, 0xfb, 0x2e, 0x2a, 0xfa, 0x01, 0xeb, 0x38, 0xa1, 0xc3, 0x3c, 0x08,
0x54, 0x1f, 0xad, 0x28, 0x48, 0xf1, 0x30, 0x51, 0x91, 0xb4, 0x1d, 0x6e, 0x22, 0xe4, 0xd3, 0x80,
0xba, 0xc0, 0x45, 0xf6, 0x05, 0x99, 0xfd, 0x3b, 0x63, 0xb2, 0x4f, 0x67, 0x64, 0x1e, 0x0e, 0x50,
0x75, 0x8f, 0x07, 0xdd, 0x24, 0xba, 0x44, 0x41, 0x52, 0xd4, 0xf8, 0x14, 0x2d, 0x06, 0x60, 0xb5,
0xa8, 0xe3, 0x1e, 0xb2, 0x96, 0x63, 0xc5, 0x7b, 0x60, 0xbe, 0x56, 0x8f, 0x7a, 0xfa, 0x22, 0x49,
0x2b, 0xce, 0x7a, 0xfa, 0x8d, 0xd1, 0x67, 0xd5, 0x3c, 0x84, 0x20, 0x74, 0x42, 0x0e, 0x1e, 0x8f,
0x3b, 0x34, 0x83, 0x21, 0x59, 0x6e, 0x31, 0x27, 0xae, 0x58, 0x72, 0x07, 0x3e, 0x77, 0x98, 0x17,
0x96, 0xa7, 0x93, 0x39, 0x69, 0xa4, 0xe4, 0x24, 0x63, 0x85, 0xf7, 0xd0, 0xaa, 0xe8, 0xeb, 0x2f,
0x63, 0x07, 0xf5, 0xaf, 0x7c, 0xea, 0x89, 0x5b, 0x2a, 0xcf, 0xc8, 0x8d, 0x55, 0x16, 0x1b, 0x71,
0x2b, 0x47, 0x4f, 0x72, 0x51, 0xf8, 0x63, 0xb4, 0x1c, 0xaf, 0xc4, 0x9a, 0xe3, 0xd9, 0x8e, 0xd7,
0x14, 0x0b, 0xb1, 0x3c, 0x2b, 0x93, 0xbe, 0x16, 0xf5, 0xf4, 0xe5, 0x07, 0xc3, 0xca, 0xb3, 0x3c,
0x21, 0x19, 0x25, 0xc1, 0x8f, 0xd1, 0xb2, 0xf4, 0x08, 0xb6, 0x1a, 0x7a, 0x07, 0xc2, 0xf2, 0x9c,
0x2c, 0xdd, 0x46, 0xba, 0x74, 0xe2, 0xea, 0x44, 0xdd, 0xfa, 0xab, 0xe1, 0x08, 0x5a, 0x60, 0x71,
0x16, 0xdc, 0x87, 0xc0, 0xad, 0xbd, 0xaa, 0xea, 0xb5, 0xbc, 0x35, 0x4c, 0x45, 0x46, 0xd9, 0xd7,
0xee, 0xa1, 0xa5, 0xa1, 0x82, 0xe3, 0x12, 0x2a, 0x9c, 0x42, 0x37, 0x5e, 0x6a, 0x44, 0xfc, 0xc4,
0xab, 0x68, 0xba, 0x43, 0x5b, 0x6d, 0x88, 0x9b, 0x8f, 0xc4, 0x87, 0xbb, 0x93, 0x77, 0x34, 0xe3,
0x37, 0x0d, 0x95, 0xd2, 0xdd, 0x73, 0x09, 0x7b, 0xe2, 0x83, 0xec, 0x9e, 0x78, 0xed, 0x02, 0x3d,
0x3d, 0x66, 0x59, 0xfc, 0x30, 0x89, 0x4a, 0x71, 0x5d, 0xe2, 0xd7, 0xd8, 0x05, 0x8f, 0x5f, 0xc2,
0x40, 0x37, 0x32, 0xaf, 0xd1, 0x5b, 0xe7, 0xae, 0xeb, 0x24, 0xb0, 0x71, 0xcf, 0x12, 0xfe, 0x08,
0xcd, 0x84, 0x9c, 0xf2, 0xb6, 0x18, 0x72, 0x41, 0x78, 0xfd, 0xa2, 0x84, 0x12, 0x94, 0xbc, 0x48,
0xf1, 0x99, 0x28, 0x32, 0xe3, 0x77, 0x0d, 0xad, 0x0e, 0x43, 0x2e, 0xa1, 0xba, 0x7b, 0xd9, 0xea,
0xbe, 0x71, 0xc1, 0x64, 0xc6, 0x54, 0xf8, 0x4f, 0x0d, 0xfd, 0x7f, 0x24, 0x6f, 0xf9, 0xf6, 0x89,
0x9d, 0xe0, 0x0f, 0x6d, 0x9e, 0xfd, 0xe4, 0x2d, 0x97, 0x3b, 0xe1, 0x30, 0x47, 0x4f, 0x72, 0x51,
0xf8, 0x11, 0x2a, 0x39, 0x5e, 0xcb, 0xf1, 0x20, 0x96, 0x1d, 0x25, 0xf5, 0xcd, 0x1d, 0xdc, 0x61,
0x66, 0x59, 0xdc, 0xd5, 0xa8, 0xa7, 0x97, 0x76, 0x87, 0x58, 0xc8, 0x08, 0xaf, 0xf1, 0x47, 0x4e,
0x65, 0xe4, 0x6b, 0xf7, 0x36, 0x9a, 0x8b, 0x3f, 0x23, 0x21, 0x50, 0x69, 0x0c, 0x6e, 0x7a, 0x4b,
0xc9, 0xc9, 0xc0, 0x42, 0xf6, 0x8d, 0xbc, 0x0a, 0x15, 0xe8, 0x85, 0xfb, 0x46, 0x82, 0x52, 0x7d,
0x23, 0xcf, 0x44, 0x91, 0x89, 0x20, 0xc4, 0x37, 0x8d, 0xbc, 0xcb, 0x42, 0x36, 0x88, 0x7d, 0x25,
0x27, 0x03, 0x0b, 0xe3, 0x9f, 0x42, 0x4e, 0x81, 0x64, 0x03, 0xa6, 0xb2, 0xe9, 0x7f, 0x38, 0x0f,
0x67, 0x63, 0x0f, 0xb2, 0xb1, 0xf1, 0xf7, 0x1a, 0xc2, 0x74, 0x40, 0xd1, 0xe8, 0x37, 0x68, 0xdc,
0x45, 0xf5, 0x97, 0x1a, 0x09, 0x73, 0x6b, 0x84, 0x27, 0x7e, 0x09, 0xd7, 0x94, 0x7f, 0x3c, 0x6a,
0x40, 0x72, 0x9c, 0x63, 0x1b, 0x15, 0x63, 0x69, 0x3d, 0x08, 0x58, 0xa0, 0xc6, 0xd3, 0x38, 0x37,
0x16, 0x69, 0x59, 0xab, 0xc8, 0xcf, 0xb2, 0x04, 0x7a, 0xd6, 0xd3, 0x8b, 0x29, 0x3d, 0x49, 0xd3,
0x0a, 0x2f, 0x36, 0x24, 0x5e, 0xa6, 0x5e, 0xce, 0xcb, 0x0e, 0x8c, 0xf7, 0x92, 0xa2, 0x5d, 0xab,
0xa3, 0x57, 0xc6, 0x5c, 0xcb, 0x4b, 0xbd, 0x17, 0xdf, 0x68, 0x28, 0xed, 0x03, 0xef, 0xa1, 0x29,
0xf1, 0x1f, 0x56, 0x2d, 0x92, 0x6b, 0x17, 0x5b, 0x24, 0xf7, 0x1d, 0x17, 0x92, 0x55, 0x28, 0x4e,
0x44, 0xb2, 0xe0, 0x37, 0xd1, 0xac, 0x0b, 0x61, 0x48, 0x9b, 0xca, 0x73, 0xf2, 0x21, 0xd7, 0x88,
0xc5, 0xa4, 0xaf, 0x37, 0x6e, 0xa3, 0x95, 0x9c, 0x0f, 0x62, 0xac, 0xa3, 0x69, 0x4b, 0xfe, 0xdd,
0x12, 0x01, 0x4d, 0xd7, 0xe6, 0xc5, 0x46, 0xd9, 0x96, 0xff, 0xb2, 0x62, 0x79, 0x6d, 0xe3, 0xc9,
0xf3, 0xca, 0xc4, 0xd3, 0xe7, 0x95, 0x89, 0x67, 0xcf, 0x2b, 0x13, 0x5f, 0x47, 0x15, 0xed, 0x49,
0x54, 0xd1, 0x9e, 0x46, 0x15, 0xed, 0x59, 0x54, 0xd1, 0xfe, 0x8a, 0x2a, 0xda, 0x77, 0x7f, 0x57,
0x26, 0x3e, 0x99, 0xec, 0x6c, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x6c, 0x40, 0x09, 0x76, 0xc9,
0x10, 0x00, 0x00,
}
func (m *CSIDriver) Marshal() (dAtA []byte, err error) {
@@ -717,6 +719,16 @@ func (m *CSIDriverSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.StorageCapacity != nil {
i--
if *m.StorageCapacity {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x20
}
if len(m.VolumeLifecycleModes) > 0 {
for iNdEx := len(m.VolumeLifecycleModes) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.VolumeLifecycleModes[iNdEx])
@@ -1475,6 +1487,9 @@ func (m *CSIDriverSpec) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
}
if m.StorageCapacity != nil {
n += 2
}
return n
}
@@ -1763,6 +1778,7 @@ func (this *CSIDriverSpec) String() string {
`AttachRequired:` + valueToStringGenerated(this.AttachRequired) + `,`,
`PodInfoOnMount:` + valueToStringGenerated(this.PodInfoOnMount) + `,`,
`VolumeLifecycleModes:` + fmt.Sprintf("%v", this.VolumeLifecycleModes) + `,`,
`StorageCapacity:` + valueToStringGenerated(this.StorageCapacity) + `,`,
`}`,
}, "")
return s
@@ -2315,6 +2331,27 @@ func (m *CSIDriverSpec) Unmarshal(dAtA []byte) error {
}
m.VolumeLifecycleModes = append(m.VolumeLifecycleModes, VolumeLifecycleMode(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StorageCapacity", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
b := bool(v != 0)
m.StorageCapacity = &b
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])

View File

@@ -118,6 +118,26 @@ message CSIDriverSpec {
// +optional
// +listType=set
repeated string volumeLifecycleModes = 3;
// If set to true, storageCapacity indicates that the CSI
// volume driver wants pod scheduling to consider the storage
// capacity that the driver deployment will report by creating
// CSIStorageCapacity objects with capacity information.
//
// The check can be enabled immediately when deploying a driver.
// In that case, provisioning new volumes with late binding
// will pause until the driver deployment has published
// some suitable CSIStorageCapacity object.
//
// Alternatively, the driver can be deployed with the field
// unset or false and it can be flipped later when storage
// capacity information has been published.
//
// This is an alpha field and only available when the CSIStorageCapacity
// feature is enabled. The default is false.
//
// +optional
optional bool storageCapacity = 4;
}
// CSINode holds information about all CSI drivers installed on a node.

View File

@@ -52,6 +52,7 @@ var map_CSIDriverSpec = map[string]string{
"attachRequired": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.",
"podInfoOnMount": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.",
"volumeLifecycleModes": "volumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future. This field is beta.",
"storageCapacity": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.",
}
func (CSIDriverSpec) SwaggerDoc() map[string]string {

View File

@@ -103,6 +103,11 @@ func (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {
*out = make([]VolumeLifecycleMode, len(*in))
copy(*out, *in)
}
if in.StorageCapacity != nil {
in, out := &in.StorageCapacity, &out.StorageCapacity
*out = new(bool)
**out = **in
}
return
}

View File

@@ -15,6 +15,7 @@ go_library(
visibility = ["//visibility:public"],
deps = [
"//staging/src/k8s.io/api/core/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",

View File

@@ -27,6 +27,8 @@ import (
proto "github.com/gogo/protobuf/proto"
github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
v11 "k8s.io/api/core/v1"
resource "k8s.io/apimachinery/pkg/api/resource"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
math "math"
math_bits "math/bits"
@@ -45,10 +47,66 @@ var _ = math.Inf
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func (m *CSIStorageCapacity) Reset() { *m = CSIStorageCapacity{} }
func (*CSIStorageCapacity) ProtoMessage() {}
func (*CSIStorageCapacity) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{0}
}
func (m *CSIStorageCapacity) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *CSIStorageCapacity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
func (m *CSIStorageCapacity) XXX_Merge(src proto.Message) {
xxx_messageInfo_CSIStorageCapacity.Merge(m, src)
}
func (m *CSIStorageCapacity) XXX_Size() int {
return m.Size()
}
func (m *CSIStorageCapacity) XXX_DiscardUnknown() {
xxx_messageInfo_CSIStorageCapacity.DiscardUnknown(m)
}
var xxx_messageInfo_CSIStorageCapacity proto.InternalMessageInfo
func (m *CSIStorageCapacityList) Reset() { *m = CSIStorageCapacityList{} }
func (*CSIStorageCapacityList) ProtoMessage() {}
func (*CSIStorageCapacityList) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{1}
}
func (m *CSIStorageCapacityList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *CSIStorageCapacityList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
func (m *CSIStorageCapacityList) XXX_Merge(src proto.Message) {
xxx_messageInfo_CSIStorageCapacityList.Merge(m, src)
}
func (m *CSIStorageCapacityList) XXX_Size() int {
return m.Size()
}
func (m *CSIStorageCapacityList) XXX_DiscardUnknown() {
xxx_messageInfo_CSIStorageCapacityList.DiscardUnknown(m)
}
var xxx_messageInfo_CSIStorageCapacityList proto.InternalMessageInfo
func (m *VolumeAttachment) Reset() { *m = VolumeAttachment{} }
func (*VolumeAttachment) ProtoMessage() {}
func (*VolumeAttachment) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{0}
return fileDescriptor_10f856db1e670dc4, []int{2}
}
func (m *VolumeAttachment) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -76,7 +134,7 @@ var xxx_messageInfo_VolumeAttachment proto.InternalMessageInfo
func (m *VolumeAttachmentList) Reset() { *m = VolumeAttachmentList{} }
func (*VolumeAttachmentList) ProtoMessage() {}
func (*VolumeAttachmentList) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{1}
return fileDescriptor_10f856db1e670dc4, []int{3}
}
func (m *VolumeAttachmentList) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -104,7 +162,7 @@ var xxx_messageInfo_VolumeAttachmentList proto.InternalMessageInfo
func (m *VolumeAttachmentSource) Reset() { *m = VolumeAttachmentSource{} }
func (*VolumeAttachmentSource) ProtoMessage() {}
func (*VolumeAttachmentSource) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{2}
return fileDescriptor_10f856db1e670dc4, []int{4}
}
func (m *VolumeAttachmentSource) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -132,7 +190,7 @@ var xxx_messageInfo_VolumeAttachmentSource proto.InternalMessageInfo
func (m *VolumeAttachmentSpec) Reset() { *m = VolumeAttachmentSpec{} }
func (*VolumeAttachmentSpec) ProtoMessage() {}
func (*VolumeAttachmentSpec) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{3}
return fileDescriptor_10f856db1e670dc4, []int{5}
}
func (m *VolumeAttachmentSpec) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -160,7 +218,7 @@ var xxx_messageInfo_VolumeAttachmentSpec proto.InternalMessageInfo
func (m *VolumeAttachmentStatus) Reset() { *m = VolumeAttachmentStatus{} }
func (*VolumeAttachmentStatus) ProtoMessage() {}
func (*VolumeAttachmentStatus) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{4}
return fileDescriptor_10f856db1e670dc4, []int{6}
}
func (m *VolumeAttachmentStatus) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -188,7 +246,7 @@ var xxx_messageInfo_VolumeAttachmentStatus proto.InternalMessageInfo
func (m *VolumeError) Reset() { *m = VolumeError{} }
func (*VolumeError) ProtoMessage() {}
func (*VolumeError) Descriptor() ([]byte, []int) {
return fileDescriptor_10f856db1e670dc4, []int{5}
return fileDescriptor_10f856db1e670dc4, []int{7}
}
func (m *VolumeError) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
@@ -214,6 +272,8 @@ func (m *VolumeError) XXX_DiscardUnknown() {
var xxx_messageInfo_VolumeError proto.InternalMessageInfo
func init() {
proto.RegisterType((*CSIStorageCapacity)(nil), "k8s.io.api.storage.v1alpha1.CSIStorageCapacity")
proto.RegisterType((*CSIStorageCapacityList)(nil), "k8s.io.api.storage.v1alpha1.CSIStorageCapacityList")
proto.RegisterType((*VolumeAttachment)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachment")
proto.RegisterType((*VolumeAttachmentList)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachmentList")
proto.RegisterType((*VolumeAttachmentSource)(nil), "k8s.io.api.storage.v1alpha1.VolumeAttachmentSource")
@@ -228,54 +288,172 @@ func init() {
}
var fileDescriptor_10f856db1e670dc4 = []byte{
// 745 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x94, 0xcd, 0x6e, 0xd3, 0x40,
0x10, 0xc7, 0xe3, 0x24, 0x6d, 0xd3, 0x0d, 0x1f, 0xd1, 0x2a, 0x82, 0x28, 0x48, 0x4e, 0x95, 0x53,
0x40, 0x74, 0x4d, 0x0a, 0x42, 0x15, 0xb7, 0x58, 0xed, 0xa1, 0xa2, 0x2d, 0x68, 0x8b, 0x38, 0x00,
0x07, 0x36, 0xf6, 0xe2, 0xb8, 0x89, 0x3f, 0xe4, 0x5d, 0x47, 0xea, 0x8d, 0x13, 0x67, 0x6e, 0xbc,
0x01, 0xcf, 0x92, 0x1b, 0x15, 0xa7, 0x9e, 0x22, 0x6a, 0xde, 0x82, 0x0b, 0x68, 0xd7, 0x9b, 0xc4,
0x24, 0x29, 0xb4, 0xbd, 0x79, 0x66, 0x67, 0x7e, 0x33, 0xf3, 0xdf, 0xf1, 0x82, 0x9d, 0xfe, 0x36,
0x43, 0x6e, 0x60, 0xf4, 0xe3, 0x2e, 0x8d, 0x7c, 0xca, 0x29, 0x33, 0x86, 0xd4, 0xb7, 0x83, 0xc8,
0x50, 0x07, 0x24, 0x74, 0x0d, 0xc6, 0x83, 0x88, 0x38, 0xd4, 0x18, 0xb6, 0xc9, 0x20, 0xec, 0x91,
0xb6, 0xe1, 0x50, 0x9f, 0x46, 0x84, 0x53, 0x1b, 0x85, 0x51, 0xc0, 0x03, 0x78, 0x2f, 0x0d, 0x46,
0x24, 0x74, 0x91, 0x0a, 0x46, 0x93, 0xe0, 0xfa, 0xa6, 0xe3, 0xf2, 0x5e, 0xdc, 0x45, 0x56, 0xe0,
0x19, 0x4e, 0xe0, 0x04, 0x86, 0xcc, 0xe9, 0xc6, 0x1f, 0xa4, 0x25, 0x0d, 0xf9, 0x95, 0xb2, 0xea,
0xcd, 0x4c, 0x61, 0x2b, 0x88, 0x44, 0xd5, 0xf9, 0x7a, 0xf5, 0x27, 0xb3, 0x18, 0x8f, 0x58, 0x3d,
0xd7, 0xa7, 0xd1, 0x89, 0x11, 0xf6, 0x1d, 0xe1, 0x60, 0x86, 0x47, 0x39, 0x59, 0x96, 0x65, 0x5c,
0x94, 0x15, 0xc5, 0x3e, 0x77, 0x3d, 0xba, 0x90, 0xf0, 0xf4, 0x7f, 0x09, 0xcc, 0xea, 0x51, 0x8f,
0xcc, 0xe7, 0x35, 0xbf, 0xe6, 0x41, 0xe5, 0x75, 0x30, 0x88, 0x3d, 0xda, 0xe1, 0x9c, 0x58, 0x3d,
0x8f, 0xfa, 0x1c, 0xbe, 0x07, 0x25, 0xd1, 0x98, 0x4d, 0x38, 0xa9, 0x69, 0x1b, 0x5a, 0xab, 0xbc,
0xf5, 0x08, 0xcd, 0x64, 0x9b, 0xf2, 0x51, 0xd8, 0x77, 0x84, 0x83, 0x21, 0x11, 0x8d, 0x86, 0x6d,
0xf4, 0xa2, 0x7b, 0x4c, 0x2d, 0x7e, 0x40, 0x39, 0x31, 0xe1, 0x68, 0xdc, 0xc8, 0x25, 0xe3, 0x06,
0x98, 0xf9, 0xf0, 0x94, 0x0a, 0x8f, 0x40, 0x91, 0x85, 0xd4, 0xaa, 0xe5, 0x25, 0xbd, 0x8d, 0xfe,
0x71, 0x29, 0x68, 0xbe, 0xbd, 0xa3, 0x90, 0x5a, 0xe6, 0x0d, 0x85, 0x2f, 0x0a, 0x0b, 0x4b, 0x18,
0x7c, 0x0b, 0x56, 0x19, 0x27, 0x3c, 0x66, 0xb5, 0x82, 0xc4, 0x3e, 0xbe, 0x1a, 0x56, 0xa6, 0x9a,
0xb7, 0x14, 0x78, 0x35, 0xb5, 0xb1, 0x42, 0x36, 0x47, 0x1a, 0xa8, 0xce, 0xa7, 0xec, 0xbb, 0x8c,
0xc3, 0x77, 0x0b, 0x62, 0xa1, 0xcb, 0x89, 0x25, 0xb2, 0xa5, 0x54, 0x15, 0x55, 0xb2, 0x34, 0xf1,
0x64, 0x84, 0xc2, 0x60, 0xc5, 0xe5, 0xd4, 0x63, 0xb5, 0xfc, 0x46, 0xa1, 0x55, 0xde, 0xda, 0xbc,
0xd2, 0x48, 0xe6, 0x4d, 0x45, 0x5e, 0xd9, 0x13, 0x0c, 0x9c, 0xa2, 0x9a, 0xdf, 0x35, 0x70, 0x67,
0x61, 0xfa, 0x20, 0x8e, 0x2c, 0x0a, 0xf7, 0x41, 0x35, 0xa4, 0x11, 0x73, 0x19, 0xa7, 0x3e, 0x4f,
0x63, 0x0e, 0x89, 0x47, 0xe5, 0x60, 0xeb, 0x66, 0x2d, 0x19, 0x37, 0xaa, 0x2f, 0x97, 0x9c, 0xe3,
0xa5, 0x59, 0xf0, 0x18, 0x54, 0x5c, 0x7f, 0xe0, 0xfa, 0x34, 0xf5, 0x1d, 0xcd, 0x6e, 0xbc, 0x95,
0x9d, 0x43, 0xfc, 0x3a, 0x42, 0x90, 0x79, 0xb2, 0xbc, 0xe8, 0x6a, 0x32, 0x6e, 0x54, 0xf6, 0xe6,
0x28, 0x78, 0x81, 0xdb, 0xfc, 0xb6, 0xe4, 0x7e, 0xc4, 0x01, 0x7c, 0x08, 0x4a, 0x44, 0x7a, 0x68,
0xa4, 0xc6, 0x98, 0xea, 0xdd, 0x51, 0x7e, 0x3c, 0x8d, 0x90, 0x3b, 0x24, 0xa5, 0x50, 0x8d, 0x5e,
0x71, 0x87, 0x64, 0x6a, 0x66, 0x87, 0xa4, 0x8d, 0x15, 0x52, 0xb4, 0xe2, 0x07, 0x76, 0xaa, 0x68,
0xe1, 0xef, 0x56, 0x0e, 0x95, 0x1f, 0x4f, 0x23, 0x9a, 0xbf, 0x0b, 0x4b, 0xae, 0x49, 0x2e, 0x63,
0x66, 0x26, 0x5b, 0xce, 0x54, 0x5a, 0x98, 0xc9, 0x9e, 0xce, 0x64, 0xc3, 0x2f, 0x1a, 0x80, 0x64,
0x8a, 0x38, 0x98, 0x2c, 0x6b, 0xba, 0x51, 0xcf, 0xaf, 0xf1, 0x93, 0xa0, 0xce, 0x02, 0x6d, 0xd7,
0xe7, 0xd1, 0x89, 0x59, 0x57, 0x5d, 0xc0, 0xc5, 0x00, 0xbc, 0xa4, 0x05, 0x78, 0x0c, 0xca, 0xa9,
0x77, 0x37, 0x8a, 0x82, 0x48, 0xfd, 0xb6, 0xad, 0x4b, 0x74, 0x24, 0xe3, 0x4d, 0x3d, 0x19, 0x37,
0xca, 0x9d, 0x19, 0xe0, 0xd7, 0xb8, 0x51, 0xce, 0x9c, 0xe3, 0x2c, 0x5c, 0xd4, 0xb2, 0xe9, 0xac,
0x56, 0xf1, 0x3a, 0xb5, 0x76, 0xe8, 0xc5, 0xb5, 0x32, 0xf0, 0xfa, 0x2e, 0xb8, 0x7b, 0x81, 0x44,
0xb0, 0x02, 0x0a, 0x7d, 0x7a, 0x92, 0x6e, 0x22, 0x16, 0x9f, 0xb0, 0x0a, 0x56, 0x86, 0x64, 0x10,
0xa7, 0x1b, 0xb7, 0x8e, 0x53, 0xe3, 0x59, 0x7e, 0x5b, 0x6b, 0x7e, 0xd2, 0x40, 0xb6, 0x06, 0xdc,
0x07, 0x45, 0xf1, 0x96, 0xab, 0x67, 0xe6, 0xc1, 0xe5, 0x9e, 0x99, 0x57, 0xae, 0x47, 0x67, 0xcf,
0xa5, 0xb0, 0xb0, 0xa4, 0xc0, 0xfb, 0x60, 0xcd, 0xa3, 0x8c, 0x11, 0x47, 0x55, 0x36, 0x6f, 0xab,
0xa0, 0xb5, 0x83, 0xd4, 0x8d, 0x27, 0xe7, 0x26, 0x1a, 0x9d, 0xeb, 0xb9, 0xd3, 0x73, 0x3d, 0x77,
0x76, 0xae, 0xe7, 0x3e, 0x26, 0xba, 0x36, 0x4a, 0x74, 0xed, 0x34, 0xd1, 0xb5, 0xb3, 0x44, 0xd7,
0x7e, 0x24, 0xba, 0xf6, 0xf9, 0xa7, 0x9e, 0x7b, 0x53, 0x9a, 0x08, 0xf7, 0x27, 0x00, 0x00, 0xff,
0xff, 0xe8, 0x45, 0xe3, 0xba, 0xab, 0x07, 0x00, 0x00,
// 895 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0x4f, 0x6f, 0xe3, 0x44,
0x14, 0x8f, 0x9b, 0x74, 0x37, 0x3b, 0x29, 0x10, 0x8d, 0xa2, 0x25, 0x0a, 0x92, 0x53, 0xe5, 0x14,
0x10, 0x3b, 0xa6, 0x0b, 0x42, 0x2b, 0x6e, 0x75, 0xdb, 0x43, 0x45, 0x5b, 0x60, 0x52, 0x21, 0x04,
0x1c, 0x98, 0x38, 0x0f, 0xc7, 0x4d, 0xfc, 0x47, 0x33, 0xe3, 0x4a, 0xb9, 0xc1, 0x85, 0x33, 0x37,
0xbe, 0x01, 0x9f, 0xa5, 0x07, 0x24, 0x56, 0x9c, 0xf6, 0x14, 0x51, 0xf3, 0x2d, 0xb8, 0x80, 0x3c,
0x9e, 0x38, 0x6e, 0x9c, 0x74, 0xb3, 0x7b, 0xd8, 0x9b, 0xe7, 0xcd, 0x7b, 0xbf, 0xdf, 0xfb, 0xf3,
0x9b, 0x27, 0xa3, 0xe3, 0xc9, 0x33, 0x41, 0xbc, 0xd0, 0x9a, 0xc4, 0x43, 0xe0, 0x01, 0x48, 0x10,
0xd6, 0x35, 0x04, 0xa3, 0x90, 0x5b, 0xfa, 0x82, 0x45, 0x9e, 0x25, 0x64, 0xc8, 0x99, 0x0b, 0xd6,
0xf5, 0x01, 0x9b, 0x46, 0x63, 0x76, 0x60, 0xb9, 0x10, 0x00, 0x67, 0x12, 0x46, 0x24, 0xe2, 0xa1,
0x0c, 0xf1, 0x7b, 0x99, 0x33, 0x61, 0x91, 0x47, 0xb4, 0x33, 0x59, 0x38, 0x77, 0x9e, 0xb8, 0x9e,
0x1c, 0xc7, 0x43, 0xe2, 0x84, 0xbe, 0xe5, 0x86, 0x6e, 0x68, 0xa9, 0x98, 0x61, 0xfc, 0xa3, 0x3a,
0xa9, 0x83, 0xfa, 0xca, 0xb0, 0x3a, 0xbd, 0x02, 0xb1, 0x13, 0xf2, 0x94, 0x75, 0x95, 0xaf, 0xf3,
0xc9, 0xd2, 0xc7, 0x67, 0xce, 0xd8, 0x0b, 0x80, 0xcf, 0xac, 0x68, 0xe2, 0xaa, 0x20, 0x0e, 0x22,
0x8c, 0xb9, 0x03, 0xaf, 0x14, 0x25, 0x2c, 0x1f, 0x24, 0x5b, 0xc7, 0x65, 0x6d, 0x8a, 0xe2, 0x71,
0x20, 0x3d, 0xbf, 0x4c, 0xf3, 0xe9, 0xcb, 0x02, 0x84, 0x33, 0x06, 0x9f, 0xad, 0xc6, 0xf5, 0x7e,
0xae, 0x22, 0x7c, 0x34, 0x38, 0x1d, 0x64, 0xfd, 0x3b, 0x62, 0x11, 0x73, 0x3c, 0x39, 0xc3, 0x3f,
0xa0, 0x7a, 0x9a, 0xda, 0x88, 0x49, 0xd6, 0x36, 0xf6, 0x8d, 0x7e, 0xe3, 0xe9, 0x47, 0x64, 0xd9,
0xee, 0x9c, 0x81, 0x44, 0x13, 0x37, 0x35, 0x08, 0x92, 0x7a, 0x93, 0xeb, 0x03, 0xf2, 0xc5, 0xf0,
0x0a, 0x1c, 0x79, 0x0e, 0x92, 0xd9, 0xf8, 0x66, 0xde, 0xad, 0x24, 0xf3, 0x2e, 0x5a, 0xda, 0x68,
0x8e, 0x8a, 0x3d, 0xb4, 0x17, 0x84, 0x23, 0xb8, 0x0c, 0xa3, 0x70, 0x1a, 0xba, 0xb3, 0xf6, 0x8e,
0x62, 0xf9, 0x78, 0x3b, 0x96, 0x33, 0x36, 0x84, 0xe9, 0x00, 0xa6, 0xe0, 0xc8, 0x90, 0xdb, 0xcd,
0x64, 0xde, 0xdd, 0xbb, 0x28, 0x80, 0xd1, 0x3b, 0xd0, 0xf8, 0x18, 0x35, 0xb5, 0x3e, 0x8e, 0xa6,
0x4c, 0x88, 0x0b, 0xe6, 0x43, 0xbb, 0xba, 0x6f, 0xf4, 0x1f, 0xd9, 0x6d, 0x9d, 0x62, 0x73, 0xb0,
0x72, 0x4f, 0x4b, 0x11, 0xf8, 0x1b, 0x54, 0x77, 0x74, 0x7b, 0xda, 0x35, 0x95, 0x2c, 0xb9, 0x2f,
0x59, 0xb2, 0x50, 0x04, 0xf9, 0x2a, 0x66, 0x81, 0xf4, 0xe4, 0xcc, 0xde, 0x4b, 0xe6, 0xdd, 0xfa,
0xa2, 0xc5, 0x34, 0x47, 0xeb, 0xfd, 0x61, 0xa0, 0xc7, 0xe5, 0x19, 0x9c, 0x79, 0x42, 0xe2, 0xef,
0x4b, 0x73, 0x20, 0x5b, 0x76, 0xc8, 0x13, 0xd9, 0x14, 0x9a, 0xba, 0xc4, 0xfa, 0xc2, 0x52, 0x98,
0xc1, 0x25, 0xda, 0xf5, 0x24, 0xf8, 0xa2, 0xbd, 0xb3, 0x5f, 0xed, 0x37, 0x9e, 0x5a, 0xe4, 0x9e,
0x17, 0x45, 0xca, 0x19, 0xda, 0x6f, 0x69, 0xec, 0xdd, 0xd3, 0x14, 0x85, 0x66, 0x60, 0xbd, 0xdf,
0x77, 0x50, 0xf3, 0xeb, 0x70, 0x1a, 0xfb, 0x70, 0x28, 0x25, 0x73, 0xc6, 0x3e, 0x04, 0xf2, 0x0d,
0x08, 0x6a, 0x80, 0x6a, 0x22, 0x02, 0x47, 0x0b, 0xe9, 0xe0, 0xde, 0x5a, 0x56, 0xd3, 0x1b, 0x44,
0xe0, 0xd8, 0x7b, 0x1a, 0xbe, 0x96, 0x9e, 0xa8, 0x02, 0xc3, 0xdf, 0xa1, 0x07, 0x42, 0x32, 0x19,
0x0b, 0x25, 0x98, 0xbb, 0xfa, 0xdc, 0x02, 0x56, 0x85, 0xda, 0x6f, 0x6b, 0xe0, 0x07, 0xd9, 0x99,
0x6a, 0xc8, 0xde, 0x8d, 0x81, 0x5a, 0xab, 0x21, 0x6f, 0x60, 0xea, 0xf4, 0xee, 0xd4, 0x9f, 0xbc,
0x52, 0x49, 0x1b, 0x66, 0xfe, 0x97, 0x81, 0x1e, 0x97, 0xaa, 0x57, 0xf2, 0xc7, 0x67, 0xa8, 0x15,
0x01, 0x17, 0x9e, 0x90, 0x10, 0xc8, 0xcc, 0x47, 0xbd, 0x40, 0x23, 0x7b, 0x81, 0xc9, 0xbc, 0xdb,
0xfa, 0x72, 0xcd, 0x3d, 0x5d, 0x1b, 0x85, 0xaf, 0x50, 0xd3, 0x0b, 0xa6, 0x5e, 0x00, 0x99, 0x6d,
0xb0, 0x9c, 0x78, 0xbf, 0x58, 0x47, 0xba, 0xc3, 0xd3, 0x86, 0xac, 0x22, 0xab, 0x41, 0xb7, 0xd2,
0x17, 0x7f, 0xba, 0x82, 0x42, 0x4b, 0xb8, 0xbd, 0x3f, 0xd7, 0xcc, 0x27, 0xbd, 0xc0, 0x1f, 0xa2,
0x3a, 0x53, 0x16, 0xe0, 0xba, 0x8c, 0xbc, 0xdf, 0x87, 0xda, 0x4e, 0x73, 0x0f, 0xa5, 0x21, 0xd5,
0x8a, 0x35, 0x3b, 0x6e, 0x0b, 0x0d, 0xa9, 0xd0, 0x82, 0x86, 0xd4, 0x99, 0x6a, 0xc8, 0x34, 0x95,
0x74, 0xd7, 0x15, 0x76, 0x5a, 0x9e, 0xca, 0x85, 0xb6, 0xd3, 0xdc, 0xa3, 0xf7, 0x5f, 0x75, 0xcd,
0x98, 0x94, 0x18, 0x0b, 0x35, 0x8d, 0x54, 0x4d, 0xf5, 0x52, 0x4d, 0xa3, 0xbc, 0xa6, 0x11, 0xfe,
0xcd, 0x40, 0x98, 0xe5, 0x10, 0xe7, 0x0b, 0xb1, 0x66, 0x8a, 0xfa, 0xfc, 0x35, 0x1e, 0x09, 0x39,
0x2c, 0xa1, 0x9d, 0x04, 0x92, 0xcf, 0xec, 0x8e, 0xce, 0x02, 0x97, 0x1d, 0xe8, 0x9a, 0x14, 0xf0,
0x15, 0x6a, 0x64, 0xd6, 0x13, 0xce, 0x43, 0xae, 0x9f, 0x6d, 0x7f, 0x8b, 0x8c, 0x94, 0xbf, 0x6d,
0x26, 0xf3, 0x6e, 0xe3, 0x70, 0x09, 0xf0, 0xef, 0xbc, 0xdb, 0x28, 0xdc, 0xd3, 0x22, 0x78, 0xca,
0x35, 0x82, 0x25, 0x57, 0xed, 0x75, 0xb8, 0x8e, 0x61, 0x33, 0x57, 0x01, 0xbc, 0x73, 0x82, 0xde,
0xdd, 0xd0, 0x22, 0xdc, 0x44, 0xd5, 0x09, 0xcc, 0x32, 0x25, 0xd2, 0xf4, 0x13, 0xb7, 0xd0, 0xee,
0x35, 0x9b, 0xc6, 0x99, 0xe2, 0x1e, 0xd1, 0xec, 0xf0, 0xd9, 0xce, 0x33, 0xa3, 0xf7, 0x8b, 0x81,
0x8a, 0x1c, 0xf8, 0x0c, 0xd5, 0xd2, 0xdf, 0x03, 0xbd, 0x66, 0x3e, 0xd8, 0x6e, 0xcd, 0x5c, 0x7a,
0x3e, 0x2c, 0xd7, 0x65, 0x7a, 0xa2, 0x0a, 0x05, 0xbf, 0x8f, 0x1e, 0xfa, 0x20, 0x04, 0x73, 0x35,
0xb3, 0xfd, 0x8e, 0x76, 0x7a, 0x78, 0x9e, 0x99, 0xe9, 0xe2, 0xde, 0x26, 0x37, 0xb7, 0x66, 0xe5,
0xf9, 0xad, 0x59, 0x79, 0x71, 0x6b, 0x56, 0x7e, 0x4a, 0x4c, 0xe3, 0x26, 0x31, 0x8d, 0xe7, 0x89,
0x69, 0xbc, 0x48, 0x4c, 0xe3, 0xef, 0xc4, 0x34, 0x7e, 0xfd, 0xc7, 0xac, 0x7c, 0x5b, 0x5f, 0x34,
0xee, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xb9, 0x9d, 0xb3, 0x34, 0x0a, 0x00, 0x00,
}
func (m *CSIStorageCapacity) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *CSIStorageCapacity) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *CSIStorageCapacity) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if m.Capacity != nil {
{
size, err := m.Capacity.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x22
}
i -= len(m.StorageClassName)
copy(dAtA[i:], m.StorageClassName)
i = encodeVarintGenerated(dAtA, i, uint64(len(m.StorageClassName)))
i--
dAtA[i] = 0x1a
if m.NodeTopology != nil {
{
size, err := m.NodeTopology.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
{
size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
func (m *CSIStorageCapacityList) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *CSIStorageCapacityList) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *CSIStorageCapacityList) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.Items) > 0 {
for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- {
{
size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0x12
}
}
{
size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i])
if err != nil {
return 0, err
}
i -= size
i = encodeVarintGenerated(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
func (m *VolumeAttachment) Marshal() (dAtA []byte, err error) {
@@ -591,6 +769,44 @@ func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int {
dAtA[offset] = uint8(v)
return base
}
func (m *CSIStorageCapacity) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = m.ObjectMeta.Size()
n += 1 + l + sovGenerated(uint64(l))
if m.NodeTopology != nil {
l = m.NodeTopology.Size()
n += 1 + l + sovGenerated(uint64(l))
}
l = len(m.StorageClassName)
n += 1 + l + sovGenerated(uint64(l))
if m.Capacity != nil {
l = m.Capacity.Size()
n += 1 + l + sovGenerated(uint64(l))
}
return n
}
func (m *CSIStorageCapacityList) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
l = m.ListMeta.Size()
n += 1 + l + sovGenerated(uint64(l))
if len(m.Items) > 0 {
for _, e := range m.Items {
l = e.Size()
n += 1 + l + sovGenerated(uint64(l))
}
}
return n
}
func (m *VolumeAttachment) Size() (n int) {
if m == nil {
return 0
@@ -700,6 +916,35 @@ func sovGenerated(x uint64) (n int) {
func sozGenerated(x uint64) (n int) {
return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63))))
}
func (this *CSIStorageCapacity) String() string {
if this == nil {
return "nil"
}
s := strings.Join([]string{`&CSIStorageCapacity{`,
`ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v1.ObjectMeta", 1), `&`, ``, 1) + `,`,
`NodeTopology:` + strings.Replace(fmt.Sprintf("%v", this.NodeTopology), "LabelSelector", "v1.LabelSelector", 1) + `,`,
`StorageClassName:` + fmt.Sprintf("%v", this.StorageClassName) + `,`,
`Capacity:` + strings.Replace(fmt.Sprintf("%v", this.Capacity), "Quantity", "resource.Quantity", 1) + `,`,
`}`,
}, "")
return s
}
func (this *CSIStorageCapacityList) String() string {
if this == nil {
return "nil"
}
repeatedStringForItems := "[]CSIStorageCapacity{"
for _, f := range this.Items {
repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CSIStorageCapacity", "CSIStorageCapacity", 1), `&`, ``, 1) + ","
}
repeatedStringForItems += "}"
s := strings.Join([]string{`&CSIStorageCapacityList{`,
`ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v1.ListMeta", 1), `&`, ``, 1) + `,`,
`Items:` + repeatedStringForItems + `,`,
`}`,
}, "")
return s
}
func (this *VolumeAttachment) String() string {
if this == nil {
return "nil"
@@ -793,6 +1038,316 @@ func valueToStringGenerated(v interface{}) string {
pv := reflect.Indirect(rv).Interface()
return fmt.Sprintf("*%v", pv)
}
func (m *CSIStorageCapacity) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: CSIStorageCapacity: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: CSIStorageCapacity: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field NodeTopology", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.NodeTopology == nil {
m.NodeTopology = &v1.LabelSelector{}
}
if err := m.NodeTopology.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 3:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field StorageClassName", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.StorageClassName = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 4:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Capacity", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.Capacity == nil {
m.Capacity = &resource.Quantity{}
}
if err := m.Capacity.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *CSIStorageCapacityList) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: CSIStorageCapacityList: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: CSIStorageCapacityList: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthGenerated
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthGenerated
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Items = append(m.Items, CSIStorageCapacity{})
if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])
if err != nil {
return err
}
if skippy < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) < 0 {
return ErrInvalidLengthGenerated
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *VolumeAttachment) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0

View File

@@ -22,6 +22,7 @@ syntax = 'proto2';
package k8s.io.api.storage.v1alpha1;
import "k8s.io/api/core/v1/generated.proto";
import "k8s.io/apimachinery/pkg/api/resource/generated.proto";
import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
import "k8s.io/apimachinery/pkg/runtime/generated.proto";
import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
@@ -29,6 +30,80 @@ import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
// Package-wide variables from generator "generated".
option go_package = "v1alpha1";
// CSIStorageCapacity stores the result of one CSI GetCapacity call.
// For a given StorageClass, this describes the available capacity in a
// particular topology segment. This can be used when considering where to
// instantiate new PersistentVolumes.
//
// For example this can express things like:
// - StorageClass "standard" has "1234 GiB" available in "topology.kubernetes.io/zone=us-east1"
// - StorageClass "localssd" has "10 GiB" available in "kubernetes.io/hostname=knode-abc123"
//
// The following three cases all imply that no capacity is available for
// a certain combination:
// - no object exists with suitable topology and storage class name
// - such an object exists, but the capacity is unset
// - such an object exists, but the capacity is zero
//
// The producer of these objects can decide which approach is more suitable.
//
// This is an alpha feature and only available when the CSIStorageCapacity feature is enabled.
message CSIStorageCapacity {
// Standard object's metadata. The name has no particular meaning. It must be
// be a DNS subdomain (dots allowed, 253 characters). To ensure that
// there are no conflicts with other CSI drivers on the cluster, the recommendation
// is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends
// with the unique CSI driver name.
//
// Objects are namespaced.
//
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
// NodeTopology defines which nodes have access to the storage
// for which capacity was reported. If not set, the storage is
// not accessible from any node in the cluster. If empty, the
// storage is accessible from all nodes. This field is
// immutable.
//
// +optional
optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector nodeTopology = 2;
// The name of the StorageClass that the reported capacity applies to.
// It must meet the same requirements as the name of a StorageClass
// object (non-empty, DNS subdomain). If that object no longer exists,
// the CSIStorageCapacity object is obsolete and should be removed by its
// creator.
// This field is immutable.
optional string storageClassName = 3;
// Capacity is the value reported by the CSI driver in its GetCapacityResponse
// for a GetCapacityRequest with topology and parameters that match the
// previous fields.
//
// The semantic is currently (CSI spec 1.2) defined as:
// The available capacity, in bytes, of the storage that can be used
// to provision volumes. If not set, that information is currently
// unavailable and treated like zero capacity.
//
// +optional
optional k8s.io.apimachinery.pkg.api.resource.Quantity capacity = 4;
}
// CSIStorageCapacityList is a collection of CSIStorageCapacity objects.
message CSIStorageCapacityList {
// Standard list metadata
// More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
// +optional
optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
// Items is the list of CSIStorageCapacity objects.
// +listType=map
// +listMapKey=name
repeated CSIStorageCapacity items = 2;
}
// VolumeAttachment captures the intent to attach or detach the specified volume
// to/from the specified node.
//

View File

@@ -27,6 +27,28 @@ package v1alpha1
// Those methods can be generated by using hack/update-generated-swagger-docs.sh
// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.
var map_CSIStorageCapacity = map[string]string{
"": "CSIStorageCapacity stores the result of one CSI GetCapacity call. For a given StorageClass, this describes the available capacity in a particular topology segment. This can be used when considering where to instantiate new PersistentVolumes.\n\nFor example this can express things like: - StorageClass \"standard\" has \"1234 GiB\" available in \"topology.kubernetes.io/zone=us-east1\" - StorageClass \"localssd\" has \"10 GiB\" available in \"kubernetes.io/hostname=knode-abc123\"\n\nThe following three cases all imply that no capacity is available for a certain combination: - no object exists with suitable topology and storage class name - such an object exists, but the capacity is unset - such an object exists, but the capacity is zero\n\nThe producer of these objects can decide which approach is more suitable.\n\nThis is an alpha feature and only available when the CSIStorageCapacity feature is enabled.",
"metadata": "Standard object's metadata. The name has no particular meaning. It must be be a DNS subdomain (dots allowed, 253 characters). To ensure that there are no conflicts with other CSI drivers on the cluster, the recommendation is to use csisc-<uuid>, a generated name, or a reverse-domain name which ends with the unique CSI driver name.\n\nObjects are namespaced.\n\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
"nodeTopology": "NodeTopology defines which nodes have access to the storage for which capacity was reported. If not set, the storage is not accessible from any node in the cluster. If empty, the storage is accessible from all nodes. This field is immutable.",
"storageClassName": "The name of the StorageClass that the reported capacity applies to. It must meet the same requirements as the name of a StorageClass object (non-empty, DNS subdomain). If that object no longer exists, the CSIStorageCapacity object is obsolete and should be removed by its creator. This field is immutable.",
"capacity": "Capacity is the value reported by the CSI driver in its GetCapacityResponse for a GetCapacityRequest with topology and parameters that match the previous fields.\n\nThe semantic is currently (CSI spec 1.2) defined as: The available capacity, in bytes, of the storage that can be used to provision volumes. If not set, that information is currently unavailable and treated like zero capacity.",
}
func (CSIStorageCapacity) SwaggerDoc() map[string]string {
return map_CSIStorageCapacity
}
var map_CSIStorageCapacityList = map[string]string{
"": "CSIStorageCapacityList is a collection of CSIStorageCapacity objects.",
"metadata": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",
"items": "Items is the list of CSIStorageCapacity objects.",
}
func (CSIStorageCapacityList) SwaggerDoc() map[string]string {
return map_CSIStorageCapacityList
}
var map_VolumeAttachment = map[string]string{
"": "VolumeAttachment captures the intent to attach or detach the specified volume to/from the specified node.\n\nVolumeAttachment objects are non-namespaced.",
"metadata": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata",

View File

@@ -21,10 +21,80 @@ limitations under the License.
package v1alpha1
import (
v1 "k8s.io/api/core/v1"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CSIStorageCapacity) DeepCopyInto(out *CSIStorageCapacity) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
if in.NodeTopology != nil {
in, out := &in.NodeTopology, &out.NodeTopology
*out = new(v1.LabelSelector)
(*in).DeepCopyInto(*out)
}
if in.Capacity != nil {
in, out := &in.Capacity, &out.Capacity
x := (*in).DeepCopy()
*out = &x
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacity.
func (in *CSIStorageCapacity) DeepCopy() *CSIStorageCapacity {
if in == nil {
return nil
}
out := new(CSIStorageCapacity)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *CSIStorageCapacity) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *CSIStorageCapacityList) DeepCopyInto(out *CSIStorageCapacityList) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ListMeta.DeepCopyInto(&out.ListMeta)
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]CSIStorageCapacity, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CSIStorageCapacityList.
func (in *CSIStorageCapacityList) DeepCopy() *CSIStorageCapacityList {
if in == nil {
return nil
}
out := new(CSIStorageCapacityList)
in.DeepCopyInto(out)
return out
}
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (in *CSIStorageCapacityList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *VolumeAttachment) DeepCopyInto(out *VolumeAttachment) {
*out = *in
@@ -96,7 +166,7 @@ func (in *VolumeAttachmentSource) DeepCopyInto(out *VolumeAttachmentSource) {
}
if in.InlineVolumeSpec != nil {
in, out := &in.InlineVolumeSpec, &out.InlineVolumeSpec
*out = new(v1.PersistentVolumeSpec)
*out = new(corev1.PersistentVolumeSpec)
(*in).DeepCopyInto(*out)
}
return

View File

@@ -520,91 +520,93 @@ func init() {
}
var fileDescriptor_7d2980599fd0de80 = []byte{
// 1344 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xbd, 0x6f, 0xdb, 0x46,
0x1b, 0x37, 0x2d, 0x7f, 0x9e, 0xec, 0x44, 0xbe, 0x18, 0xef, 0xab, 0x57, 0x83, 0x64, 0xe8, 0x45,
0x1b, 0x27, 0x48, 0xc8, 0x24, 0x48, 0x83, 0x20, 0x40, 0x07, 0xd3, 0x31, 0x50, 0x25, 0x96, 0xe3,
0x9e, 0x8d, 0xa0, 0x08, 0x3a, 0xf4, 0x44, 0x3e, 0x91, 0x19, 0x93, 0x3c, 0x86, 0x3c, 0xa9, 0xd5,
0xd6, 0xa9, 0x73, 0xd1, 0xa1, 0x7f, 0x41, 0xff, 0x85, 0x16, 0x68, 0x97, 0x8e, 0xcd, 0x54, 0x04,
0x9d, 0x32, 0x09, 0x0d, 0xbb, 0x76, 0xeb, 0x66, 0x74, 0x28, 0xee, 0x78, 0x12, 0x29, 0x89, 0x8a,
0xed, 0x0e, 0xde, 0x78, 0xcf, 0xc7, 0xef, 0xf9, 0x7e, 0xee, 0x88, 0xb6, 0x8f, 0xef, 0x47, 0xba,
0xc3, 0x8c, 0xe3, 0x4e, 0x0b, 0x42, 0x1f, 0x38, 0x44, 0x46, 0x17, 0x7c, 0x9b, 0x85, 0x86, 0x62,
0xd0, 0xc0, 0x31, 0x22, 0xce, 0x42, 0xda, 0x06, 0xa3, 0x7b, 0xbb, 0x05, 0x9c, 0xde, 0x36, 0xda,
0xe0, 0x43, 0x48, 0x39, 0xd8, 0x7a, 0x10, 0x32, 0xce, 0x70, 0x25, 0x91, 0xd5, 0x69, 0xe0, 0xe8,
0x4a, 0x56, 0x57, 0xb2, 0x95, 0x9b, 0x6d, 0x87, 0x1f, 0x75, 0x5a, 0xba, 0xc5, 0x3c, 0xa3, 0xcd,
0xda, 0xcc, 0x90, 0x2a, 0xad, 0xce, 0x73, 0x79, 0x92, 0x07, 0xf9, 0x95, 0x40, 0x55, 0xea, 0x19,
0xb3, 0x16, 0x0b, 0x85, 0xcd, 0x71, 0x73, 0x95, 0xbb, 0xa9, 0x8c, 0x47, 0xad, 0x23, 0xc7, 0x87,
0xb0, 0x67, 0x04, 0xc7, 0x6d, 0x41, 0x88, 0x0c, 0x0f, 0x38, 0xcd, 0xd3, 0x32, 0xa6, 0x69, 0x85,
0x1d, 0x9f, 0x3b, 0x1e, 0x4c, 0x28, 0xdc, 0x3b, 0x4d, 0x21, 0xb2, 0x8e, 0xc0, 0xa3, 0xe3, 0x7a,
0xf5, 0x9f, 0x34, 0xb4, 0xbc, 0x7d, 0xd0, 0x78, 0x18, 0x3a, 0x5d, 0x08, 0xf1, 0x67, 0x68, 0x49,
0x78, 0x64, 0x53, 0x4e, 0xcb, 0xda, 0x86, 0xb6, 0x59, 0xbc, 0x73, 0x4b, 0x4f, 0xd3, 0x35, 0x04,
0xd6, 0x83, 0xe3, 0xb6, 0x20, 0x44, 0xba, 0x90, 0xd6, 0xbb, 0xb7, 0xf5, 0x27, 0xad, 0x17, 0x60,
0xf1, 0x26, 0x70, 0x6a, 0xe2, 0x57, 0xfd, 0xda, 0x4c, 0xdc, 0xaf, 0xa1, 0x94, 0x46, 0x86, 0xa8,
0xf8, 0x31, 0x9a, 0x8b, 0x02, 0xb0, 0xca, 0xb3, 0x12, 0xfd, 0x9a, 0x3e, 0xbd, 0x18, 0xfa, 0xd0,
0xad, 0x83, 0x00, 0x2c, 0x73, 0x45, 0xc1, 0xce, 0x89, 0x13, 0x91, 0x20, 0xf5, 0x1f, 0x35, 0xb4,
0x3a, 0x94, 0xda, 0x75, 0x22, 0x8e, 0x3f, 0x9d, 0x08, 0x40, 0x3f, 0x5b, 0x00, 0x42, 0x5b, 0xba,
0x5f, 0x52, 0x76, 0x96, 0x06, 0x94, 0x8c, 0xf3, 0x8f, 0xd0, 0xbc, 0xc3, 0xc1, 0x8b, 0xca, 0xb3,
0x1b, 0x85, 0xcd, 0xe2, 0x9d, 0xf7, 0xce, 0xe4, 0xbd, 0xb9, 0xaa, 0x10, 0xe7, 0x1b, 0x42, 0x97,
0x24, 0x10, 0xf5, 0x3f, 0xb3, 0xbe, 0x8b, 0x98, 0xf0, 0x03, 0x74, 0x89, 0x72, 0x4e, 0xad, 0x23,
0x02, 0x2f, 0x3b, 0x4e, 0x08, 0xb6, 0x8c, 0x60, 0xc9, 0xc4, 0x71, 0xbf, 0x76, 0x69, 0x6b, 0x84,
0x43, 0xc6, 0x24, 0x85, 0x6e, 0xc0, 0xec, 0x86, 0xff, 0x9c, 0x3d, 0xf1, 0x9b, 0xac, 0xe3, 0x73,
0x99, 0x60, 0xa5, 0xbb, 0x3f, 0xc2, 0x21, 0x63, 0x92, 0xd8, 0x42, 0xeb, 0x5d, 0xe6, 0x76, 0x3c,
0xd8, 0x75, 0x9e, 0x83, 0xd5, 0xb3, 0x5c, 0x68, 0x32, 0x1b, 0xa2, 0x72, 0x61, 0xa3, 0xb0, 0xb9,
0x6c, 0x1a, 0x71, 0xbf, 0xb6, 0xfe, 0x34, 0x87, 0x7f, 0xd2, 0xaf, 0x5d, 0xc9, 0xa1, 0x93, 0x5c,
0xb0, 0xfa, 0x0f, 0x1a, 0x5a, 0xdc, 0x3e, 0x68, 0xec, 0x31, 0x1b, 0x2e, 0xa0, 0xcb, 0x1a, 0x23,
0x5d, 0x76, 0xf5, 0x94, 0x3a, 0x09, 0xa7, 0xa6, 0xf6, 0xd8, 0x5f, 0x49, 0x9d, 0x84, 0x8c, 0x1a,
0x92, 0x0d, 0x34, 0xe7, 0x53, 0x0f, 0xa4, 0xeb, 0xcb, 0xa9, 0xce, 0x1e, 0xf5, 0x80, 0x48, 0x0e,
0x7e, 0x1f, 0x2d, 0xf8, 0xcc, 0x86, 0xc6, 0x43, 0xe9, 0xc0, 0xb2, 0x79, 0x49, 0xc9, 0x2c, 0xec,
0x49, 0x2a, 0x51, 0x5c, 0x7c, 0x17, 0xad, 0x70, 0x16, 0x30, 0x97, 0xb5, 0x7b, 0x8f, 0xa1, 0x37,
0xc8, 0x78, 0x29, 0xee, 0xd7, 0x56, 0x0e, 0x33, 0x74, 0x32, 0x22, 0x85, 0x5b, 0xa8, 0x48, 0x5d,
0x97, 0x59, 0x94, 0xd3, 0x96, 0x0b, 0xe5, 0x39, 0x19, 0xa3, 0xf1, 0xae, 0x18, 0x93, 0x32, 0x09,
0xe3, 0x04, 0x22, 0xd6, 0x09, 0x2d, 0x88, 0xcc, 0xcb, 0x71, 0xbf, 0x56, 0xdc, 0x4a, 0x71, 0x48,
0x16, 0xb4, 0xfe, 0xbd, 0x86, 0x8a, 0x2a, 0xea, 0x0b, 0x98, 0xab, 0x8f, 0x46, 0xe7, 0xea, 0xff,
0x67, 0xa8, 0xd7, 0x94, 0xa9, 0xb2, 0x86, 0x6e, 0xcb, 0x91, 0x3a, 0x44, 0x8b, 0xb6, 0x2c, 0x5a,
0x54, 0xd6, 0x24, 0xf4, 0xb5, 0x33, 0x40, 0xab, 0xb1, 0xbd, 0xac, 0x0c, 0x2c, 0x26, 0xe7, 0x88,
0x0c, 0xa0, 0xea, 0xdf, 0x2c, 0xa0, 0x95, 0x83, 0x44, 0x77, 0xdb, 0xa5, 0x51, 0x74, 0x01, 0x0d,
0xfd, 0x01, 0x2a, 0x06, 0x21, 0xeb, 0x3a, 0x91, 0xc3, 0x7c, 0x08, 0x55, 0x5b, 0x5d, 0x51, 0x2a,
0xc5, 0xfd, 0x94, 0x45, 0xb2, 0x72, 0xd8, 0x45, 0x28, 0xa0, 0x21, 0xf5, 0x80, 0x8b, 0x14, 0x14,
0x64, 0x0a, 0xee, 0xbf, 0x2b, 0x05, 0xd9, 0xb0, 0xf4, 0xfd, 0xa1, 0xea, 0x8e, 0xcf, 0xc3, 0x5e,
0xea, 0x62, 0xca, 0x20, 0x19, 0x7c, 0x7c, 0x8c, 0x56, 0x43, 0xb0, 0x5c, 0xea, 0x78, 0xfb, 0xcc,
0x75, 0xac, 0x9e, 0x6c, 0xcd, 0x65, 0x73, 0x27, 0xee, 0xd7, 0x56, 0x49, 0x96, 0x71, 0xd2, 0xaf,
0xdd, 0x9a, 0xbc, 0x3a, 0xf5, 0x7d, 0x08, 0x23, 0x27, 0xe2, 0xe0, 0xf3, 0xa4, 0x61, 0x47, 0x74,
0xc8, 0x28, 0xb6, 0x98, 0x1d, 0x4f, 0xac, 0xaf, 0x27, 0x01, 0x77, 0x98, 0x1f, 0x95, 0xe7, 0xd3,
0xd9, 0x69, 0x66, 0xe8, 0x64, 0x44, 0x0a, 0xef, 0xa2, 0x75, 0xd1, 0xe6, 0x9f, 0x27, 0x06, 0x76,
0xbe, 0x08, 0xa8, 0x2f, 0x52, 0x55, 0x5e, 0x90, 0xdb, 0xb2, 0x2c, 0x76, 0xdd, 0x56, 0x0e, 0x9f,
0xe4, 0x6a, 0xe1, 0x4f, 0xd0, 0x5a, 0xb2, 0xec, 0x4c, 0xc7, 0xb7, 0x1d, 0xbf, 0x2d, 0x56, 0x5d,
0x79, 0x51, 0x06, 0x7d, 0x3d, 0xee, 0xd7, 0xd6, 0x9e, 0x8e, 0x33, 0x4f, 0xf2, 0x88, 0x64, 0x12,
0x04, 0xbf, 0x44, 0x6b, 0xd2, 0x22, 0xd8, 0x6a, 0x11, 0x38, 0x10, 0x95, 0x97, 0x64, 0xfd, 0x36,
0xb3, 0xf5, 0x13, 0xa9, 0x13, 0x8d, 0x34, 0x58, 0x17, 0x07, 0xe0, 0x82, 0xc5, 0x59, 0x78, 0x08,
0xa1, 0x67, 0xfe, 0x4f, 0xd5, 0x6b, 0x6d, 0x6b, 0x1c, 0x8a, 0x4c, 0xa2, 0x57, 0x3e, 0x44, 0x97,
0xc7, 0x0a, 0x8e, 0x4b, 0xa8, 0x70, 0x0c, 0xbd, 0x64, 0xd1, 0x11, 0xf1, 0x89, 0xd7, 0xd1, 0x7c,
0x97, 0xba, 0x1d, 0x48, 0x3a, 0x90, 0x24, 0x87, 0x07, 0xb3, 0xf7, 0xb5, 0xfa, 0xcf, 0x1a, 0x2a,
0x65, 0xbb, 0xe7, 0x02, 0xd6, 0x46, 0x73, 0x74, 0x6d, 0x6c, 0x9e, 0xb5, 0xb1, 0xa7, 0xec, 0x8e,
0xef, 0x66, 0x51, 0x29, 0x29, 0x4e, 0x72, 0xd9, 0x7a, 0xe0, 0xf3, 0x0b, 0x18, 0x6d, 0x32, 0x72,
0x57, 0xdd, 0x3a, 0x7d, 0x8f, 0xa7, 0xde, 0x4d, 0xbb, 0xb4, 0xf0, 0x33, 0xb4, 0x10, 0x71, 0xca,
0x3b, 0x62, 0xe6, 0x05, 0xea, 0x9d, 0x73, 0xa1, 0x4a, 0xcd, 0xf4, 0xd2, 0x4a, 0xce, 0x44, 0x21,
0xd6, 0x7f, 0xd1, 0xd0, 0xfa, 0xb8, 0xca, 0x05, 0x14, 0xfb, 0xe3, 0xd1, 0x62, 0xdf, 0x38, 0x4f,
0x44, 0x53, 0x0a, 0xfe, 0x9b, 0x86, 0xfe, 0x33, 0x11, 0xbc, 0xbc, 0x1e, 0xc5, 0x9e, 0x08, 0xc6,
0xb6, 0xd1, 0x5e, 0x7a, 0xe7, 0xcb, 0x3d, 0xb1, 0x9f, 0xc3, 0x27, 0xb9, 0x5a, 0xf8, 0x05, 0x2a,
0x39, 0xbe, 0xeb, 0xf8, 0x90, 0xd0, 0x0e, 0xd2, 0x72, 0xe7, 0x0e, 0xf3, 0x38, 0xb2, 0x2c, 0xf3,
0x7a, 0xdc, 0xaf, 0x95, 0x1a, 0x63, 0x28, 0x64, 0x02, 0xb7, 0xfe, 0x6b, 0x4e, 0x79, 0xe4, 0x5d,
0x78, 0x03, 0x2d, 0x25, 0x8f, 0x46, 0x08, 0x55, 0x18, 0xc3, 0x74, 0x6f, 0x29, 0x3a, 0x19, 0x4a,
0xc8, 0x0e, 0x92, 0xa9, 0x50, 0x8e, 0x9e, 0xaf, 0x83, 0xa4, 0x66, 0xa6, 0x83, 0xe4, 0x99, 0x28,
0x44, 0xe1, 0x89, 0x78, 0x00, 0xc9, 0x84, 0x16, 0x46, 0x3d, 0xd9, 0x53, 0x74, 0x32, 0x94, 0xa8,
0xff, 0x5d, 0xc8, 0xa9, 0x92, 0x6c, 0xc5, 0x4c, 0x48, 0x83, 0xb7, 0xf2, 0x78, 0x48, 0xf6, 0x30,
0x24, 0x1b, 0x7f, 0xab, 0x21, 0x4c, 0x87, 0x10, 0xcd, 0x41, 0xab, 0x26, 0xfd, 0xf4, 0xe8, 0xfc,
0x13, 0xa2, 0x6f, 0x4d, 0x80, 0x25, 0xf7, 0x64, 0x45, 0x39, 0x81, 0x27, 0x05, 0x48, 0x8e, 0x07,
0xd8, 0x41, 0xc5, 0x84, 0xba, 0x13, 0x86, 0x2c, 0x54, 0x23, 0x7b, 0xf5, 0x74, 0x87, 0xa4, 0xb8,
0x59, 0x95, 0x0f, 0xb9, 0x54, 0xff, 0xa4, 0x5f, 0x2b, 0x66, 0xf8, 0x24, 0x8b, 0x2d, 0x4c, 0xd9,
0x90, 0x9a, 0x9a, 0xfb, 0x17, 0xa6, 0x1e, 0xc2, 0x74, 0x53, 0x19, 0xec, 0xca, 0x0e, 0xfa, 0xef,
0x94, 0x04, 0x9d, 0xeb, 0x5e, 0xf9, 0x4a, 0x43, 0x59, 0x1b, 0x78, 0x17, 0xcd, 0x89, 0xff, 0x59,
0xb5, 0x61, 0xae, 0x9f, 0x6d, 0xc3, 0x1c, 0x3a, 0x1e, 0xa4, 0x8b, 0x52, 0x9c, 0x88, 0x44, 0xc1,
0xd7, 0xd0, 0xa2, 0x07, 0x51, 0x44, 0xdb, 0xca, 0x72, 0xfa, 0xea, 0x6b, 0x26, 0x64, 0x32, 0xe0,
0xd7, 0xef, 0xa1, 0x2b, 0x39, 0xef, 0x68, 0x5c, 0x43, 0xf3, 0x96, 0xfc, 0xe1, 0x12, 0x0e, 0xcd,
0x9b, 0xcb, 0x62, 0xcb, 0x6c, 0xcb, 0xff, 0xac, 0x84, 0x6e, 0xde, 0x7c, 0xf5, 0xb6, 0x3a, 0xf3,
0xfa, 0x6d, 0x75, 0xe6, 0xcd, 0xdb, 0xea, 0xcc, 0x97, 0x71, 0x55, 0x7b, 0x15, 0x57, 0xb5, 0xd7,
0x71, 0x55, 0x7b, 0x13, 0x57, 0xb5, 0xdf, 0xe3, 0xaa, 0xf6, 0xf5, 0x1f, 0xd5, 0x99, 0x67, 0x8b,
0x2a, 0xdf, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x72, 0xff, 0xde, 0x2e, 0xe4, 0x10, 0x00, 0x00,
// 1368 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x3d, 0x6f, 0xdb, 0xc6,
0x1b, 0x37, 0x2d, 0xbf, 0x9e, 0xec, 0x58, 0x3e, 0x1b, 0xff, 0xbf, 0xaa, 0x41, 0x34, 0x54, 0xb4,
0x71, 0x82, 0x84, 0x4a, 0x8c, 0x34, 0x08, 0x02, 0x64, 0xb0, 0x1c, 0x03, 0x55, 0x62, 0x39, 0xee,
0xd9, 0x08, 0x8a, 0xa0, 0x43, 0x4f, 0xe4, 0x13, 0x99, 0xb1, 0xc8, 0x63, 0xc8, 0x93, 0x5a, 0x6d,
0x9d, 0x3a, 0x17, 0x1d, 0xfa, 0x09, 0xba, 0x75, 0x6e, 0x81, 0x76, 0xe9, 0xd8, 0x4c, 0x45, 0xd0,
0x29, 0x93, 0xd0, 0xb0, 0x1f, 0xa1, 0x9b, 0xd1, 0xa1, 0xb8, 0xe3, 0x49, 0xa4, 0x28, 0x2a, 0xb6,
0x3b, 0x78, 0xe3, 0x3d, 0x2f, 0xbf, 0xe7, 0xfd, 0xb9, 0x23, 0xda, 0x39, 0xb9, 0x17, 0x18, 0x36,
0xab, 0x9e, 0x74, 0x9a, 0xe0, 0xbb, 0xc0, 0x21, 0xa8, 0x76, 0xc1, 0xb5, 0x98, 0x5f, 0x55, 0x0c,
0xea, 0xd9, 0xd5, 0x80, 0x33, 0x9f, 0xb6, 0xa0, 0xda, 0xbd, 0xdd, 0x04, 0x4e, 0x6f, 0x57, 0x5b,
0xe0, 0x82, 0x4f, 0x39, 0x58, 0x86, 0xe7, 0x33, 0xce, 0x70, 0x29, 0x92, 0x35, 0xa8, 0x67, 0x1b,
0x4a, 0xd6, 0x50, 0xb2, 0xa5, 0x9b, 0x2d, 0x9b, 0x1f, 0x77, 0x9a, 0x86, 0xc9, 0x9c, 0x6a, 0x8b,
0xb5, 0x58, 0x55, 0xaa, 0x34, 0x3b, 0xcf, 0xe5, 0x49, 0x1e, 0xe4, 0x57, 0x04, 0x55, 0xaa, 0x24,
0xcc, 0x9a, 0xcc, 0x17, 0x36, 0xd3, 0xe6, 0x4a, 0x77, 0x62, 0x19, 0x87, 0x9a, 0xc7, 0xb6, 0x0b,
0x7e, 0xaf, 0xea, 0x9d, 0xb4, 0x04, 0x21, 0xa8, 0x3a, 0xc0, 0x69, 0x96, 0x56, 0x75, 0x92, 0x96,
0xdf, 0x71, 0xb9, 0xed, 0xc0, 0x98, 0xc2, 0xdd, 0xb3, 0x14, 0x02, 0xf3, 0x18, 0x1c, 0x9a, 0xd6,
0xab, 0xfc, 0xa2, 0xa1, 0xc5, 0x9d, 0xc3, 0xfa, 0x43, 0xdf, 0xee, 0x82, 0x8f, 0x3f, 0x47, 0x0b,
0xc2, 0x23, 0x8b, 0x72, 0x5a, 0xd4, 0x36, 0xb4, 0xcd, 0xfc, 0xd6, 0x2d, 0x23, 0x4e, 0xd7, 0x10,
0xd8, 0xf0, 0x4e, 0x5a, 0x82, 0x10, 0x18, 0x42, 0xda, 0xe8, 0xde, 0x36, 0x9e, 0x34, 0x5f, 0x80,
0xc9, 0x1b, 0xc0, 0x69, 0x0d, 0xbf, 0xea, 0xeb, 0x53, 0x61, 0x5f, 0x47, 0x31, 0x8d, 0x0c, 0x51,
0xf1, 0x63, 0x34, 0x13, 0x78, 0x60, 0x16, 0xa7, 0x25, 0xfa, 0x35, 0x63, 0x72, 0x31, 0x8c, 0xa1,
0x5b, 0x87, 0x1e, 0x98, 0xb5, 0x25, 0x05, 0x3b, 0x23, 0x4e, 0x44, 0x82, 0x54, 0x7e, 0xd6, 0xd0,
0xf2, 0x50, 0x6a, 0xcf, 0x0e, 0x38, 0xfe, 0x6c, 0x2c, 0x00, 0xe3, 0x7c, 0x01, 0x08, 0x6d, 0xe9,
0x7e, 0x41, 0xd9, 0x59, 0x18, 0x50, 0x12, 0xce, 0x3f, 0x42, 0xb3, 0x36, 0x07, 0x27, 0x28, 0x4e,
0x6f, 0xe4, 0x36, 0xf3, 0x5b, 0x1f, 0x9c, 0xcb, 0xfb, 0xda, 0xb2, 0x42, 0x9c, 0xad, 0x0b, 0x5d,
0x12, 0x41, 0x54, 0x7e, 0x98, 0x4e, 0xf8, 0x2e, 0x62, 0xc2, 0xf7, 0xd1, 0x15, 0xca, 0x39, 0x35,
0x8f, 0x09, 0xbc, 0xec, 0xd8, 0x3e, 0x58, 0x32, 0x82, 0x85, 0x1a, 0x0e, 0xfb, 0xfa, 0x95, 0xed,
0x11, 0x0e, 0x49, 0x49, 0x0a, 0x5d, 0x8f, 0x59, 0x75, 0xf7, 0x39, 0x7b, 0xe2, 0x36, 0x58, 0xc7,
0xe5, 0x32, 0xc1, 0x4a, 0xf7, 0x60, 0x84, 0x43, 0x52, 0x92, 0xd8, 0x44, 0xeb, 0x5d, 0xd6, 0xee,
0x38, 0xb0, 0x67, 0x3f, 0x07, 0xb3, 0x67, 0xb6, 0xa1, 0xc1, 0x2c, 0x08, 0x8a, 0xb9, 0x8d, 0xdc,
0xe6, 0x62, 0xad, 0x1a, 0xf6, 0xf5, 0xf5, 0xa7, 0x19, 0xfc, 0xd3, 0xbe, 0xbe, 0x96, 0x41, 0x27,
0x99, 0x60, 0xf8, 0x01, 0x5a, 0x51, 0x19, 0xda, 0xa1, 0x1e, 0x35, 0x6d, 0xde, 0x2b, 0xce, 0x48,
0x0f, 0xd7, 0xc2, 0xbe, 0xbe, 0x72, 0x38, 0xca, 0x22, 0x69, 0xd9, 0xca, 0x4f, 0x1a, 0x9a, 0xdf,
0x39, 0xac, 0xef, 0x33, 0x0b, 0x2e, 0xa1, 0x49, 0xeb, 0x23, 0x4d, 0x7a, 0xf5, 0x8c, 0x32, 0x0b,
0xa7, 0x26, 0xb6, 0xe8, 0xdf, 0x51, 0x8b, 0x0a, 0x19, 0x35, 0x63, 0x1b, 0x68, 0xc6, 0xa5, 0x0e,
0x48, 0xd7, 0x17, 0x63, 0x9d, 0x7d, 0xea, 0x00, 0x91, 0x1c, 0xfc, 0x21, 0x9a, 0x73, 0x99, 0x05,
0xf5, 0x87, 0xd2, 0x81, 0xc5, 0xda, 0x15, 0x25, 0x33, 0xb7, 0x2f, 0xa9, 0x44, 0x71, 0xf1, 0x1d,
0xb4, 0xc4, 0x99, 0xc7, 0xda, 0xac, 0xd5, 0x7b, 0x0c, 0xbd, 0x41, 0xc1, 0x0a, 0x61, 0x5f, 0x5f,
0x3a, 0x4a, 0xd0, 0xc9, 0x88, 0x14, 0x6e, 0xa2, 0x3c, 0x6d, 0xb7, 0x99, 0x49, 0x39, 0x6d, 0xb6,
0x41, 0x56, 0x21, 0xbf, 0x55, 0x7d, 0x57, 0x8c, 0x51, 0x95, 0x85, 0x71, 0x02, 0x01, 0xeb, 0xf8,
0x26, 0x04, 0xb5, 0x95, 0xb0, 0xaf, 0xe7, 0xb7, 0x63, 0x1c, 0x92, 0x04, 0xad, 0xfc, 0xa8, 0xa1,
0xbc, 0x8a, 0xfa, 0x12, 0xc6, 0xf2, 0xe3, 0xd1, 0xb1, 0x7c, 0xff, 0x1c, 0xf5, 0x9a, 0x30, 0x94,
0xe6, 0xd0, 0x6d, 0x39, 0x91, 0x47, 0x68, 0xde, 0x92, 0x45, 0x0b, 0x8a, 0x9a, 0x84, 0xbe, 0x76,
0x0e, 0x68, 0x35, 0xf5, 0x2b, 0xca, 0xc0, 0x7c, 0x74, 0x0e, 0xc8, 0x00, 0xaa, 0xf2, 0xed, 0x1c,
0x5a, 0x1a, 0x34, 0x7c, 0x9b, 0x06, 0xc1, 0x25, 0x34, 0xf4, 0x47, 0x28, 0xef, 0xf9, 0xac, 0x6b,
0x07, 0x36, 0x73, 0xc1, 0x57, 0x6d, 0xb5, 0xa6, 0x54, 0xf2, 0x07, 0x31, 0x8b, 0x24, 0xe5, 0x70,
0x1b, 0x21, 0x8f, 0xfa, 0xd4, 0x01, 0x2e, 0x52, 0x90, 0x93, 0x29, 0xb8, 0xf7, 0xae, 0x14, 0x24,
0xc3, 0x32, 0x0e, 0x86, 0xaa, 0xbb, 0x2e, 0xf7, 0x7b, 0xb1, 0x8b, 0x31, 0x83, 0x24, 0xf0, 0xf1,
0x09, 0x5a, 0xf6, 0xc1, 0x6c, 0x53, 0xdb, 0x39, 0x60, 0x6d, 0xdb, 0x8c, 0x16, 0xc4, 0x62, 0x6d,
0x37, 0xec, 0xeb, 0xcb, 0x24, 0xc9, 0x38, 0xed, 0xeb, 0xb7, 0xc6, 0x6f, 0x5e, 0xe3, 0x00, 0xfc,
0xc0, 0x0e, 0x38, 0xb8, 0x3c, 0x6a, 0xd8, 0x11, 0x1d, 0x32, 0x8a, 0x2d, 0x66, 0xc7, 0x11, 0xdb,
0xef, 0x89, 0xc7, 0x6d, 0xe6, 0x06, 0xc5, 0xd9, 0x78, 0x76, 0x1a, 0x09, 0x3a, 0x19, 0x91, 0xc2,
0x7b, 0x68, 0x5d, 0xb4, 0xf9, 0x17, 0x91, 0x81, 0xdd, 0x2f, 0x3d, 0xea, 0x8a, 0x54, 0x15, 0xe7,
0xe4, 0x2a, 0x2b, 0x8a, 0x55, 0xb9, 0x9d, 0xc1, 0x27, 0x99, 0x5a, 0xf8, 0x53, 0xb4, 0x1a, 0xed,
0xca, 0x9a, 0xed, 0x5a, 0xb6, 0xdb, 0x12, 0x9b, 0xb2, 0x38, 0x2f, 0x83, 0xbe, 0x1e, 0xf6, 0xf5,
0xd5, 0xa7, 0x69, 0xe6, 0x69, 0x16, 0x91, 0x8c, 0x83, 0xe0, 0x97, 0x68, 0x55, 0x5a, 0x04, 0x4b,
0x2d, 0x02, 0x1b, 0x82, 0xe2, 0x82, 0xac, 0xdf, 0x66, 0xb2, 0x7e, 0x22, 0x75, 0xa2, 0x91, 0x06,
0xeb, 0xe2, 0x10, 0xda, 0x60, 0x72, 0xe6, 0x1f, 0x81, 0xef, 0xd4, 0xde, 0x53, 0xf5, 0x5a, 0xdd,
0x4e, 0x43, 0x91, 0x71, 0xf4, 0xd2, 0x03, 0xb4, 0x92, 0x2a, 0x38, 0x2e, 0xa0, 0xdc, 0x09, 0xf4,
0xa2, 0x45, 0x47, 0xc4, 0x27, 0x5e, 0x47, 0xb3, 0x5d, 0xda, 0xee, 0x40, 0xd4, 0x81, 0x24, 0x3a,
0xdc, 0x9f, 0xbe, 0xa7, 0x55, 0x7e, 0xd5, 0x50, 0x21, 0xd9, 0x3d, 0x97, 0xb0, 0x36, 0x1a, 0xa3,
0x6b, 0x63, 0xf3, 0xbc, 0x8d, 0x3d, 0x61, 0x77, 0x7c, 0x3f, 0x8d, 0x0a, 0x51, 0x71, 0xa2, 0xbb,
0xda, 0x01, 0x97, 0x5f, 0xc2, 0x68, 0x93, 0x91, 0xbb, 0xea, 0xd6, 0xd9, 0x7b, 0x3c, 0xf6, 0x6e,
0xd2, 0xa5, 0x85, 0x9f, 0xa1, 0xb9, 0x80, 0x53, 0xde, 0x11, 0x33, 0x2f, 0x50, 0xb7, 0x2e, 0x84,
0x2a, 0x35, 0xe3, 0x4b, 0x2b, 0x3a, 0x13, 0x85, 0x58, 0xf9, 0x4d, 0x43, 0xeb, 0x69, 0x95, 0x4b,
0x28, 0xf6, 0x27, 0xa3, 0xc5, 0xbe, 0x71, 0x91, 0x88, 0x26, 0x14, 0xfc, 0x0f, 0x0d, 0xfd, 0x6f,
0x2c, 0x78, 0x79, 0x3d, 0x8a, 0x3d, 0xe1, 0xa5, 0xb6, 0xd1, 0x7e, 0x7c, 0xe7, 0xcb, 0x3d, 0x71,
0x90, 0xc1, 0x27, 0x99, 0x5a, 0xf8, 0x05, 0x2a, 0xd8, 0x6e, 0xdb, 0x76, 0x21, 0xa2, 0x1d, 0xc6,
0xe5, 0xce, 0x1c, 0xe6, 0x34, 0xb2, 0x2c, 0xf3, 0x7a, 0xd8, 0xd7, 0x0b, 0xf5, 0x14, 0x0a, 0x19,
0xc3, 0xad, 0xfc, 0x9e, 0x51, 0x1e, 0x79, 0x17, 0xde, 0x40, 0x0b, 0xd1, 0x9b, 0x13, 0x7c, 0x15,
0xc6, 0x30, 0xdd, 0xdb, 0x8a, 0x4e, 0x86, 0x12, 0xb2, 0x83, 0x64, 0x2a, 0x94, 0xa3, 0x17, 0xeb,
0x20, 0xa9, 0x99, 0xe8, 0x20, 0x79, 0x26, 0x0a, 0x51, 0x78, 0x22, 0x1e, 0x40, 0x32, 0xa1, 0xb9,
0x51, 0x4f, 0xf6, 0x15, 0x9d, 0x0c, 0x25, 0x2a, 0xff, 0xe4, 0x32, 0xaa, 0x24, 0x5b, 0x31, 0x11,
0xd2, 0xe0, 0xa9, 0x9d, 0x0e, 0xc9, 0x1a, 0x86, 0x64, 0xe1, 0xef, 0x34, 0x84, 0xe9, 0x10, 0xa2,
0x31, 0x68, 0xd5, 0xa8, 0x9f, 0x1e, 0x5d, 0x7c, 0x42, 0x8c, 0xed, 0x31, 0xb0, 0xe8, 0x9e, 0x2c,
0x29, 0x27, 0xf0, 0xb8, 0x00, 0xc9, 0xf0, 0x00, 0xdb, 0x28, 0x1f, 0x51, 0x77, 0x7d, 0x9f, 0xf9,
0x6a, 0x64, 0xaf, 0x9e, 0xed, 0x90, 0x14, 0xaf, 0x95, 0xe5, 0x43, 0x2e, 0xd6, 0x3f, 0xed, 0xeb,
0xf9, 0x04, 0x9f, 0x24, 0xb1, 0x85, 0x29, 0x0b, 0x62, 0x53, 0x33, 0xff, 0xc1, 0xd4, 0x43, 0x98,
0x6c, 0x2a, 0x81, 0x5d, 0xda, 0x45, 0xff, 0x9f, 0x90, 0xa0, 0x0b, 0xdd, 0x2b, 0x5f, 0x6b, 0x28,
0x69, 0x03, 0xef, 0xa1, 0x19, 0xf1, 0x3b, 0xac, 0x36, 0xcc, 0xf5, 0xf3, 0x6d, 0x98, 0x23, 0xdb,
0x81, 0x78, 0x51, 0x8a, 0x13, 0x91, 0x28, 0xf8, 0x1a, 0x9a, 0x77, 0x20, 0x08, 0x68, 0x4b, 0x59,
0x8e, 0x5f, 0x7d, 0x8d, 0x88, 0x4c, 0x06, 0xfc, 0xca, 0x5d, 0xb4, 0x96, 0xf1, 0x8e, 0xc6, 0x3a,
0x9a, 0x35, 0xe5, 0xff, 0x9a, 0x70, 0x68, 0xb6, 0xb6, 0x28, 0xb6, 0xcc, 0x8e, 0xfc, 0x4d, 0x8b,
0xe8, 0xb5, 0x9b, 0xaf, 0xde, 0x96, 0xa7, 0x5e, 0xbf, 0x2d, 0x4f, 0xbd, 0x79, 0x5b, 0x9e, 0xfa,
0x2a, 0x2c, 0x6b, 0xaf, 0xc2, 0xb2, 0xf6, 0x3a, 0x2c, 0x6b, 0x6f, 0xc2, 0xb2, 0xf6, 0x67, 0x58,
0xd6, 0xbe, 0xf9, 0xab, 0x3c, 0xf5, 0x6c, 0x5e, 0xe5, 0xfb, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff,
0xeb, 0xa0, 0x59, 0x1b, 0x23, 0x11, 0x00, 0x00,
}
func (m *CSIDriver) Marshal() (dAtA []byte, err error) {
@@ -717,6 +719,16 @@ func (m *CSIDriverSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) {
_ = i
var l int
_ = l
if m.StorageCapacity != nil {
i--
if *m.StorageCapacity {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x20
}
if len(m.VolumeLifecycleModes) > 0 {
for iNdEx := len(m.VolumeLifecycleModes) - 1; iNdEx >= 0; iNdEx-- {
i -= len(m.VolumeLifecycleModes[iNdEx])
@@ -1475,6 +1487,9 @@ func (m *CSIDriverSpec) Size() (n int) {
n += 1 + l + sovGenerated(uint64(l))
}
}
if m.StorageCapacity != nil {
n += 2
}
return n
}
@@ -1763,6 +1778,7 @@ func (this *CSIDriverSpec) String() string {
`AttachRequired:` + valueToStringGenerated(this.AttachRequired) + `,`,
`PodInfoOnMount:` + valueToStringGenerated(this.PodInfoOnMount) + `,`,
`VolumeLifecycleModes:` + fmt.Sprintf("%v", this.VolumeLifecycleModes) + `,`,
`StorageCapacity:` + valueToStringGenerated(this.StorageCapacity) + `,`,
`}`,
}, "")
return s
@@ -2315,6 +2331,27 @@ func (m *CSIDriverSpec) Unmarshal(dAtA []byte) error {
}
m.VolumeLifecycleModes = append(m.VolumeLifecycleModes, VolumeLifecycleMode(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StorageCapacity", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowGenerated
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
b := bool(v != 0)
m.StorageCapacity = &b
default:
iNdEx = preIndex
skippy, err := skipGenerated(dAtA[iNdEx:])

View File

@@ -119,6 +119,26 @@ message CSIDriverSpec {
// more modes may be added in the future.
// +optional
repeated string volumeLifecycleModes = 3;
// If set to true, storageCapacity indicates that the CSI
// volume driver wants pod scheduling to consider the storage
// capacity that the driver deployment will report by creating
// CSIStorageCapacity objects with capacity information.
//
// The check can be enabled immediately when deploying a driver.
// In that case, provisioning new volumes with late binding
// will pause until the driver deployment has published
// some suitable CSIStorageCapacity object.
//
// Alternatively, the driver can be deployed with the field
// unset or false and it can be flipped later when storage
// capacity information has been published.
//
// This is an alpha field and only available when the CSIStorageCapacity
// feature is enabled. The default is false.
//
// +optional
optional bool storageCapacity = 4;
}
// DEPRECATED - This group version of CSINode is deprecated by storage/v1/CSINode.

View File

@@ -52,6 +52,7 @@ var map_CSIDriverSpec = map[string]string{
"attachRequired": "attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called.",
"podInfoOnMount": "If set to true, podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeConext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" iff the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.",
"volumeLifecycleModes": "VolumeLifecycleModes defines what kind of volumes this CSI volume driver supports. The default if the list is empty is \"Persistent\", which is the usage defined by the CSI specification and implemented in Kubernetes via the usual PV/PVC mechanism. The other mode is \"Ephemeral\". In this mode, volumes are defined inline inside the pod spec with CSIVolumeSource and their lifecycle is tied to the lifecycle of that pod. A driver has to be aware of this because it is only going to get a NodePublishVolume call for such a volume. For more information about implementing this mode, see https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html A driver can support one or more of these modes and more modes may be added in the future.",
"storageCapacity": "If set to true, storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information.\n\nThe check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object.\n\nAlternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published.\n\nThis is an alpha field and only available when the CSIStorageCapacity feature is enabled. The default is false.",
}
func (CSIDriverSpec) SwaggerDoc() map[string]string {

View File

@@ -103,6 +103,11 @@ func (in *CSIDriverSpec) DeepCopyInto(out *CSIDriverSpec) {
*out = make([]VolumeLifecycleMode, len(*in))
copy(*out, *in)
}
if in.StorageCapacity != nil {
in, out := &in.StorageCapacity, &out.StorageCapacity
*out = new(bool)
**out = **in
}
return
}

View File

@@ -45,6 +45,7 @@
"podInfoOnMount": false,
"volumeLifecycleModes": [
"r鯹)晿\u003co,c鮽ort昍řČ扷5ƗǸ"
]
],
"storageCapacity": true
}
}

View File

@@ -32,5 +32,6 @@ metadata:
spec:
attachRequired: false
podInfoOnMount: false
storageCapacity: true
volumeLifecycleModes:
- r鯹)晿<o,c鮽ort昍řČ扷5ƗǸ

View File

@@ -0,0 +1,59 @@
{
"kind": "CSIStorageCapacity",
"apiVersion": "storage.k8s.io/v1alpha1",
"metadata": {
"name": "2",
"generateName": "3",
"namespace": "4",
"selfLink": "5",
"uid": "7",
"resourceVersion": "11042405498087606203",
"generation": 8071137005907523419,
"creationTimestamp": null,
"deletionGracePeriodSeconds": -4955867275792137171,
"labels": {
"7": "8"
},
"annotations": {
"9": "10"
},
"ownerReferences": [
{
"apiVersion": "11",
"kind": "12",
"name": "13",
"uid": "Dz廔ȇ{sŊƏp",
"controller": false,
"blockOwnerDeletion": true
}
],
"finalizers": [
"14"
],
"clusterName": "15",
"managedFields": [
{
"manager": "16",
"operation": "鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]",
"apiVersion": "17",
"fieldsType": "18"
}
]
},
"nodeTopology": {
"matchLabels": {
"8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3": "68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4"
},
"matchExpressions": [
{
"key": "p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0",
"operator": "In",
"values": [
"D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n"
]
}
]
},
"storageClassName": "25",
"capacity": "130"
}

View File

@@ -0,0 +1,41 @@
apiVersion: storage.k8s.io/v1alpha1
capacity: "130"
kind: CSIStorageCapacity
metadata:
annotations:
"9": "10"
clusterName: "15"
creationTimestamp: null
deletionGracePeriodSeconds: -4955867275792137171
finalizers:
- "14"
generateName: "3"
generation: 8071137005907523419
labels:
"7": "8"
managedFields:
- apiVersion: "17"
fieldsType: "18"
manager: "16"
operation: 鐊唊飙Ş-U圴÷a/ɔ}摁(湗Ć]
name: "2"
namespace: "4"
ownerReferences:
- apiVersion: "11"
blockOwnerDeletion: true
controller: false
kind: "12"
name: "13"
uid: Dz廔ȇ{sŊƏp
resourceVersion: "11042405498087606203"
selfLink: "5"
uid: "7"
nodeTopology:
matchExpressions:
- key: p503---477-49p---o61---4fy--9---7--9-9s-0-u5lj2--10pq-0-7-9-2-0/fP81.-.9Vdx.TB_M-H_5_.t..bG0
operator: In
values:
- D07.a_.y_y_o0_5qN2_---_M.N_._a6.9bHjdH.-.5_.I8__n
matchLabels:
8---jop9641lg.p-g8c2-k-912e5-c-e63-n-3n/E9.8ThjT9s-j41-0-6p-JFHn7y-74.-0MUORQQ.N2.3: 68._bQw.-dG6c-.6--_x.--0wmZk1_8._3s_-_Bq.m_4
storageClassName: "25"

View File

@@ -45,6 +45,7 @@
"podInfoOnMount": false,
"volumeLifecycleModes": [
"r鯹)晿\u003co,c鮽ort昍řČ扷5ƗǸ"
]
],
"storageCapacity": true
}
}

View File

@@ -32,5 +32,6 @@ metadata:
spec:
attachRequired: false
podInfoOnMount: false
storageCapacity: true
volumeLifecycleModes:
- r鯹)晿<o,c鮽ort昍řČ扷5ƗǸ

View File

@@ -327,6 +327,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource
return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1().VolumeAttachments().Informer()}, nil
// Group=storage.k8s.io, Version=v1alpha1
case storagev1alpha1.SchemeGroupVersion.WithResource("csistoragecapacities"):
return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().CSIStorageCapacities().Informer()}, nil
case storagev1alpha1.SchemeGroupVersion.WithResource("volumeattachments"):
return &genericInformer{resource: resource.GroupResource(), informer: f.Storage().V1alpha1().VolumeAttachments().Informer()}, nil

View File

@@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"csistoragecapacity.go",
"interface.go",
"volumeattachment.go",
],

View File

@@ -0,0 +1,90 @@
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by informer-gen. DO NOT EDIT.
package v1alpha1
import (
"context"
time "time"
storagev1alpha1 "k8s.io/api/storage/v1alpha1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
runtime "k8s.io/apimachinery/pkg/runtime"
watch "k8s.io/apimachinery/pkg/watch"
internalinterfaces "k8s.io/client-go/informers/internalinterfaces"
kubernetes "k8s.io/client-go/kubernetes"
v1alpha1 "k8s.io/client-go/listers/storage/v1alpha1"
cache "k8s.io/client-go/tools/cache"
)
// CSIStorageCapacityInformer provides access to a shared informer and lister for
// CSIStorageCapacities.
type CSIStorageCapacityInformer interface {
Informer() cache.SharedIndexInformer
Lister() v1alpha1.CSIStorageCapacityLister
}
type cSIStorageCapacityInformer struct {
factory internalinterfaces.SharedInformerFactory
tweakListOptions internalinterfaces.TweakListOptionsFunc
namespace string
}
// NewCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.
// Always prefer using an informer factory to get a shared informer instead of getting an independent
// one. This reduces memory footprint and number of connections to the server.
func NewCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer {
return NewFilteredCSIStorageCapacityInformer(client, namespace, resyncPeriod, indexers, nil)
}
// NewFilteredCSIStorageCapacityInformer constructs a new informer for CSIStorageCapacity type.
// Always prefer using an informer factory to get a shared informer instead of getting an independent
// one. This reduces memory footprint and number of connections to the server.
func NewFilteredCSIStorageCapacityInformer(client kubernetes.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer {
return cache.NewSharedIndexInformer(
&cache.ListWatch{
ListFunc: func(options v1.ListOptions) (runtime.Object, error) {
if tweakListOptions != nil {
tweakListOptions(&options)
}
return client.StorageV1alpha1().CSIStorageCapacities(namespace).List(context.TODO(), options)
},
WatchFunc: func(options v1.ListOptions) (watch.Interface, error) {
if tweakListOptions != nil {
tweakListOptions(&options)
}
return client.StorageV1alpha1().CSIStorageCapacities(namespace).Watch(context.TODO(), options)
},
},
&storagev1alpha1.CSIStorageCapacity{},
resyncPeriod,
indexers,
)
}
func (f *cSIStorageCapacityInformer) defaultInformer(client kubernetes.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer {
return NewFilteredCSIStorageCapacityInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions)
}
func (f *cSIStorageCapacityInformer) Informer() cache.SharedIndexInformer {
return f.factory.InformerFor(&storagev1alpha1.CSIStorageCapacity{}, f.defaultInformer)
}
func (f *cSIStorageCapacityInformer) Lister() v1alpha1.CSIStorageCapacityLister {
return v1alpha1.NewCSIStorageCapacityLister(f.Informer().GetIndexer())
}

View File

@@ -24,6 +24,8 @@ import (
// Interface provides access to all the informers in this group version.
type Interface interface {
// CSIStorageCapacities returns a CSIStorageCapacityInformer.
CSIStorageCapacities() CSIStorageCapacityInformer
// VolumeAttachments returns a VolumeAttachmentInformer.
VolumeAttachments() VolumeAttachmentInformer
}
@@ -39,6 +41,11 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList
return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions}
}
// CSIStorageCapacities returns a CSIStorageCapacityInformer.
func (v *version) CSIStorageCapacities() CSIStorageCapacityInformer {
return &cSIStorageCapacityInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions}
}
// VolumeAttachments returns a VolumeAttachmentInformer.
func (v *version) VolumeAttachments() VolumeAttachmentInformer {
return &volumeAttachmentInformer{factory: v.factory, tweakListOptions: v.tweakListOptions}

View File

@@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"csistoragecapacity.go",
"doc.go",
"generated_expansion.go",
"storage_client.go",

View File

@@ -0,0 +1,178 @@
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by client-gen. DO NOT EDIT.
package v1alpha1
import (
"context"
"time"
v1alpha1 "k8s.io/api/storage/v1alpha1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
scheme "k8s.io/client-go/kubernetes/scheme"
rest "k8s.io/client-go/rest"
)
// CSIStorageCapacitiesGetter has a method to return a CSIStorageCapacityInterface.
// A group's client should implement this interface.
type CSIStorageCapacitiesGetter interface {
CSIStorageCapacities(namespace string) CSIStorageCapacityInterface
}
// CSIStorageCapacityInterface has methods to work with CSIStorageCapacity resources.
type CSIStorageCapacityInterface interface {
Create(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.CreateOptions) (*v1alpha1.CSIStorageCapacity, error)
Update(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.UpdateOptions) (*v1alpha1.CSIStorageCapacity, error)
Delete(ctx context.Context, name string, opts v1.DeleteOptions) error
DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error
Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.CSIStorageCapacity, error)
List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.CSIStorageCapacityList, error)
Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error)
Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CSIStorageCapacity, err error)
CSIStorageCapacityExpansion
}
// cSIStorageCapacities implements CSIStorageCapacityInterface
type cSIStorageCapacities struct {
client rest.Interface
ns string
}
// newCSIStorageCapacities returns a CSIStorageCapacities
func newCSIStorageCapacities(c *StorageV1alpha1Client, namespace string) *cSIStorageCapacities {
return &cSIStorageCapacities{
client: c.RESTClient(),
ns: namespace,
}
}
// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.
func (c *cSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.CSIStorageCapacity, err error) {
result = &v1alpha1.CSIStorageCapacity{}
err = c.client.Get().
Namespace(c.ns).
Resource("csistoragecapacities").
Name(name).
VersionedParams(&options, scheme.ParameterCodec).
Do(ctx).
Into(result)
return
}
// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.
func (c *cSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.CSIStorageCapacityList, err error) {
var timeout time.Duration
if opts.TimeoutSeconds != nil {
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
}
result = &v1alpha1.CSIStorageCapacityList{}
err = c.client.Get().
Namespace(c.ns).
Resource("csistoragecapacities").
VersionedParams(&opts, scheme.ParameterCodec).
Timeout(timeout).
Do(ctx).
Into(result)
return
}
// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.
func (c *cSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
var timeout time.Duration
if opts.TimeoutSeconds != nil {
timeout = time.Duration(*opts.TimeoutSeconds) * time.Second
}
opts.Watch = true
return c.client.Get().
Namespace(c.ns).
Resource("csistoragecapacities").
VersionedParams(&opts, scheme.ParameterCodec).
Timeout(timeout).
Watch(ctx)
}
// Create takes the representation of a cSIStorageCapacity and creates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.
func (c *cSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {
result = &v1alpha1.CSIStorageCapacity{}
err = c.client.Post().
Namespace(c.ns).
Resource("csistoragecapacities").
VersionedParams(&opts, scheme.ParameterCodec).
Body(cSIStorageCapacity).
Do(ctx).
Into(result)
return
}
// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.
func (c *cSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {
result = &v1alpha1.CSIStorageCapacity{}
err = c.client.Put().
Namespace(c.ns).
Resource("csistoragecapacities").
Name(cSIStorageCapacity.Name).
VersionedParams(&opts, scheme.ParameterCodec).
Body(cSIStorageCapacity).
Do(ctx).
Into(result)
return
}
// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.
func (c *cSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
return c.client.Delete().
Namespace(c.ns).
Resource("csistoragecapacities").
Name(name).
Body(&opts).
Do(ctx).
Error()
}
// DeleteCollection deletes a collection of objects.
func (c *cSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
var timeout time.Duration
if listOpts.TimeoutSeconds != nil {
timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second
}
return c.client.Delete().
Namespace(c.ns).
Resource("csistoragecapacities").
VersionedParams(&listOpts, scheme.ParameterCodec).
Timeout(timeout).
Body(&opts).
Do(ctx).
Error()
}
// Patch applies the patch and returns the patched cSIStorageCapacity.
func (c *cSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CSIStorageCapacity, err error) {
result = &v1alpha1.CSIStorageCapacity{}
err = c.client.Patch(pt).
Namespace(c.ns).
Resource("csistoragecapacities").
Name(name).
SubResource(subresources...).
VersionedParams(&opts, scheme.ParameterCodec).
Body(data).
Do(ctx).
Into(result)
return
}

View File

@@ -4,6 +4,7 @@ go_library(
name = "go_default_library",
srcs = [
"doc.go",
"fake_csistoragecapacity.go",
"fake_storage_client.go",
"fake_volumeattachment.go",
],

View File

@@ -0,0 +1,130 @@
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by client-gen. DO NOT EDIT.
package fake
import (
"context"
v1alpha1 "k8s.io/api/storage/v1alpha1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
labels "k8s.io/apimachinery/pkg/labels"
schema "k8s.io/apimachinery/pkg/runtime/schema"
types "k8s.io/apimachinery/pkg/types"
watch "k8s.io/apimachinery/pkg/watch"
testing "k8s.io/client-go/testing"
)
// FakeCSIStorageCapacities implements CSIStorageCapacityInterface
type FakeCSIStorageCapacities struct {
Fake *FakeStorageV1alpha1
ns string
}
var csistoragecapacitiesResource = schema.GroupVersionResource{Group: "storage.k8s.io", Version: "v1alpha1", Resource: "csistoragecapacities"}
var csistoragecapacitiesKind = schema.GroupVersionKind{Group: "storage.k8s.io", Version: "v1alpha1", Kind: "CSIStorageCapacity"}
// Get takes name of the cSIStorageCapacity, and returns the corresponding cSIStorageCapacity object, and an error if there is any.
func (c *FakeCSIStorageCapacities) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.CSIStorageCapacity, err error) {
obj, err := c.Fake.
Invokes(testing.NewGetAction(csistoragecapacitiesResource, c.ns, name), &v1alpha1.CSIStorageCapacity{})
if obj == nil {
return nil, err
}
return obj.(*v1alpha1.CSIStorageCapacity), err
}
// List takes label and field selectors, and returns the list of CSIStorageCapacities that match those selectors.
func (c *FakeCSIStorageCapacities) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.CSIStorageCapacityList, err error) {
obj, err := c.Fake.
Invokes(testing.NewListAction(csistoragecapacitiesResource, csistoragecapacitiesKind, c.ns, opts), &v1alpha1.CSIStorageCapacityList{})
if obj == nil {
return nil, err
}
label, _, _ := testing.ExtractFromListOptions(opts)
if label == nil {
label = labels.Everything()
}
list := &v1alpha1.CSIStorageCapacityList{ListMeta: obj.(*v1alpha1.CSIStorageCapacityList).ListMeta}
for _, item := range obj.(*v1alpha1.CSIStorageCapacityList).Items {
if label.Matches(labels.Set(item.Labels)) {
list.Items = append(list.Items, item)
}
}
return list, err
}
// Watch returns a watch.Interface that watches the requested cSIStorageCapacities.
func (c *FakeCSIStorageCapacities) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) {
return c.Fake.
InvokesWatch(testing.NewWatchAction(csistoragecapacitiesResource, c.ns, opts))
}
// Create takes the representation of a cSIStorageCapacity and creates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.
func (c *FakeCSIStorageCapacities) Create(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.CreateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {
obj, err := c.Fake.
Invokes(testing.NewCreateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1alpha1.CSIStorageCapacity{})
if obj == nil {
return nil, err
}
return obj.(*v1alpha1.CSIStorageCapacity), err
}
// Update takes the representation of a cSIStorageCapacity and updates it. Returns the server's representation of the cSIStorageCapacity, and an error, if there is any.
func (c *FakeCSIStorageCapacities) Update(ctx context.Context, cSIStorageCapacity *v1alpha1.CSIStorageCapacity, opts v1.UpdateOptions) (result *v1alpha1.CSIStorageCapacity, err error) {
obj, err := c.Fake.
Invokes(testing.NewUpdateAction(csistoragecapacitiesResource, c.ns, cSIStorageCapacity), &v1alpha1.CSIStorageCapacity{})
if obj == nil {
return nil, err
}
return obj.(*v1alpha1.CSIStorageCapacity), err
}
// Delete takes name of the cSIStorageCapacity and deletes it. Returns an error if one occurs.
func (c *FakeCSIStorageCapacities) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error {
_, err := c.Fake.
Invokes(testing.NewDeleteAction(csistoragecapacitiesResource, c.ns, name), &v1alpha1.CSIStorageCapacity{})
return err
}
// DeleteCollection deletes a collection of objects.
func (c *FakeCSIStorageCapacities) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error {
action := testing.NewDeleteCollectionAction(csistoragecapacitiesResource, c.ns, listOpts)
_, err := c.Fake.Invokes(action, &v1alpha1.CSIStorageCapacityList{})
return err
}
// Patch applies the patch and returns the patched cSIStorageCapacity.
func (c *FakeCSIStorageCapacities) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.CSIStorageCapacity, err error) {
obj, err := c.Fake.
Invokes(testing.NewPatchSubresourceAction(csistoragecapacitiesResource, c.ns, name, pt, data, subresources...), &v1alpha1.CSIStorageCapacity{})
if obj == nil {
return nil, err
}
return obj.(*v1alpha1.CSIStorageCapacity), err
}

View File

@@ -28,6 +28,10 @@ type FakeStorageV1alpha1 struct {
*testing.Fake
}
func (c *FakeStorageV1alpha1) CSIStorageCapacities(namespace string) v1alpha1.CSIStorageCapacityInterface {
return &FakeCSIStorageCapacities{c, namespace}
}
func (c *FakeStorageV1alpha1) VolumeAttachments() v1alpha1.VolumeAttachmentInterface {
return &FakeVolumeAttachments{c}
}

View File

@@ -18,4 +18,6 @@ limitations under the License.
package v1alpha1
type CSIStorageCapacityExpansion interface{}
type VolumeAttachmentExpansion interface{}

View File

@@ -26,6 +26,7 @@ import (
type StorageV1alpha1Interface interface {
RESTClient() rest.Interface
CSIStorageCapacitiesGetter
VolumeAttachmentsGetter
}
@@ -34,6 +35,10 @@ type StorageV1alpha1Client struct {
restClient rest.Interface
}
func (c *StorageV1alpha1Client) CSIStorageCapacities(namespace string) CSIStorageCapacityInterface {
return newCSIStorageCapacities(c, namespace)
}
func (c *StorageV1alpha1Client) VolumeAttachments() VolumeAttachmentInterface {
return newVolumeAttachments(c)
}

View File

@@ -3,6 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"csistoragecapacity.go",
"expansion_generated.go",
"volumeattachment.go",
],

View File

@@ -0,0 +1,99 @@
/*
Copyright The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Code generated by lister-gen. DO NOT EDIT.
package v1alpha1
import (
v1alpha1 "k8s.io/api/storage/v1alpha1"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/tools/cache"
)
// CSIStorageCapacityLister helps list CSIStorageCapacities.
// All objects returned here must be treated as read-only.
type CSIStorageCapacityLister interface {
// List lists all CSIStorageCapacities in the indexer.
// Objects returned here must be treated as read-only.
List(selector labels.Selector) (ret []*v1alpha1.CSIStorageCapacity, err error)
// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.
CSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister
CSIStorageCapacityListerExpansion
}
// cSIStorageCapacityLister implements the CSIStorageCapacityLister interface.
type cSIStorageCapacityLister struct {
indexer cache.Indexer
}
// NewCSIStorageCapacityLister returns a new CSIStorageCapacityLister.
func NewCSIStorageCapacityLister(indexer cache.Indexer) CSIStorageCapacityLister {
return &cSIStorageCapacityLister{indexer: indexer}
}
// List lists all CSIStorageCapacities in the indexer.
func (s *cSIStorageCapacityLister) List(selector labels.Selector) (ret []*v1alpha1.CSIStorageCapacity, err error) {
err = cache.ListAll(s.indexer, selector, func(m interface{}) {
ret = append(ret, m.(*v1alpha1.CSIStorageCapacity))
})
return ret, err
}
// CSIStorageCapacities returns an object that can list and get CSIStorageCapacities.
func (s *cSIStorageCapacityLister) CSIStorageCapacities(namespace string) CSIStorageCapacityNamespaceLister {
return cSIStorageCapacityNamespaceLister{indexer: s.indexer, namespace: namespace}
}
// CSIStorageCapacityNamespaceLister helps list and get CSIStorageCapacities.
// All objects returned here must be treated as read-only.
type CSIStorageCapacityNamespaceLister interface {
// List lists all CSIStorageCapacities in the indexer for a given namespace.
// Objects returned here must be treated as read-only.
List(selector labels.Selector) (ret []*v1alpha1.CSIStorageCapacity, err error)
// Get retrieves the CSIStorageCapacity from the indexer for a given namespace and name.
// Objects returned here must be treated as read-only.
Get(name string) (*v1alpha1.CSIStorageCapacity, error)
CSIStorageCapacityNamespaceListerExpansion
}
// cSIStorageCapacityNamespaceLister implements the CSIStorageCapacityNamespaceLister
// interface.
type cSIStorageCapacityNamespaceLister struct {
indexer cache.Indexer
namespace string
}
// List lists all CSIStorageCapacities in the indexer for a given namespace.
func (s cSIStorageCapacityNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.CSIStorageCapacity, err error) {
err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) {
ret = append(ret, m.(*v1alpha1.CSIStorageCapacity))
})
return ret, err
}
// Get retrieves the CSIStorageCapacity from the indexer for a given namespace and name.
func (s cSIStorageCapacityNamespaceLister) Get(name string) (*v1alpha1.CSIStorageCapacity, error) {
obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name)
if err != nil {
return nil, err
}
if !exists {
return nil, errors.NewNotFound(v1alpha1.Resource("csistoragecapacity"), name)
}
return obj.(*v1alpha1.CSIStorageCapacity), nil
}

View File

@@ -18,6 +18,14 @@ limitations under the License.
package v1alpha1
// CSIStorageCapacityListerExpansion allows custom methods to be added to
// CSIStorageCapacityLister.
type CSIStorageCapacityListerExpansion interface{}
// CSIStorageCapacityNamespaceListerExpansion allows custom methods to be added to
// CSIStorageCapacityNamespaceLister.
type CSIStorageCapacityNamespaceListerExpansion interface{}
// VolumeAttachmentListerExpansion allows custom methods to be added to
// VolumeAttachmentLister.
type VolumeAttachmentListerExpansion interface{}

View File

@@ -24,6 +24,7 @@ go_test(
deps = [
"//cmd/kube-apiserver/app/options:go_default_library",
"//pkg/api/legacyscheme:go_default_library",
"//pkg/features:go_default_library",
"//pkg/master:go_default_library",
"//pkg/printers:go_default_library",
"//pkg/printers/internalversion:go_default_library",