class K8S::Api::Storage::V1alpha1::CSIStorageCapacity
Overview
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"]("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.
They are consumed by the kube-scheduler if the CSIStorageCapacity beta feature gate is enabled there and a CSI driver opts into capacity-aware scheduling with CSIDriver.StorageCapacity.
Included Modules
- JSON::Serializable
 - K8S::Kubernetes::Resource::Object
 - YAML::Serializable
 
Defined in:
versions/v1.21/api/storage/v1alpha1/csi_storage_capacity.crConstructors
- .new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)
 - .new(pull : JSON::PullParser)
 - .new(*, storage_class_name : String, capacity : Int32 | String | Nil = nil, maximum_volume_size : Int32 | String | Nil = nil, metadata : Apimachinery::Apis::Meta::V1::ObjectMeta? = nil, node_topology : Apimachinery::Apis::Meta::V1::LabelSelector? = nil)
 
Class Method Summary
Instance Method Summary
- #api_version : String
 - #capacity : Int32 | String | Nil
 - #capacity=(capacity : Int32 | String | Nil)
 - #kind : String
 - #maximum_volume_size : Int32 | String | Nil
 - #maximum_volume_size=(maximum_volume_size : Int32 | String | Nil)
 - #merge(other)
 - #metadata : Apimachinery::Apis::Meta::V1::ObjectMeta?
 - #metadata=(metadata : Apimachinery::Apis::Meta::V1::ObjectMeta?)
 - #node_topology : Apimachinery::Apis::Meta::V1::LabelSelector?
 - #node_topology=(node_topology : Apimachinery::Apis::Meta::V1::LabelSelector?)
 - #storage_class_name : String
 - #storage_class_name=(storage_class_name : String)
 - #to_h
 
Instance methods inherited from module K8S::Kubernetes::Resource::Object
  
  
    
      api_version : String
    api_version, 
    
  
    
      kind : String
    kind, 
    
  
    
      metadata : Apimachinery::Apis::Meta::V1::ObjectMeta?
    metadata, 
    
  
    
      metadata! : Apimachinery::Apis::Meta::V1::ObjectMeta
    metadata!
    
  
    
    
  
    
  Instance methods inherited from class K8S::Kubernetes::Resource
  
  
    
      api_version : String
    api_version, 
    
  
    
      kind : String
    kind
    
  
    
  Constructor methods inherited from class K8S::Kubernetes::Resource
  
  
    
      new(ctx : YAML::ParseContext, node : YAML::Nodes::Node)new(pull : JSON::PullParser) new