github.com/openebs/api@v1.12.0/config/crds/bases/cstor.openebs.io_cstorvolumeconfigs.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: cstorvolumeconfigs.cstor.openebs.io 10 spec: 11 group: cstor.openebs.io 12 names: 13 kind: CStorVolumeConfig 14 listKind: CStorVolumeConfigList 15 plural: cstorvolumeconfigs 16 singular: cstorvolumeconfig 17 scope: Namespaced 18 validation: 19 openAPIV3Schema: 20 description: CStorVolumeConfig describes a cstor volume config resource created 21 as custom resource. CStorVolumeConfig is a request for creating cstor volume 22 related resources like deployment, svc etc. 23 properties: 24 apiVersion: 25 description: 'APIVersion defines the versioned schema of this representation 26 of an object. Servers should convert recognized schemas to the latest 27 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 28 type: string 29 kind: 30 description: 'Kind is a string value representing the REST resource this 31 object represents. Servers may infer this from the endpoint the client 32 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 33 type: string 34 metadata: 35 type: object 36 publish: 37 description: Publish contains info related to attachment of a volume to 38 a node. i.e. NodeId etc. 39 properties: 40 nodeId: 41 description: NodeID contains publish info related to attachment of a 42 volume to a node. 43 type: string 44 type: object 45 spec: 46 description: Spec defines a specification of a cstor volume config required 47 to provisione cstor volume resources 48 properties: 49 capacity: 50 additionalProperties: 51 anyOf: 52 - type: integer 53 - type: string 54 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 55 x-kubernetes-int-or-string: true 56 description: Capacity represents the actual resources of the underlying 57 cstor volume. 58 type: object 59 cstorVolumeRef: 60 description: CStorVolumeRef has the information about where CstorVolumeClaim 61 is created from. 62 properties: 63 apiVersion: 64 description: API version of the referent. 65 type: string 66 fieldPath: 67 description: 'If referring to a piece of an object instead of an 68 entire object, this string should contain a valid JSON/Go field 69 access statement, such as desiredState.manifest.containers[2]. 70 For example, if the object reference is to a container within 71 a pod, this would take on a value like: "spec.containers{name}" 72 (where "name" refers to the name of the container that triggered 73 the event) or if no container name is specified "spec.containers[2]" 74 (container with index 2 in this pod). This syntax is chosen only 75 to have some well-defined way of referencing a part of an object. 76 TODO: this design is not final and this field is subject to change 77 in the future.' 78 type: string 79 kind: 80 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 81 type: string 82 name: 83 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 84 type: string 85 namespace: 86 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 87 type: string 88 resourceVersion: 89 description: 'Specific resourceVersion to which this reference is 90 made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 91 type: string 92 uid: 93 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 94 type: string 95 type: object 96 cstorVolumeSource: 97 description: CStorVolumeSource contains the source volumeName@snapShotname 98 combaination. This will be filled only if it is a clone creation. 99 type: string 100 policy: 101 description: Policy contains volume specific required policies target 102 and replicas 103 properties: 104 provision: 105 description: replicaAffinity is set to true then volume replica 106 resources need to be distributed across the pool instances 107 properties: 108 blockSize: 109 description: BlockSize is the logical block size in multiple 110 of 512 bytes BlockSize specifies the block size of the volume. 111 The blocksize cannot be changed once the volume has been written, 112 so it should be set at volume creation time. The default blocksize 113 for volumes is 4 Kbytes. Any power of 2 from 512 bytes to 114 128 Kbytes is valid. 115 format: int32 116 type: integer 117 replicaAffinity: 118 description: replicaAffinity is set to true then volume replica 119 resources need to be distributed across the cstor pool instances 120 based on the given topology 121 type: boolean 122 required: 123 - blockSize 124 - replicaAffinity 125 type: object 126 replica: 127 description: ReplicaSpec represents configuration related to replicas 128 resources 129 properties: 130 compression: 131 description: The zle compression algorithm compresses runs of 132 zeros. 133 type: string 134 zvolWorkers: 135 description: IOWorkers represents number of threads that executes 136 client IOs 137 type: string 138 type: object 139 replicaPoolInfo: 140 description: 'ReplicaPoolInfo holds the pool information of volume 141 replicas. Ex: If volume is provisioned on which CStor pool volume 142 replicas exist' 143 items: 144 description: ReplicaPoolInfo represents the pool information of 145 volume replica 146 properties: 147 poolName: 148 description: PoolName represents the pool name where volume 149 replica exists 150 type: string 151 required: 152 - poolName 153 type: object 154 type: array 155 target: 156 description: TargetSpec represents configuration related to cstor 157 target and its resources 158 properties: 159 affinity: 160 description: PodAffinity if specified, are the target pod's 161 affinities 162 properties: 163 preferredDuringSchedulingIgnoredDuringExecution: 164 description: The scheduler will prefer to schedule pods 165 to nodes that satisfy the affinity expressions specified 166 by this field, but it may choose a node that violates 167 one or more of the expressions. The node that is most 168 preferred is the one with the greatest sum of weights, 169 i.e. for each node that meets all of the scheduling requirements 170 (resource request, requiredDuringScheduling affinity expressions, 171 etc.), compute a sum by iterating through the elements 172 of this field and adding "weight" to the sum if the node 173 has pods which matches the corresponding podAffinityTerm; 174 the node(s) with the highest sum are the most preferred. 175 items: 176 description: The weights of all of the matched WeightedPodAffinityTerm 177 fields are added per-node to find the most preferred 178 node(s) 179 properties: 180 podAffinityTerm: 181 description: Required. A pod affinity term, associated 182 with the corresponding weight. 183 properties: 184 labelSelector: 185 description: A label query over a set of resources, 186 in this case pods. 187 properties: 188 matchExpressions: 189 description: matchExpressions is a list of 190 label selector requirements. The requirements 191 are ANDed. 192 items: 193 description: A label selector requirement 194 is a selector that contains values, a 195 key, and an operator that relates the 196 key and values. 197 properties: 198 key: 199 description: key is the label key that 200 the selector applies to. 201 type: string 202 operator: 203 description: operator represents a key's 204 relationship to a set of values. Valid 205 operators are In, NotIn, Exists and 206 DoesNotExist. 207 type: string 208 values: 209 description: values is an array of string 210 values. If the operator is In or NotIn, 211 the values array must be non-empty. 212 If the operator is Exists or DoesNotExist, 213 the values array must be empty. This 214 array is replaced during a strategic 215 merge patch. 216 items: 217 type: string 218 type: array 219 required: 220 - key 221 - operator 222 type: object 223 type: array 224 matchLabels: 225 additionalProperties: 226 type: string 227 description: matchLabels is a map of {key,value} 228 pairs. A single {key,value} in the matchLabels 229 map is equivalent to an element of matchExpressions, 230 whose key field is "key", the operator is 231 "In", and the values array contains only 232 "value". The requirements are ANDed. 233 type: object 234 type: object 235 namespaces: 236 description: namespaces specifies which namespaces 237 the labelSelector applies to (matches against); 238 null or empty list means "this pod's namespace" 239 items: 240 type: string 241 type: array 242 topologyKey: 243 description: This pod should be co-located (affinity) 244 or not co-located (anti-affinity) with the pods 245 matching the labelSelector in the specified 246 namespaces, where co-located is defined as running 247 on a node whose value of the label with key 248 topologyKey matches that of any node on which 249 any of the selected pods is running. Empty topologyKey 250 is not allowed. 251 type: string 252 required: 253 - topologyKey 254 type: object 255 weight: 256 description: weight associated with matching the corresponding 257 podAffinityTerm, in the range 1-100. 258 format: int32 259 type: integer 260 required: 261 - podAffinityTerm 262 - weight 263 type: object 264 type: array 265 requiredDuringSchedulingIgnoredDuringExecution: 266 description: If the affinity requirements specified by this 267 field are not met at scheduling time, the pod will not 268 be scheduled onto the node. If the affinity requirements 269 specified by this field cease to be met at some point 270 during pod execution (e.g. due to a pod label update), 271 the system may or may not try to eventually evict the 272 pod from its node. When there are multiple elements, the 273 lists of nodes corresponding to each podAffinityTerm are 274 intersected, i.e. all terms must be satisfied. 275 items: 276 description: Defines a set of pods (namely those matching 277 the labelSelector relative to the given namespace(s)) 278 that this pod should be co-located (affinity) or not 279 co-located (anti-affinity) with, where co-located is 280 defined as running on a node whose value of the label 281 with key <topologyKey> matches that of any node on which 282 a pod of the set of pods is running 283 properties: 284 labelSelector: 285 description: A label query over a set of resources, 286 in this case pods. 287 properties: 288 matchExpressions: 289 description: matchExpressions is a list of label 290 selector requirements. The requirements are 291 ANDed. 292 items: 293 description: A label selector requirement is 294 a selector that contains values, a key, and 295 an operator that relates the key and values. 296 properties: 297 key: 298 description: key is the label key that the 299 selector applies to. 300 type: string 301 operator: 302 description: operator represents a key's 303 relationship to a set of values. Valid 304 operators are In, NotIn, Exists and DoesNotExist. 305 type: string 306 values: 307 description: values is an array of string 308 values. If the operator is In or NotIn, 309 the values array must be non-empty. If 310 the operator is Exists or DoesNotExist, 311 the values array must be empty. This array 312 is replaced during a strategic merge patch. 313 items: 314 type: string 315 type: array 316 required: 317 - key 318 - operator 319 type: object 320 type: array 321 matchLabels: 322 additionalProperties: 323 type: string 324 description: matchLabels is a map of {key,value} 325 pairs. A single {key,value} in the matchLabels 326 map is equivalent to an element of matchExpressions, 327 whose key field is "key", the operator is "In", 328 and the values array contains only "value". 329 The requirements are ANDed. 330 type: object 331 type: object 332 namespaces: 333 description: namespaces specifies which namespaces 334 the labelSelector applies to (matches against); 335 null or empty list means "this pod's namespace" 336 items: 337 type: string 338 type: array 339 topologyKey: 340 description: This pod should be co-located (affinity) 341 or not co-located (anti-affinity) with the pods 342 matching the labelSelector in the specified namespaces, 343 where co-located is defined as running on a node 344 whose value of the label with key topologyKey matches 345 that of any node on which any of the selected pods 346 is running. Empty topologyKey is not allowed. 347 type: string 348 required: 349 - topologyKey 350 type: object 351 type: array 352 type: object 353 auxResources: 354 description: AuxResources are the compute resources required 355 by the cstor-target pod side car containers. 356 properties: 357 limits: 358 additionalProperties: 359 anyOf: 360 - type: integer 361 - type: string 362 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 363 x-kubernetes-int-or-string: true 364 description: 'Limits describes the maximum amount of compute 365 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 366 type: object 367 requests: 368 additionalProperties: 369 anyOf: 370 - type: integer 371 - type: string 372 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 373 x-kubernetes-int-or-string: true 374 description: 'Requests describes the minimum amount of compute 375 resources required. If Requests is omitted for a container, 376 it defaults to Limits if that is explicitly specified, 377 otherwise to an implementation-defined value. More info: 378 https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 379 type: object 380 type: object 381 luWorkers: 382 description: IOWorkers sets the number of threads that are working 383 on above queue 384 format: int64 385 type: integer 386 monitor: 387 description: Monitor enables or disables the target exporter 388 sidecar 389 type: boolean 390 nodeSelector: 391 additionalProperties: 392 type: string 393 description: NodeSelector is the labels that will be used to 394 select a node for target pod scheduleing Required field 395 type: object 396 priorityClassName: 397 description: PriorityClassName if specified applies to this 398 target pod If left empty, no priority class is applied. 399 type: string 400 queueDepth: 401 description: QueueDepth sets the queue size at iSCSI target 402 which limits the ongoing IO count from client 403 type: string 404 replicationFactor: 405 description: ReplicationFactor represents maximum number of 406 replicas that are allowed to connect to the target 407 format: int64 408 type: integer 409 resources: 410 description: Resources are the compute resources required by 411 the cstor-target container. 412 properties: 413 limits: 414 additionalProperties: 415 anyOf: 416 - type: integer 417 - type: string 418 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 419 x-kubernetes-int-or-string: true 420 description: 'Limits describes the maximum amount of compute 421 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 422 type: object 423 requests: 424 additionalProperties: 425 anyOf: 426 - type: integer 427 - type: string 428 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 429 x-kubernetes-int-or-string: true 430 description: 'Requests describes the minimum amount of compute 431 resources required. If Requests is omitted for a container, 432 it defaults to Limits if that is explicitly specified, 433 otherwise to an implementation-defined value. More info: 434 https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 435 type: object 436 type: object 437 tolerations: 438 description: Tolerations, if specified, are the target pod's 439 tolerations 440 items: 441 description: The pod this Toleration is attached to tolerates 442 any taint that matches the triple <key,value,effect> using 443 the matching operator <operator>. 444 properties: 445 effect: 446 description: Effect indicates the taint effect to match. 447 Empty means match all taint effects. When specified, 448 allowed values are NoSchedule, PreferNoSchedule and 449 NoExecute. 450 type: string 451 key: 452 description: Key is the taint key that the toleration 453 applies to. Empty means match all taint keys. If the 454 key is empty, operator must be Exists; this combination 455 means to match all values and all keys. 456 type: string 457 operator: 458 description: Operator represents a key's relationship 459 to the value. Valid operators are Exists and Equal. 460 Defaults to Equal. Exists is equivalent to wildcard 461 for value, so that a pod can tolerate all taints of 462 a particular category. 463 type: string 464 tolerationSeconds: 465 description: TolerationSeconds represents the period of 466 time the toleration (which must be of effect NoExecute, 467 otherwise this field is ignored) tolerates the taint. 468 By default, it is not set, which means tolerate the 469 taint forever (do not evict). Zero and negative values 470 will be treated as 0 (evict immediately) by the system. 471 format: int64 472 type: integer 473 value: 474 description: Value is the taint value the toleration matches 475 to. If the operator is Exists, the value should be empty, 476 otherwise just a regular string. 477 type: string 478 type: object 479 type: array 480 type: object 481 required: 482 - provision 483 - replica 484 - replicaPoolInfo 485 - target 486 type: object 487 provision: 488 description: Provision represents the initial volume configuration for 489 the underlying cstor volume based on the persistent volume request 490 by user. Provision properties are immutable 491 properties: 492 capacity: 493 additionalProperties: 494 anyOf: 495 - type: integer 496 - type: string 497 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 498 x-kubernetes-int-or-string: true 499 description: Capacity represents initial capacity of volume replica 500 required during volume clone operations to maintain some metadata 501 info related to child resources like snapshot, cloned volumes. 502 type: object 503 replicaCount: 504 description: ReplicaCount represents initial cstor volume replica 505 count, its will not be updated later on based on scale up/down 506 operations, only readonly operations and validations. 507 type: integer 508 required: 509 - capacity 510 - replicaCount 511 type: object 512 required: 513 - capacity 514 - policy 515 - provision 516 type: object 517 status: 518 description: Status represents the current information/status for the cstor 519 volume config, populated by the controller. 520 properties: 521 capacity: 522 additionalProperties: 523 anyOf: 524 - type: integer 525 - type: string 526 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 527 x-kubernetes-int-or-string: true 528 description: Capacity the actual resources of the underlying volume. 529 type: object 530 condition: 531 items: 532 description: CStorVolumeConfigCondition contains details about state 533 of cstor volume 534 properties: 535 lastProbeTime: 536 description: Last time we probed the condition. 537 format: date-time 538 type: string 539 lastTransitionTime: 540 description: Last time the condition transitioned from one status 541 to another. 542 format: date-time 543 type: string 544 message: 545 description: Human-readable message indicating details about last 546 transition. 547 type: string 548 reason: 549 description: Reason is a brief CamelCase string that describes 550 any failure 551 type: string 552 type: 553 description: Current Condition of cstor volume config. If underlying 554 persistent volume is being resized then the Condition will be 555 set to 'ResizeStarted' etc 556 type: string 557 required: 558 - message 559 - reason 560 - type 561 type: object 562 type: array 563 phase: 564 description: Phase represents the current phase of CStorVolumeConfig. 565 type: string 566 poolInfo: 567 description: PoolInfo represents current pool names where volume replicas 568 exists 569 items: 570 type: string 571 type: array 572 required: 573 - phase 574 - poolInfo 575 type: object 576 versionDetails: 577 description: VersionDetails provides the details for upgrade 578 properties: 579 autoUpgrade: 580 description: If AutoUpgrade is set to true then the resource is upgraded 581 automatically without any manual steps 582 type: boolean 583 desired: 584 description: Desired is the version that we want to upgrade or the control 585 plane version 586 type: string 587 status: 588 description: Status gives the status of reconciliation triggered when 589 the desired and current version are not same 590 properties: 591 current: 592 description: Current is the version of resource 593 type: string 594 dependentsUpgraded: 595 description: DependentsUpgraded gives the details whether all children 596 of a resource are upgraded to desired version or not 597 type: boolean 598 lastUpdateTime: 599 description: LastUpdateTime is the time the status was last updated 600 format: date-time 601 type: string 602 message: 603 description: Message is a human readable message if some error occurs 604 type: string 605 reason: 606 description: Reason is the actual reason for the error state 607 type: string 608 state: 609 description: State is the state of reconciliation 610 type: string 611 required: 612 - current 613 - dependentsUpgraded 614 - state 615 type: object 616 required: 617 - autoUpgrade 618 - desired 619 - status 620 type: object 621 required: 622 - spec 623 - status 624 - versionDetails 625 type: object 626 version: v1 627 versions: 628 - name: v1 629 served: true 630 storage: true 631 status: 632 acceptedNames: 633 kind: "" 634 plural: "" 635 conditions: [] 636 storedVersions: []