CStorVolumeConfig
cstor.openebs.io / v1
apiVersion: cstor.openebs.io/v1
kind: CStorVolumeConfig
metadata:
name: example
apiVersion
string
APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
kind
string
Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
metadata
object
publish object
Publish contains info related to attachment of a volume to a node. i.e. NodeId etc.
nodeId
string
NodeID contains publish info related to attachment of a volume to a node.
spec object required
Spec defines a specification of a cstor volume config required to provisione cstor volume resources
capacity
object required
Capacity represents the actual resources of the underlying cstor volume.
cstorVolumeRef object
CStorVolumeRef has the information about where CstorVolumeClaim is created from.
apiVersion
string
API version of the referent.
fieldPath
string
If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.
kind
string
Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
name
string
Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
namespace
string
Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
resourceVersion
string
Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
uid
string
UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
cstorVolumeSource
string
CStorVolumeSource contains the source volumeName@snapShotname combaination. This will be filled only if it is a clone creation.
policy object required
Policy contains volume specific required policies target and replicas
provision object
replicaAffinity is set to true then volume replica resources need to be distributed across the pool instances
blockSize
integer
BlockSize is the logical block size in multiple of 512 bytes BlockSize specifies the block size of the volume. The blocksize cannot be changed once the volume has been written, so it should be set at volume creation time. The default blocksize for volumes is 4 Kbytes. Any power of 2 from 512 bytes to 128 Kbytes is valid.
format:
int32
replicaAffinity
boolean required
replicaAffinity is set to true then volume replica resources need to be distributed across the cstor pool instances based on the given topology
replica object
ReplicaSpec represents configuration related to replicas resources
compression
string
The zle compression algorithm compresses runs of zeros.
zvolWorkers
string
IOWorkers represents number of threads that executes client IOs
replicaPoolInfo []object
ReplicaPoolInfo holds the pool information of volume replicas. Ex: If volume is provisioned on which CStor pool volume replicas exist
poolName
string required
PoolName represents the pool name where volume replica exists
target object
TargetSpec represents configuration related to cstor target and its resources
affinity object
PodAffinity if specified, are the target pod's affinities
preferredDuringSchedulingIgnoredDuringExecution []object
The scheduler will prefer to schedule pods to nodes that satisfy the affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred.
podAffinityTerm object required
Required. A pod affinity term, associated with the corresponding weight.
labelSelector object
A label query over a set of resources, in this case pods.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
namespaceSelector object
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
namespaces
[]string
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
topologyKey
string required
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
weight
integer required
weight associated with matching the corresponding podAffinityTerm, in the range 1-100.
format:
int32requiredDuringSchedulingIgnoredDuringExecution []object
If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.
labelSelector object
A label query over a set of resources, in this case pods.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
namespaceSelector object
A label query over the set of namespaces that the term applies to. The term is applied to the union of the namespaces selected by this field and the ones listed in the namespaces field. null selector and null or empty namespaces list means "this pod's namespace". An empty selector ({}) matches all namespaces.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
namespaces
[]string
namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means "this pod's namespace".
topologyKey
string required
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.
auxResources object
AuxResources are the compute resources required by the cstor-target pod side car containers.
claims []object
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
name
string required
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
limits
object
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
luWorkers
integer
IOWorkers sets the number of threads that are working on above queue
format:
int64
monitor
boolean
Monitor enables or disables the target exporter sidecar
nodeSelector
object
NodeSelector is the labels that will be used to select a node for target pod scheduleing Required field
priorityClassName
string
PriorityClassName if specified applies to this target pod If left empty, no priority class is applied.
queueDepth
string
QueueDepth sets the queue size at iSCSI target which limits the ongoing IO count from client
replicationFactor
integer
ReplicationFactor represents maximum number of replicas that are allowed to connect to the target
format:
int64resources object
Resources are the compute resources required by the cstor-target container.
claims []object
Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container.
This is an alpha field and requires enabling the DynamicResourceAllocation feature gate.
This field is immutable. It can only be set for containers.
name
string required
Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.
limits
object
Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
tolerations []object
Tolerations, if specified, are the target pod's tolerations
effect
string
Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
key
string
Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys.
operator
string
Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category.
tolerationSeconds
integer
TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system.
format:
int64
value
string
Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string.
provision object required
Provision represents the initial volume configuration for the underlying cstor volume based on the persistent volume request by user. Provision properties are immutable
capacity
object required
Capacity represents initial capacity of volume replica required during volume clone operations to maintain some metadata info related to child resources like snapshot, cloned volumes.
replicaCount
integer required
ReplicaCount represents initial cstor volume replica count, its will not be updated later on based on scale up/down operations, only readonly operations and validations.
status object required
Status represents the current information/status for the cstor volume config, populated by the controller.
capacity
object
Capacity the actual resources of the underlying volume.
condition []object
lastProbeTime
string
Last time we probed the condition.
format:
date-time
lastTransitionTime
string
Last time the condition transitioned from one status to another.
format:
date-time
message
string required
Human-readable message indicating details about last transition.
reason
string required
Reason is a brief CamelCase string that describes any failure
type
string required
Current Condition of cstor volume config. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted' etc
phase
string
Phase represents the current phase of CStorVolumeConfig.
poolInfo
[]string
PoolInfo represents current pool names where volume replicas exists
versionDetails object required
VersionDetails provides the details for upgrade
autoUpgrade
boolean
If AutoUpgrade is set to true then the resource is upgraded automatically without any manual steps
desired
string
Desired is the version that we want to upgrade or the control plane version
status object
Status gives the status of reconciliation triggered when the desired and current version are not same
current
string
Current is the version of resource
dependentsUpgraded
boolean
DependentsUpgraded gives the details whether all children of a resource are upgraded to desired version or not
lastUpdateTime
string
LastUpdateTime is the time the status was last updated
format:
date-time
message
string
Message is a human readable message if some error occurs
reason
string
Reason is the actual reason for the error state
state
string
State is the state of reconciliation
No matches. Try .spec.capacity for an exact path