github.com/openebs/api@v1.12.0/config/crds/bases/cstor.openebs.io_cstorvolumepolicies.yaml (about) 1 2 --- 3 apiVersion: apiextensions.k8s.io/v1beta1 4 kind: CustomResourceDefinition 5 metadata: 6 annotations: 7 controller-gen.kubebuilder.io/version: v0.2.9 8 creationTimestamp: null 9 name: cstorvolumepolicies.cstor.openebs.io 10 spec: 11 group: cstor.openebs.io 12 names: 13 kind: CStorVolumePolicy 14 listKind: CStorVolumePolicyList 15 plural: cstorvolumepolicies 16 singular: cstorvolumepolicy 17 scope: Namespaced 18 validation: 19 openAPIV3Schema: 20 description: CStorVolumePolicy describes a configuration required for cstor 21 volume resources 22 properties: 23 apiVersion: 24 description: 'APIVersion defines the versioned schema of this representation 25 of an object. Servers should convert recognized schemas to the latest 26 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 27 type: string 28 kind: 29 description: 'Kind is a string value representing the REST resource this 30 object represents. Servers may infer this from the endpoint the client 31 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 32 type: string 33 metadata: 34 type: object 35 spec: 36 description: Spec defines a configuration info of a cstor volume required 37 to provisione cstor volume resources 38 properties: 39 provision: 40 description: replicaAffinity is set to true then volume replica resources 41 need to be distributed across the pool instances 42 properties: 43 blockSize: 44 description: BlockSize is the logical block size in multiple of 45 512 bytes BlockSize specifies the block size of the volume. The 46 blocksize cannot be changed once the volume has been written, 47 so it should be set at volume creation time. The default blocksize 48 for volumes is 4 Kbytes. Any power of 2 from 512 bytes to 128 49 Kbytes is valid. 50 format: int32 51 type: integer 52 replicaAffinity: 53 description: replicaAffinity is set to true then volume replica 54 resources need to be distributed across the cstor pool instances 55 based on the given topology 56 type: boolean 57 required: 58 - blockSize 59 - replicaAffinity 60 type: object 61 replica: 62 description: ReplicaSpec represents configuration related to replicas 63 resources 64 properties: 65 compression: 66 description: The zle compression algorithm compresses runs of zeros. 67 type: string 68 zvolWorkers: 69 description: IOWorkers represents number of threads that executes 70 client IOs 71 type: string 72 type: object 73 replicaPoolInfo: 74 description: 'ReplicaPoolInfo holds the pool information of volume replicas. 75 Ex: If volume is provisioned on which CStor pool volume replicas exist' 76 items: 77 description: ReplicaPoolInfo represents the pool information of volume 78 replica 79 properties: 80 poolName: 81 description: PoolName represents the pool name where volume replica 82 exists 83 type: string 84 required: 85 - poolName 86 type: object 87 type: array 88 target: 89 description: TargetSpec represents configuration related to cstor target 90 and its resources 91 properties: 92 affinity: 93 description: PodAffinity if specified, are the target pod's affinities 94 properties: 95 preferredDuringSchedulingIgnoredDuringExecution: 96 description: The scheduler will prefer to schedule pods to nodes 97 that satisfy the affinity expressions specified by this field, 98 but it may choose a node that violates one or more of the 99 expressions. The node that is most preferred is the one with 100 the greatest sum of weights, i.e. for each node that meets 101 all of the scheduling requirements (resource request, requiredDuringScheduling 102 affinity expressions, etc.), compute a sum by iterating through 103 the elements of this field and adding "weight" to the sum 104 if the node has pods which matches the corresponding podAffinityTerm; 105 the node(s) with the highest sum are the most preferred. 106 items: 107 description: The weights of all of the matched WeightedPodAffinityTerm 108 fields are added per-node to find the most preferred node(s) 109 properties: 110 podAffinityTerm: 111 description: Required. A pod affinity term, associated 112 with the corresponding weight. 113 properties: 114 labelSelector: 115 description: A label query over a set of resources, 116 in this case pods. 117 properties: 118 matchExpressions: 119 description: matchExpressions is a list of label 120 selector requirements. The requirements are 121 ANDed. 122 items: 123 description: A label selector requirement is 124 a selector that contains values, a key, and 125 an operator that relates the key and values. 126 properties: 127 key: 128 description: key is the label key that the 129 selector applies to. 130 type: string 131 operator: 132 description: operator represents a key's 133 relationship to a set of values. Valid 134 operators are In, NotIn, Exists and DoesNotExist. 135 type: string 136 values: 137 description: values is an array of string 138 values. If the operator is In or NotIn, 139 the values array must be non-empty. If 140 the operator is Exists or DoesNotExist, 141 the values array must be empty. This array 142 is replaced during a strategic merge patch. 143 items: 144 type: string 145 type: array 146 required: 147 - key 148 - operator 149 type: object 150 type: array 151 matchLabels: 152 additionalProperties: 153 type: string 154 description: matchLabels is a map of {key,value} 155 pairs. A single {key,value} in the matchLabels 156 map is equivalent to an element of matchExpressions, 157 whose key field is "key", the operator is "In", 158 and the values array contains only "value". 159 The requirements are ANDed. 160 type: object 161 type: object 162 namespaces: 163 description: namespaces specifies which namespaces 164 the labelSelector applies to (matches against); 165 null or empty list means "this pod's namespace" 166 items: 167 type: string 168 type: array 169 topologyKey: 170 description: This pod should be co-located (affinity) 171 or not co-located (anti-affinity) with the pods 172 matching the labelSelector in the specified namespaces, 173 where co-located is defined as running on a node 174 whose value of the label with key topologyKey matches 175 that of any node on which any of the selected pods 176 is running. Empty topologyKey is not allowed. 177 type: string 178 required: 179 - topologyKey 180 type: object 181 weight: 182 description: weight associated with matching the corresponding 183 podAffinityTerm, in the range 1-100. 184 format: int32 185 type: integer 186 required: 187 - podAffinityTerm 188 - weight 189 type: object 190 type: array 191 requiredDuringSchedulingIgnoredDuringExecution: 192 description: If the affinity requirements specified by this 193 field are not met at scheduling time, the pod will not be 194 scheduled onto the node. If the affinity requirements specified 195 by this field cease to be met at some point during pod execution 196 (e.g. due to a pod label update), the system may or may not 197 try to eventually evict the pod from its node. When there 198 are multiple elements, the lists of nodes corresponding to 199 each podAffinityTerm are intersected, i.e. all terms must 200 be satisfied. 201 items: 202 description: Defines a set of pods (namely those matching 203 the labelSelector relative to the given namespace(s)) that 204 this pod should be co-located (affinity) or not co-located 205 (anti-affinity) with, where co-located is defined as running 206 on a node whose value of the label with key <topologyKey> 207 matches that of any node on which a pod of the set of pods 208 is running 209 properties: 210 labelSelector: 211 description: A label query over a set of resources, in 212 this case pods. 213 properties: 214 matchExpressions: 215 description: matchExpressions is a list of label selector 216 requirements. The requirements are ANDed. 217 items: 218 description: A label selector requirement is a selector 219 that contains values, a key, and an operator that 220 relates the key and values. 221 properties: 222 key: 223 description: key is the label key that the selector 224 applies to. 225 type: string 226 operator: 227 description: operator represents a key's relationship 228 to a set of values. Valid operators are In, 229 NotIn, Exists and DoesNotExist. 230 type: string 231 values: 232 description: values is an array of string values. 233 If the operator is In or NotIn, the values 234 array must be non-empty. If the operator is 235 Exists or DoesNotExist, the values array must 236 be empty. This array is replaced during a 237 strategic merge patch. 238 items: 239 type: string 240 type: array 241 required: 242 - key 243 - operator 244 type: object 245 type: array 246 matchLabels: 247 additionalProperties: 248 type: string 249 description: matchLabels is a map of {key,value} pairs. 250 A single {key,value} in the matchLabels map is equivalent 251 to an element of matchExpressions, whose key field 252 is "key", the operator is "In", and the values array 253 contains only "value". The requirements are ANDed. 254 type: object 255 type: object 256 namespaces: 257 description: namespaces specifies which namespaces the 258 labelSelector applies to (matches against); null or 259 empty list means "this pod's namespace" 260 items: 261 type: string 262 type: array 263 topologyKey: 264 description: This pod should be co-located (affinity) 265 or not co-located (anti-affinity) with the pods matching 266 the labelSelector in the specified namespaces, where 267 co-located is defined as running on a node whose value 268 of the label with key topologyKey matches that of any 269 node on which any of the selected pods is running. Empty 270 topologyKey is not allowed. 271 type: string 272 required: 273 - topologyKey 274 type: object 275 type: array 276 type: object 277 auxResources: 278 description: AuxResources are the compute resources required by 279 the cstor-target pod side car containers. 280 properties: 281 limits: 282 additionalProperties: 283 anyOf: 284 - type: integer 285 - type: string 286 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 287 x-kubernetes-int-or-string: true 288 description: 'Limits describes the maximum amount of compute 289 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 290 type: object 291 requests: 292 additionalProperties: 293 anyOf: 294 - type: integer 295 - type: string 296 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 297 x-kubernetes-int-or-string: true 298 description: 'Requests describes the minimum amount of compute 299 resources required. If Requests is omitted for a container, 300 it defaults to Limits if that is explicitly specified, otherwise 301 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 302 type: object 303 type: object 304 luWorkers: 305 description: IOWorkers sets the number of threads that are working 306 on above queue 307 format: int64 308 type: integer 309 monitor: 310 description: Monitor enables or disables the target exporter sidecar 311 type: boolean 312 nodeSelector: 313 additionalProperties: 314 type: string 315 description: NodeSelector is the labels that will be used to select 316 a node for target pod scheduleing Required field 317 type: object 318 priorityClassName: 319 description: PriorityClassName if specified applies to this target 320 pod If left empty, no priority class is applied. 321 type: string 322 queueDepth: 323 description: QueueDepth sets the queue size at iSCSI target which 324 limits the ongoing IO count from client 325 type: string 326 replicationFactor: 327 description: ReplicationFactor represents maximum number of replicas 328 that are allowed to connect to the target 329 format: int64 330 type: integer 331 resources: 332 description: Resources are the compute resources required by the 333 cstor-target container. 334 properties: 335 limits: 336 additionalProperties: 337 anyOf: 338 - type: integer 339 - type: string 340 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 341 x-kubernetes-int-or-string: true 342 description: 'Limits describes the maximum amount of compute 343 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 344 type: object 345 requests: 346 additionalProperties: 347 anyOf: 348 - type: integer 349 - type: string 350 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 351 x-kubernetes-int-or-string: true 352 description: 'Requests describes the minimum amount of compute 353 resources required. If Requests is omitted for a container, 354 it defaults to Limits if that is explicitly specified, otherwise 355 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 356 type: object 357 type: object 358 tolerations: 359 description: Tolerations, if specified, are the target pod's tolerations 360 items: 361 description: The pod this Toleration is attached to tolerates 362 any taint that matches the triple <key,value,effect> using the 363 matching operator <operator>. 364 properties: 365 effect: 366 description: Effect indicates the taint effect to match. Empty 367 means match all taint effects. When specified, allowed values 368 are NoSchedule, PreferNoSchedule and NoExecute. 369 type: string 370 key: 371 description: Key is the taint key that the toleration applies 372 to. Empty means match all taint keys. If the key is empty, 373 operator must be Exists; this combination means to match 374 all values and all keys. 375 type: string 376 operator: 377 description: Operator represents a key's relationship to the 378 value. Valid operators are Exists and Equal. Defaults to 379 Equal. Exists is equivalent to wildcard for value, so that 380 a pod can tolerate all taints of a particular category. 381 type: string 382 tolerationSeconds: 383 description: TolerationSeconds represents the period of time 384 the toleration (which must be of effect NoExecute, otherwise 385 this field is ignored) tolerates the taint. By default, 386 it is not set, which means tolerate the taint forever (do 387 not evict). Zero and negative values will be treated as 388 0 (evict immediately) by the system. 389 format: int64 390 type: integer 391 value: 392 description: Value is the taint value the toleration matches 393 to. If the operator is Exists, the value should be empty, 394 otherwise just a regular string. 395 type: string 396 type: object 397 type: array 398 type: object 399 required: 400 - provision 401 - replica 402 - replicaPoolInfo 403 - target 404 type: object 405 status: 406 description: CStorVolumePolicyStatus is for handling status of CstorVolumePolicy 407 properties: 408 phase: 409 type: string 410 required: 411 - phase 412 type: object 413 required: 414 - spec 415 - status 416 type: object 417 version: v1 418 versions: 419 - name: v1 420 served: true 421 storage: true 422 status: 423 acceptedNames: 424 kind: "" 425 plural: "" 426 conditions: [] 427 storedVersions: []