github.com/openebs/api@v1.12.0/config/crds/all-crds.yaml (about) 1 --- 2 apiVersion: apiextensions.k8s.io/v1beta1 3 kind: CustomResourceDefinition 4 metadata: 5 annotations: 6 controller-gen.kubebuilder.io/version: v0.2.9 7 creationTimestamp: null 8 name: cstorpoolclusters.cstor.openebs.io 9 spec: 10 group: cstor.openebs.io 11 names: 12 kind: CStorPoolCluster 13 listKind: CStorPoolClusterList 14 plural: cstorpoolclusters 15 singular: cstorpoolcluster 16 scope: Namespaced 17 validation: 18 openAPIV3Schema: 19 description: CStorPoolCluster describes a CStorPoolCluster custom resource. 20 properties: 21 apiVersion: 22 description: 'APIVersion defines the versioned schema of this representation 23 of an object. Servers should convert recognized schemas to the latest 24 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 25 type: string 26 kind: 27 description: 'Kind is a string value representing the REST resource this 28 object represents. Servers may infer this from the endpoint the client 29 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 30 type: string 31 metadata: 32 type: object 33 spec: 34 description: CStorPoolClusterSpec is the spec for a CStorPoolClusterSpec 35 resource 36 properties: 37 auxResources: 38 description: AuxResources are the compute resources required by the 39 cstor-pool pod side car containers. 40 properties: 41 limits: 42 additionalProperties: 43 anyOf: 44 - type: integer 45 - type: string 46 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 47 x-kubernetes-int-or-string: true 48 description: 'Limits describes the maximum amount of compute resources 49 allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 50 type: object 51 requests: 52 additionalProperties: 53 anyOf: 54 - type: integer 55 - type: string 56 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 57 x-kubernetes-int-or-string: true 58 description: 'Requests describes the minimum amount of compute resources 59 required. If Requests is omitted for a container, it defaults 60 to Limits if that is explicitly specified, otherwise to an implementation-defined 61 value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 62 type: object 63 type: object 64 pools: 65 description: Pools is the spec for pools for various nodes where it 66 should be created. 67 items: 68 description: PoolSpec is the spec for pool on node where it should 69 be created. 70 properties: 71 dataRaidGroups: 72 description: DataRaidGroups is the raid group configuration for 73 the given pool. 74 items: 75 description: RaidGroup contains the details of a raid group 76 for the pool 77 properties: 78 blockDevices: 79 items: 80 description: CStorPoolInstanceBlockDevice contains the 81 details of block devices that constitutes a raid group. 82 properties: 83 blockDeviceName: 84 description: BlockDeviceName is the name of the block 85 device. 86 type: string 87 capacity: 88 description: Capacity is the capacity of the block 89 device. It is system generated 90 format: int64 91 type: integer 92 devLink: 93 description: DevLink is the dev link for block devices 94 type: string 95 required: 96 - blockDeviceName 97 - capacity 98 - devLink 99 type: object 100 type: array 101 required: 102 - blockDevices 103 type: object 104 type: array 105 nodeSelector: 106 additionalProperties: 107 type: string 108 description: NodeSelector is the labels that will be used to select 109 a node for pool provisioning. Required field 110 type: object 111 poolConfig: 112 description: PoolConfig is the default pool config that applies 113 to the pool on node. 114 properties: 115 auxResources: 116 description: AuxResources are the compute resources required 117 by the cstor-pool pod side car containers. 118 properties: 119 limits: 120 additionalProperties: 121 anyOf: 122 - type: integer 123 - type: string 124 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 125 x-kubernetes-int-or-string: true 126 description: 'Limits describes the maximum amount of compute 127 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 128 type: object 129 requests: 130 additionalProperties: 131 anyOf: 132 - type: integer 133 - type: string 134 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 135 x-kubernetes-int-or-string: true 136 description: 'Requests describes the minimum amount of 137 compute resources required. If Requests is omitted for 138 a container, it defaults to Limits if that is explicitly 139 specified, otherwise to an implementation-defined value. 140 More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 141 type: object 142 type: object 143 compression: 144 description: 'Compression to enable compression Optional -- 145 defaults to off Possible values : lz, off' 146 type: string 147 dataRaidGroupType: 148 description: DataRaidGroupType is the raid type. 149 type: string 150 priorityClassName: 151 description: PriorityClassName if specified applies to this 152 pool pod If left empty, DefaultPriorityClassName is applied. 153 (See CStorPoolClusterSpec.DefaultPriorityClassName) If both 154 are empty, not priority class is applied. 155 type: string 156 resources: 157 description: Resources are the compute resources required 158 by the cstor-pool container. 159 properties: 160 limits: 161 additionalProperties: 162 anyOf: 163 - type: integer 164 - type: string 165 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 166 x-kubernetes-int-or-string: true 167 description: 'Limits describes the maximum amount of compute 168 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 169 type: object 170 requests: 171 additionalProperties: 172 anyOf: 173 - type: integer 174 - type: string 175 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 176 x-kubernetes-int-or-string: true 177 description: 'Requests describes the minimum amount of 178 compute resources required. If Requests is omitted for 179 a container, it defaults to Limits if that is explicitly 180 specified, otherwise to an implementation-defined value. 181 More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 182 type: object 183 type: object 184 roThresholdLimit: 185 description: 'ROThresholdLimit is threshold(percentage base) 186 limit for pool read only mode. If ROThresholdLimit(%) amount 187 of pool storage is reached then pool will set to readonly. 188 NOTE: 1. If ROThresholdLimit is set to 100 then entire pool 189 storage will be used by default it will be set to 85%. 2. 190 ROThresholdLimit value will be 0 <= ROThresholdLimit <= 191 100.' 192 type: integer 193 thickProvision: 194 description: ThickProvision to enable thick provisioning Optional 195 -- defaults to false 196 type: boolean 197 tolerations: 198 description: Tolerations, if specified, the pool pod's tolerations. 199 items: 200 description: The pod this Toleration is attached to tolerates 201 any taint that matches the triple <key,value,effect> using 202 the matching operator <operator>. 203 properties: 204 effect: 205 description: Effect indicates the taint effect to match. 206 Empty means match all taint effects. When specified, 207 allowed values are NoSchedule, PreferNoSchedule and 208 NoExecute. 209 type: string 210 key: 211 description: Key is the taint key that the toleration 212 applies to. Empty means match all taint keys. If the 213 key is empty, operator must be Exists; this combination 214 means to match all values and all keys. 215 type: string 216 operator: 217 description: Operator represents a key's relationship 218 to the value. Valid operators are Exists and Equal. 219 Defaults to Equal. Exists is equivalent to wildcard 220 for value, so that a pod can tolerate all taints of 221 a particular category. 222 type: string 223 tolerationSeconds: 224 description: TolerationSeconds represents the period 225 of time the toleration (which must be of effect NoExecute, 226 otherwise this field is ignored) tolerates the taint. 227 By default, it is not set, which means tolerate the 228 taint forever (do not evict). Zero and negative values 229 will be treated as 0 (evict immediately) by the system. 230 format: int64 231 type: integer 232 value: 233 description: Value is the taint value the toleration 234 matches to. If the operator is Exists, the value should 235 be empty, otherwise just a regular string. 236 type: string 237 type: object 238 type: array 239 writeCacheGroupType: 240 description: WriteCacheGroupType is the write cache raid type. 241 type: string 242 required: 243 - auxResources 244 - compression 245 - dataRaidGroupType 246 - priorityClassName 247 - resources 248 - roThresholdLimit 249 - thickProvision 250 - tolerations 251 - writeCacheGroupType 252 type: object 253 writeCacheRaidGroups: 254 description: WriteCacheRaidGroups is the write cache raid group. 255 items: 256 description: RaidGroup contains the details of a raid group 257 for the pool 258 properties: 259 blockDevices: 260 items: 261 description: CStorPoolInstanceBlockDevice contains the 262 details of block devices that constitutes a raid group. 263 properties: 264 blockDeviceName: 265 description: BlockDeviceName is the name of the block 266 device. 267 type: string 268 capacity: 269 description: Capacity is the capacity of the block 270 device. It is system generated 271 format: int64 272 type: integer 273 devLink: 274 description: DevLink is the dev link for block devices 275 type: string 276 required: 277 - blockDeviceName 278 - capacity 279 - devLink 280 type: object 281 type: array 282 required: 283 - blockDevices 284 type: object 285 type: array 286 required: 287 - dataRaidGroups 288 - nodeSelector 289 - poolConfig 290 - writeCacheRaidGroups 291 type: object 292 type: array 293 priorityClassName: 294 description: DefaultPriorityClassName if specified applies to all the 295 pool pods in the pool spec if the priorityClass at the pool level 296 is not specified. 297 type: string 298 resources: 299 description: DefaultResources are the compute resources required by 300 the cstor-pool container. If the resources at PoolConfig is not specified, 301 this is written to CSPI PoolConfig. 302 properties: 303 limits: 304 additionalProperties: 305 anyOf: 306 - type: integer 307 - type: string 308 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 309 x-kubernetes-int-or-string: true 310 description: 'Limits describes the maximum amount of compute resources 311 allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 312 type: object 313 requests: 314 additionalProperties: 315 anyOf: 316 - type: integer 317 - type: string 318 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 319 x-kubernetes-int-or-string: true 320 description: 'Requests describes the minimum amount of compute resources 321 required. If Requests is omitted for a container, it defaults 322 to Limits if that is explicitly specified, otherwise to an implementation-defined 323 value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 324 type: object 325 type: object 326 tolerations: 327 description: Tolerations, if specified, are the pool pod's tolerations 328 If tolerations at PoolConfig is empty, this is written to CSPI PoolConfig. 329 items: 330 description: The pod this Toleration is attached to tolerates any 331 taint that matches the triple <key,value,effect> using the matching 332 operator <operator>. 333 properties: 334 effect: 335 description: Effect indicates the taint effect to match. Empty 336 means match all taint effects. When specified, allowed values 337 are NoSchedule, PreferNoSchedule and NoExecute. 338 type: string 339 key: 340 description: Key is the taint key that the toleration applies 341 to. Empty means match all taint keys. If the key is empty, operator 342 must be Exists; this combination means to match all values and 343 all keys. 344 type: string 345 operator: 346 description: Operator represents a key's relationship to the value. 347 Valid operators are Exists and Equal. Defaults to Equal. Exists 348 is equivalent to wildcard for value, so that a pod can tolerate 349 all taints of a particular category. 350 type: string 351 tolerationSeconds: 352 description: TolerationSeconds represents the period of time the 353 toleration (which must be of effect NoExecute, otherwise this 354 field is ignored) tolerates the taint. By default, it is not 355 set, which means tolerate the taint forever (do not evict). 356 Zero and negative values will be treated as 0 (evict immediately) 357 by the system. 358 format: int64 359 type: integer 360 value: 361 description: Value is the taint value the toleration matches to. 362 If the operator is Exists, the value should be empty, otherwise 363 just a regular string. 364 type: string 365 type: object 366 type: array 367 required: 368 - auxResources 369 - pools 370 - priorityClassName 371 - resources 372 - tolerations 373 type: object 374 status: 375 description: CStorPoolClusterStatus represents the latest available observations 376 of a CSPC's current state. 377 properties: 378 conditions: 379 description: Current state of CSPC. 380 items: 381 description: CStorPoolClusterCondition describes the state of a CSPC 382 at a certain point. 383 properties: 384 lastTransitionTime: 385 description: Last time the condition transitioned from one status 386 to another. 387 format: date-time 388 type: string 389 lastUpdateTime: 390 description: The last time this condition was updated. 391 format: date-time 392 type: string 393 message: 394 description: A human readable message indicating details about 395 the transition. 396 type: string 397 reason: 398 description: The reason for the condition's last transition. 399 type: string 400 status: 401 description: Status of the condition, one of True, False, Unknown. 402 type: string 403 type: 404 description: Type of CSPC condition. 405 type: string 406 required: 407 - status 408 - type 409 type: object 410 type: array 411 desiredInstances: 412 description: DesiredInstances is the number of CSPI(s) that should be 413 provisioned. 414 format: int32 415 type: integer 416 healthyInstances: 417 description: HealthyInstances is the number of CSPI(s) that are healthy. 418 format: int32 419 type: integer 420 provisionedInstances: 421 description: ProvisionedInstances is the the number of CSPI present 422 at the current state. 423 format: int32 424 type: integer 425 required: 426 - conditions 427 - desiredInstances 428 - healthyInstances 429 - provisionedInstances 430 type: object 431 versionDetails: 432 description: VersionDetails provides the details for upgrade 433 properties: 434 autoUpgrade: 435 description: If AutoUpgrade is set to true then the resource is upgraded 436 automatically without any manual steps 437 type: boolean 438 desired: 439 description: Desired is the version that we want to upgrade or the control 440 plane version 441 type: string 442 status: 443 description: Status gives the status of reconciliation triggered when 444 the desired and current version are not same 445 properties: 446 current: 447 description: Current is the version of resource 448 type: string 449 dependentsUpgraded: 450 description: DependentsUpgraded gives the details whether all children 451 of a resource are upgraded to desired version or not 452 type: boolean 453 lastUpdateTime: 454 description: LastUpdateTime is the time the status was last updated 455 format: date-time 456 type: string 457 message: 458 description: Message is a human readable message if some error occurs 459 type: string 460 reason: 461 description: Reason is the actual reason for the error state 462 type: string 463 state: 464 description: State is the state of reconciliation 465 type: string 466 required: 467 - current 468 - dependentsUpgraded 469 - state 470 type: object 471 required: 472 - autoUpgrade 473 - desired 474 - status 475 type: object 476 required: 477 - spec 478 - status 479 - versionDetails 480 type: object 481 version: v1 482 versions: 483 - name: v1 484 served: true 485 storage: true 486 status: 487 acceptedNames: 488 kind: "" 489 plural: "" 490 conditions: [] 491 storedVersions: [] 492 493 --- 494 apiVersion: apiextensions.k8s.io/v1beta1 495 kind: CustomResourceDefinition 496 metadata: 497 annotations: 498 controller-gen.kubebuilder.io/version: v0.2.9 499 creationTimestamp: null 500 name: cstorpoolinstances.cstor.openebs.io 501 spec: 502 group: cstor.openebs.io 503 names: 504 kind: CStorPoolInstance 505 listKind: CStorPoolInstanceList 506 plural: cstorpoolinstances 507 singular: cstorpoolinstance 508 scope: Namespaced 509 validation: 510 openAPIV3Schema: 511 description: CStorPoolInstance describes a cstor pool instance resource. 512 properties: 513 apiVersion: 514 description: 'APIVersion defines the versioned schema of this representation 515 of an object. Servers should convert recognized schemas to the latest 516 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 517 type: string 518 kind: 519 description: 'Kind is a string value representing the REST resource this 520 object represents. Servers may infer this from the endpoint the client 521 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 522 type: string 523 metadata: 524 type: object 525 spec: 526 description: Spec is the specification of the cstorpoolinstance resource. 527 properties: 528 dataRaidGroups: 529 description: DataRaidGroups is the raid group configuration for the 530 given pool. 531 items: 532 description: RaidGroup contains the details of a raid group for the 533 pool 534 properties: 535 blockDevices: 536 items: 537 description: CStorPoolInstanceBlockDevice contains the details 538 of block devices that constitutes a raid group. 539 properties: 540 blockDeviceName: 541 description: BlockDeviceName is the name of the block device. 542 type: string 543 capacity: 544 description: Capacity is the capacity of the block device. 545 It is system generated 546 format: int64 547 type: integer 548 devLink: 549 description: DevLink is the dev link for block devices 550 type: string 551 required: 552 - blockDeviceName 553 - capacity 554 - devLink 555 type: object 556 type: array 557 required: 558 - blockDevices 559 type: object 560 type: array 561 hostName: 562 description: HostName is the name of kubernetes node where the pool 563 should be created. 564 type: string 565 nodeSelector: 566 additionalProperties: 567 type: string 568 description: NodeSelector is the labels that will be used to select 569 a node for pool provisioning. Required field 570 type: object 571 poolConfig: 572 description: PoolConfig is the default pool config that applies to the 573 pool on node. 574 properties: 575 auxResources: 576 description: AuxResources are the compute resources required by 577 the cstor-pool pod side car containers. 578 properties: 579 limits: 580 additionalProperties: 581 anyOf: 582 - type: integer 583 - type: string 584 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 585 x-kubernetes-int-or-string: true 586 description: 'Limits describes the maximum amount of compute 587 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 588 type: object 589 requests: 590 additionalProperties: 591 anyOf: 592 - type: integer 593 - type: string 594 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 595 x-kubernetes-int-or-string: true 596 description: 'Requests describes the minimum amount of compute 597 resources required. If Requests is omitted for a container, 598 it defaults to Limits if that is explicitly specified, otherwise 599 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 600 type: object 601 type: object 602 compression: 603 description: 'Compression to enable compression Optional -- defaults 604 to off Possible values : lz, off' 605 type: string 606 dataRaidGroupType: 607 description: DataRaidGroupType is the raid type. 608 type: string 609 priorityClassName: 610 description: PriorityClassName if specified applies to this pool 611 pod If left empty, DefaultPriorityClassName is applied. (See CStorPoolClusterSpec.DefaultPriorityClassName) 612 If both are empty, not priority class is applied. 613 type: string 614 resources: 615 description: Resources are the compute resources required by the 616 cstor-pool container. 617 properties: 618 limits: 619 additionalProperties: 620 anyOf: 621 - type: integer 622 - type: string 623 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 624 x-kubernetes-int-or-string: true 625 description: 'Limits describes the maximum amount of compute 626 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 627 type: object 628 requests: 629 additionalProperties: 630 anyOf: 631 - type: integer 632 - type: string 633 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 634 x-kubernetes-int-or-string: true 635 description: 'Requests describes the minimum amount of compute 636 resources required. If Requests is omitted for a container, 637 it defaults to Limits if that is explicitly specified, otherwise 638 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 639 type: object 640 type: object 641 roThresholdLimit: 642 description: 'ROThresholdLimit is threshold(percentage base) limit 643 for pool read only mode. If ROThresholdLimit(%) amount of pool 644 storage is reached then pool will set to readonly. NOTE: 1. If 645 ROThresholdLimit is set to 100 then entire pool storage will 646 be used by default it will be set to 85%. 2. ROThresholdLimit 647 value will be 0 <= ROThresholdLimit <= 100.' 648 type: integer 649 thickProvision: 650 description: ThickProvision to enable thick provisioning Optional 651 -- defaults to false 652 type: boolean 653 tolerations: 654 description: Tolerations, if specified, the pool pod's tolerations. 655 items: 656 description: The pod this Toleration is attached to tolerates 657 any taint that matches the triple <key,value,effect> using the 658 matching operator <operator>. 659 properties: 660 effect: 661 description: Effect indicates the taint effect to match. Empty 662 means match all taint effects. When specified, allowed values 663 are NoSchedule, PreferNoSchedule and NoExecute. 664 type: string 665 key: 666 description: Key is the taint key that the toleration applies 667 to. Empty means match all taint keys. If the key is empty, 668 operator must be Exists; this combination means to match 669 all values and all keys. 670 type: string 671 operator: 672 description: Operator represents a key's relationship to the 673 value. Valid operators are Exists and Equal. Defaults to 674 Equal. Exists is equivalent to wildcard for value, so that 675 a pod can tolerate all taints of a particular category. 676 type: string 677 tolerationSeconds: 678 description: TolerationSeconds represents the period of time 679 the toleration (which must be of effect NoExecute, otherwise 680 this field is ignored) tolerates the taint. By default, 681 it is not set, which means tolerate the taint forever (do 682 not evict). Zero and negative values will be treated as 683 0 (evict immediately) by the system. 684 format: int64 685 type: integer 686 value: 687 description: Value is the taint value the toleration matches 688 to. If the operator is Exists, the value should be empty, 689 otherwise just a regular string. 690 type: string 691 type: object 692 type: array 693 writeCacheGroupType: 694 description: WriteCacheGroupType is the write cache raid type. 695 type: string 696 required: 697 - auxResources 698 - compression 699 - dataRaidGroupType 700 - priorityClassName 701 - resources 702 - roThresholdLimit 703 - thickProvision 704 - tolerations 705 - writeCacheGroupType 706 type: object 707 writeCacheRaidGroups: 708 description: WriteCacheRaidGroups is the write cache raid group. 709 items: 710 description: RaidGroup contains the details of a raid group for the 711 pool 712 properties: 713 blockDevices: 714 items: 715 description: CStorPoolInstanceBlockDevice contains the details 716 of block devices that constitutes a raid group. 717 properties: 718 blockDeviceName: 719 description: BlockDeviceName is the name of the block device. 720 type: string 721 capacity: 722 description: Capacity is the capacity of the block device. 723 It is system generated 724 format: int64 725 type: integer 726 devLink: 727 description: DevLink is the dev link for block devices 728 type: string 729 required: 730 - blockDeviceName 731 - capacity 732 - devLink 733 type: object 734 type: array 735 required: 736 - blockDevices 737 type: object 738 type: array 739 required: 740 - dataRaidGroups 741 - hostName 742 - nodeSelector 743 - poolConfig 744 - writeCacheRaidGroups 745 type: object 746 status: 747 description: Status is the possible statuses of the cstorpoolinstance resource. 748 properties: 749 capacity: 750 description: Capacity describes the capacity details of a cstor pool 751 properties: 752 free: 753 anyOf: 754 - type: integer 755 - type: string 756 description: Unsed capacity in the pool 757 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 758 x-kubernetes-int-or-string: true 759 total: 760 anyOf: 761 - type: integer 762 - type: string 763 description: Total capacity of the pool, equal to the sum of the 764 all data raidgroups 765 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 766 x-kubernetes-int-or-string: true 767 used: 768 anyOf: 769 - type: integer 770 - type: string 771 description: The amount of capacity allocated to all datasets and 772 internal metadata 773 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 774 x-kubernetes-int-or-string: true 775 required: 776 - free 777 - total 778 - used 779 type: object 780 conditions: 781 description: Current state of CSPI with details. 782 items: 783 description: CSPIConditionType describes the state of a CSPI at a 784 certain point. 785 properties: 786 lastTransitionTime: 787 description: Last time the condition transitioned from one status 788 to another. 789 format: date-time 790 type: string 791 lastUpdateTime: 792 description: The last time this condition was updated. 793 format: date-time 794 type: string 795 message: 796 description: A human readable message indicating details about 797 the transition. 798 type: string 799 reason: 800 description: The reason for the condition's last transition. 801 type: string 802 status: 803 description: Status of the condition, one of True, False, Unknown. 804 type: string 805 type: 806 description: Type of CSPC condition. 807 type: string 808 required: 809 - status 810 - type 811 type: object 812 type: array 813 phase: 814 description: ' The phase of a CStorPool is a simple, high-level summary 815 of the pool state on the node.' 816 type: string 817 readOnly: 818 description: ReadOnly if pool is readOnly or not 819 type: boolean 820 required: 821 - capacity 822 - phase 823 - readOnly 824 type: object 825 versionDetails: 826 description: VersionDetails is the openebs version. 827 properties: 828 autoUpgrade: 829 description: If AutoUpgrade is set to true then the resource is upgraded 830 automatically without any manual steps 831 type: boolean 832 desired: 833 description: Desired is the version that we want to upgrade or the control 834 plane version 835 type: string 836 status: 837 description: Status gives the status of reconciliation triggered when 838 the desired and current version are not same 839 properties: 840 current: 841 description: Current is the version of resource 842 type: string 843 dependentsUpgraded: 844 description: DependentsUpgraded gives the details whether all children 845 of a resource are upgraded to desired version or not 846 type: boolean 847 lastUpdateTime: 848 description: LastUpdateTime is the time the status was last updated 849 format: date-time 850 type: string 851 message: 852 description: Message is a human readable message if some error occurs 853 type: string 854 reason: 855 description: Reason is the actual reason for the error state 856 type: string 857 state: 858 description: State is the state of reconciliation 859 type: string 860 required: 861 - current 862 - dependentsUpgraded 863 - state 864 type: object 865 required: 866 - autoUpgrade 867 - desired 868 - status 869 type: object 870 required: 871 - spec 872 - status 873 - versionDetails 874 type: object 875 version: v1 876 versions: 877 - name: v1 878 served: true 879 storage: true 880 status: 881 acceptedNames: 882 kind: "" 883 plural: "" 884 conditions: [] 885 storedVersions: [] 886 887 --- 888 apiVersion: apiextensions.k8s.io/v1beta1 889 kind: CustomResourceDefinition 890 metadata: 891 annotations: 892 controller-gen.kubebuilder.io/version: v0.2.9 893 creationTimestamp: null 894 name: cstorvolumeconfigs.cstor.openebs.io 895 spec: 896 group: cstor.openebs.io 897 names: 898 kind: CStorVolumeConfig 899 listKind: CStorVolumeConfigList 900 plural: cstorvolumeconfigs 901 singular: cstorvolumeconfig 902 scope: Namespaced 903 validation: 904 openAPIV3Schema: 905 description: CStorVolumeConfig describes a cstor volume config resource created 906 as custom resource. CStorVolumeConfig is a request for creating cstor volume 907 related resources like deployment, svc etc. 908 properties: 909 apiVersion: 910 description: 'APIVersion defines the versioned schema of this representation 911 of an object. Servers should convert recognized schemas to the latest 912 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 913 type: string 914 kind: 915 description: 'Kind is a string value representing the REST resource this 916 object represents. Servers may infer this from the endpoint the client 917 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 918 type: string 919 metadata: 920 type: object 921 publish: 922 description: Publish contains info related to attachment of a volume to 923 a node. i.e. NodeId etc. 924 properties: 925 nodeId: 926 description: NodeID contains publish info related to attachment of a 927 volume to a node. 928 type: string 929 type: object 930 spec: 931 description: Spec defines a specification of a cstor volume config required 932 to provisione cstor volume resources 933 properties: 934 capacity: 935 additionalProperties: 936 anyOf: 937 - type: integer 938 - type: string 939 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 940 x-kubernetes-int-or-string: true 941 description: Capacity represents the actual resources of the underlying 942 cstor volume. 943 type: object 944 cstorVolumeRef: 945 description: CStorVolumeRef has the information about where CstorVolumeClaim 946 is created from. 947 properties: 948 apiVersion: 949 description: API version of the referent. 950 type: string 951 fieldPath: 952 description: 'If referring to a piece of an object instead of an 953 entire object, this string should contain a valid JSON/Go field 954 access statement, such as desiredState.manifest.containers[2]. 955 For example, if the object reference is to a container within 956 a pod, this would take on a value like: "spec.containers{name}" 957 (where "name" refers to the name of the container that triggered 958 the event) or if no container name is specified "spec.containers[2]" 959 (container with index 2 in this pod). This syntax is chosen only 960 to have some well-defined way of referencing a part of an object. 961 TODO: this design is not final and this field is subject to change 962 in the future.' 963 type: string 964 kind: 965 description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 966 type: string 967 name: 968 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 969 type: string 970 namespace: 971 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' 972 type: string 973 resourceVersion: 974 description: 'Specific resourceVersion to which this reference is 975 made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' 976 type: string 977 uid: 978 description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' 979 type: string 980 type: object 981 cstorVolumeSource: 982 description: CStorVolumeSource contains the source volumeName@snapShotname 983 combaination. This will be filled only if it is a clone creation. 984 type: string 985 policy: 986 description: Policy contains volume specific required policies target 987 and replicas 988 properties: 989 provision: 990 description: replicaAffinity is set to true then volume replica 991 resources need to be distributed across the pool instances 992 properties: 993 blockSize: 994 description: BlockSize is the logical block size in multiple 995 of 512 bytes BlockSize specifies the block size of the volume. 996 The blocksize cannot be changed once the volume has been written, 997 so it should be set at volume creation time. The default blocksize 998 for volumes is 4 Kbytes. Any power of 2 from 512 bytes to 999 128 Kbytes is valid. 1000 format: int32 1001 type: integer 1002 replicaAffinity: 1003 description: replicaAffinity is set to true then volume replica 1004 resources need to be distributed across the cstor pool instances 1005 based on the given topology 1006 type: boolean 1007 required: 1008 - blockSize 1009 - replicaAffinity 1010 type: object 1011 replica: 1012 description: ReplicaSpec represents configuration related to replicas 1013 resources 1014 properties: 1015 compression: 1016 description: The zle compression algorithm compresses runs of 1017 zeros. 1018 type: string 1019 zvolWorkers: 1020 description: IOWorkers represents number of threads that executes 1021 client IOs 1022 type: string 1023 type: object 1024 replicaPoolInfo: 1025 description: 'ReplicaPoolInfo holds the pool information of volume 1026 replicas. Ex: If volume is provisioned on which CStor pool volume 1027 replicas exist' 1028 items: 1029 description: ReplicaPoolInfo represents the pool information of 1030 volume replica 1031 properties: 1032 poolName: 1033 description: PoolName represents the pool name where volume 1034 replica exists 1035 type: string 1036 required: 1037 - poolName 1038 type: object 1039 type: array 1040 target: 1041 description: TargetSpec represents configuration related to cstor 1042 target and its resources 1043 properties: 1044 affinity: 1045 description: PodAffinity if specified, are the target pod's 1046 affinities 1047 properties: 1048 preferredDuringSchedulingIgnoredDuringExecution: 1049 description: The scheduler will prefer to schedule pods 1050 to nodes that satisfy the affinity expressions specified 1051 by this field, but it may choose a node that violates 1052 one or more of the expressions. The node that is most 1053 preferred is the one with the greatest sum of weights, 1054 i.e. for each node that meets all of the scheduling requirements 1055 (resource request, requiredDuringScheduling affinity expressions, 1056 etc.), compute a sum by iterating through the elements 1057 of this field and adding "weight" to the sum if the node 1058 has pods which matches the corresponding podAffinityTerm; 1059 the node(s) with the highest sum are the most preferred. 1060 items: 1061 description: The weights of all of the matched WeightedPodAffinityTerm 1062 fields are added per-node to find the most preferred 1063 node(s) 1064 properties: 1065 podAffinityTerm: 1066 description: Required. A pod affinity term, associated 1067 with the corresponding weight. 1068 properties: 1069 labelSelector: 1070 description: A label query over a set of resources, 1071 in this case pods. 1072 properties: 1073 matchExpressions: 1074 description: matchExpressions is a list of 1075 label selector requirements. The requirements 1076 are ANDed. 1077 items: 1078 description: A label selector requirement 1079 is a selector that contains values, a 1080 key, and an operator that relates the 1081 key and values. 1082 properties: 1083 key: 1084 description: key is the label key that 1085 the selector applies to. 1086 type: string 1087 operator: 1088 description: operator represents a key's 1089 relationship to a set of values. Valid 1090 operators are In, NotIn, Exists and 1091 DoesNotExist. 1092 type: string 1093 values: 1094 description: values is an array of string 1095 values. If the operator is In or NotIn, 1096 the values array must be non-empty. 1097 If the operator is Exists or DoesNotExist, 1098 the values array must be empty. This 1099 array is replaced during a strategic 1100 merge patch. 1101 items: 1102 type: string 1103 type: array 1104 required: 1105 - key 1106 - operator 1107 type: object 1108 type: array 1109 matchLabels: 1110 additionalProperties: 1111 type: string 1112 description: matchLabels is a map of {key,value} 1113 pairs. A single {key,value} in the matchLabels 1114 map is equivalent to an element of matchExpressions, 1115 whose key field is "key", the operator is 1116 "In", and the values array contains only 1117 "value". The requirements are ANDed. 1118 type: object 1119 type: object 1120 namespaces: 1121 description: namespaces specifies which namespaces 1122 the labelSelector applies to (matches against); 1123 null or empty list means "this pod's namespace" 1124 items: 1125 type: string 1126 type: array 1127 topologyKey: 1128 description: This pod should be co-located (affinity) 1129 or not co-located (anti-affinity) with the pods 1130 matching the labelSelector in the specified 1131 namespaces, where co-located is defined as running 1132 on a node whose value of the label with key 1133 topologyKey matches that of any node on which 1134 any of the selected pods is running. Empty topologyKey 1135 is not allowed. 1136 type: string 1137 required: 1138 - topologyKey 1139 type: object 1140 weight: 1141 description: weight associated with matching the corresponding 1142 podAffinityTerm, in the range 1-100. 1143 format: int32 1144 type: integer 1145 required: 1146 - podAffinityTerm 1147 - weight 1148 type: object 1149 type: array 1150 requiredDuringSchedulingIgnoredDuringExecution: 1151 description: If the affinity requirements specified by this 1152 field are not met at scheduling time, the pod will not 1153 be scheduled onto the node. If the affinity requirements 1154 specified by this field cease to be met at some point 1155 during pod execution (e.g. due to a pod label update), 1156 the system may or may not try to eventually evict the 1157 pod from its node. When there are multiple elements, the 1158 lists of nodes corresponding to each podAffinityTerm are 1159 intersected, i.e. all terms must be satisfied. 1160 items: 1161 description: Defines a set of pods (namely those matching 1162 the labelSelector relative to the given namespace(s)) 1163 that this pod should be co-located (affinity) or not 1164 co-located (anti-affinity) with, where co-located is 1165 defined as running on a node whose value of the label 1166 with key <topologyKey> matches that of any node on which 1167 a pod of the set of pods is running 1168 properties: 1169 labelSelector: 1170 description: A label query over a set of resources, 1171 in this case pods. 1172 properties: 1173 matchExpressions: 1174 description: matchExpressions is a list of label 1175 selector requirements. The requirements are 1176 ANDed. 1177 items: 1178 description: A label selector requirement is 1179 a selector that contains values, a key, and 1180 an operator that relates the key and values. 1181 properties: 1182 key: 1183 description: key is the label key that the 1184 selector applies to. 1185 type: string 1186 operator: 1187 description: operator represents a key's 1188 relationship to a set of values. Valid 1189 operators are In, NotIn, Exists and DoesNotExist. 1190 type: string 1191 values: 1192 description: values is an array of string 1193 values. If the operator is In or NotIn, 1194 the values array must be non-empty. If 1195 the operator is Exists or DoesNotExist, 1196 the values array must be empty. This array 1197 is replaced during a strategic merge patch. 1198 items: 1199 type: string 1200 type: array 1201 required: 1202 - key 1203 - operator 1204 type: object 1205 type: array 1206 matchLabels: 1207 additionalProperties: 1208 type: string 1209 description: matchLabels is a map of {key,value} 1210 pairs. A single {key,value} in the matchLabels 1211 map is equivalent to an element of matchExpressions, 1212 whose key field is "key", the operator is "In", 1213 and the values array contains only "value". 1214 The requirements are ANDed. 1215 type: object 1216 type: object 1217 namespaces: 1218 description: namespaces specifies which namespaces 1219 the labelSelector applies to (matches against); 1220 null or empty list means "this pod's namespace" 1221 items: 1222 type: string 1223 type: array 1224 topologyKey: 1225 description: This pod should be co-located (affinity) 1226 or not co-located (anti-affinity) with the pods 1227 matching the labelSelector in the specified namespaces, 1228 where co-located is defined as running on a node 1229 whose value of the label with key topologyKey matches 1230 that of any node on which any of the selected pods 1231 is running. Empty topologyKey is not allowed. 1232 type: string 1233 required: 1234 - topologyKey 1235 type: object 1236 type: array 1237 type: object 1238 auxResources: 1239 description: AuxResources are the compute resources required 1240 by the cstor-target pod side car containers. 1241 properties: 1242 limits: 1243 additionalProperties: 1244 anyOf: 1245 - type: integer 1246 - type: string 1247 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1248 x-kubernetes-int-or-string: true 1249 description: 'Limits describes the maximum amount of compute 1250 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1251 type: object 1252 requests: 1253 additionalProperties: 1254 anyOf: 1255 - type: integer 1256 - type: string 1257 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1258 x-kubernetes-int-or-string: true 1259 description: 'Requests describes the minimum amount of compute 1260 resources required. If Requests is omitted for a container, 1261 it defaults to Limits if that is explicitly specified, 1262 otherwise to an implementation-defined value. More info: 1263 https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1264 type: object 1265 type: object 1266 luWorkers: 1267 description: IOWorkers sets the number of threads that are working 1268 on above queue 1269 format: int64 1270 type: integer 1271 monitor: 1272 description: Monitor enables or disables the target exporter 1273 sidecar 1274 type: boolean 1275 nodeSelector: 1276 additionalProperties: 1277 type: string 1278 description: NodeSelector is the labels that will be used to 1279 select a node for target pod scheduleing Required field 1280 type: object 1281 priorityClassName: 1282 description: PriorityClassName if specified applies to this 1283 target pod If left empty, no priority class is applied. 1284 type: string 1285 queueDepth: 1286 description: QueueDepth sets the queue size at iSCSI target 1287 which limits the ongoing IO count from client 1288 type: string 1289 replicationFactor: 1290 description: ReplicationFactor represents maximum number of 1291 replicas that are allowed to connect to the target 1292 format: int64 1293 type: integer 1294 resources: 1295 description: Resources are the compute resources required by 1296 the cstor-target container. 1297 properties: 1298 limits: 1299 additionalProperties: 1300 anyOf: 1301 - type: integer 1302 - type: string 1303 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1304 x-kubernetes-int-or-string: true 1305 description: 'Limits describes the maximum amount of compute 1306 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1307 type: object 1308 requests: 1309 additionalProperties: 1310 anyOf: 1311 - type: integer 1312 - type: string 1313 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1314 x-kubernetes-int-or-string: true 1315 description: 'Requests describes the minimum amount of compute 1316 resources required. If Requests is omitted for a container, 1317 it defaults to Limits if that is explicitly specified, 1318 otherwise to an implementation-defined value. More info: 1319 https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1320 type: object 1321 type: object 1322 tolerations: 1323 description: Tolerations, if specified, are the target pod's 1324 tolerations 1325 items: 1326 description: The pod this Toleration is attached to tolerates 1327 any taint that matches the triple <key,value,effect> using 1328 the matching operator <operator>. 1329 properties: 1330 effect: 1331 description: Effect indicates the taint effect to match. 1332 Empty means match all taint effects. When specified, 1333 allowed values are NoSchedule, PreferNoSchedule and 1334 NoExecute. 1335 type: string 1336 key: 1337 description: Key is the taint key that the toleration 1338 applies to. Empty means match all taint keys. If the 1339 key is empty, operator must be Exists; this combination 1340 means to match all values and all keys. 1341 type: string 1342 operator: 1343 description: Operator represents a key's relationship 1344 to the value. Valid operators are Exists and Equal. 1345 Defaults to Equal. Exists is equivalent to wildcard 1346 for value, so that a pod can tolerate all taints of 1347 a particular category. 1348 type: string 1349 tolerationSeconds: 1350 description: TolerationSeconds represents the period of 1351 time the toleration (which must be of effect NoExecute, 1352 otherwise this field is ignored) tolerates the taint. 1353 By default, it is not set, which means tolerate the 1354 taint forever (do not evict). Zero and negative values 1355 will be treated as 0 (evict immediately) by the system. 1356 format: int64 1357 type: integer 1358 value: 1359 description: Value is the taint value the toleration matches 1360 to. If the operator is Exists, the value should be empty, 1361 otherwise just a regular string. 1362 type: string 1363 type: object 1364 type: array 1365 type: object 1366 required: 1367 - provision 1368 - replica 1369 - replicaPoolInfo 1370 - target 1371 type: object 1372 provision: 1373 description: Provision represents the initial volume configuration for 1374 the underlying cstor volume based on the persistent volume request 1375 by user. Provision properties are immutable 1376 properties: 1377 capacity: 1378 additionalProperties: 1379 anyOf: 1380 - type: integer 1381 - type: string 1382 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1383 x-kubernetes-int-or-string: true 1384 description: Capacity represents initial capacity of volume replica 1385 required during volume clone operations to maintain some metadata 1386 info related to child resources like snapshot, cloned volumes. 1387 type: object 1388 replicaCount: 1389 description: ReplicaCount represents initial cstor volume replica 1390 count, its will not be updated later on based on scale up/down 1391 operations, only readonly operations and validations. 1392 type: integer 1393 required: 1394 - capacity 1395 - replicaCount 1396 type: object 1397 required: 1398 - capacity 1399 - policy 1400 - provision 1401 type: object 1402 status: 1403 description: Status represents the current information/status for the cstor 1404 volume config, populated by the controller. 1405 properties: 1406 capacity: 1407 additionalProperties: 1408 anyOf: 1409 - type: integer 1410 - type: string 1411 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1412 x-kubernetes-int-or-string: true 1413 description: Capacity the actual resources of the underlying volume. 1414 type: object 1415 condition: 1416 items: 1417 description: CStorVolumeConfigCondition contains details about state 1418 of cstor volume 1419 properties: 1420 lastProbeTime: 1421 description: Last time we probed the condition. 1422 format: date-time 1423 type: string 1424 lastTransitionTime: 1425 description: Last time the condition transitioned from one status 1426 to another. 1427 format: date-time 1428 type: string 1429 message: 1430 description: Human-readable message indicating details about last 1431 transition. 1432 type: string 1433 reason: 1434 description: Reason is a brief CamelCase string that describes 1435 any failure 1436 type: string 1437 type: 1438 description: Current Condition of cstor volume config. If underlying 1439 persistent volume is being resized then the Condition will be 1440 set to 'ResizeStarted' etc 1441 type: string 1442 required: 1443 - message 1444 - reason 1445 - type 1446 type: object 1447 type: array 1448 phase: 1449 description: Phase represents the current phase of CStorVolumeConfig. 1450 type: string 1451 poolInfo: 1452 description: PoolInfo represents current pool names where volume replicas 1453 exists 1454 items: 1455 type: string 1456 type: array 1457 required: 1458 - phase 1459 - poolInfo 1460 type: object 1461 versionDetails: 1462 description: VersionDetails provides the details for upgrade 1463 properties: 1464 autoUpgrade: 1465 description: If AutoUpgrade is set to true then the resource is upgraded 1466 automatically without any manual steps 1467 type: boolean 1468 desired: 1469 description: Desired is the version that we want to upgrade or the control 1470 plane version 1471 type: string 1472 status: 1473 description: Status gives the status of reconciliation triggered when 1474 the desired and current version are not same 1475 properties: 1476 current: 1477 description: Current is the version of resource 1478 type: string 1479 dependentsUpgraded: 1480 description: DependentsUpgraded gives the details whether all children 1481 of a resource are upgraded to desired version or not 1482 type: boolean 1483 lastUpdateTime: 1484 description: LastUpdateTime is the time the status was last updated 1485 format: date-time 1486 type: string 1487 message: 1488 description: Message is a human readable message if some error occurs 1489 type: string 1490 reason: 1491 description: Reason is the actual reason for the error state 1492 type: string 1493 state: 1494 description: State is the state of reconciliation 1495 type: string 1496 required: 1497 - current 1498 - dependentsUpgraded 1499 - state 1500 type: object 1501 required: 1502 - autoUpgrade 1503 - desired 1504 - status 1505 type: object 1506 required: 1507 - spec 1508 - status 1509 - versionDetails 1510 type: object 1511 version: v1 1512 versions: 1513 - name: v1 1514 served: true 1515 storage: true 1516 status: 1517 acceptedNames: 1518 kind: "" 1519 plural: "" 1520 conditions: [] 1521 storedVersions: [] 1522 1523 --- 1524 apiVersion: apiextensions.k8s.io/v1beta1 1525 kind: CustomResourceDefinition 1526 metadata: 1527 annotations: 1528 controller-gen.kubebuilder.io/version: v0.2.9 1529 creationTimestamp: null 1530 name: cstorvolumepolicies.cstor.openebs.io 1531 spec: 1532 group: cstor.openebs.io 1533 names: 1534 kind: CStorVolumePolicy 1535 listKind: CStorVolumePolicyList 1536 plural: cstorvolumepolicies 1537 singular: cstorvolumepolicy 1538 scope: Namespaced 1539 validation: 1540 openAPIV3Schema: 1541 description: CStorVolumePolicy describes a configuration required for cstor 1542 volume resources 1543 properties: 1544 apiVersion: 1545 description: 'APIVersion defines the versioned schema of this representation 1546 of an object. Servers should convert recognized schemas to the latest 1547 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1548 type: string 1549 kind: 1550 description: 'Kind is a string value representing the REST resource this 1551 object represents. Servers may infer this from the endpoint the client 1552 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1553 type: string 1554 metadata: 1555 type: object 1556 spec: 1557 description: Spec defines a configuration info of a cstor volume required 1558 to provisione cstor volume resources 1559 properties: 1560 provision: 1561 description: replicaAffinity is set to true then volume replica resources 1562 need to be distributed across the pool instances 1563 properties: 1564 blockSize: 1565 description: BlockSize is the logical block size in multiple of 1566 512 bytes BlockSize specifies the block size of the volume. The 1567 blocksize cannot be changed once the volume has been written, 1568 so it should be set at volume creation time. The default blocksize 1569 for volumes is 4 Kbytes. Any power of 2 from 512 bytes to 128 1570 Kbytes is valid. 1571 format: int32 1572 type: integer 1573 replicaAffinity: 1574 description: replicaAffinity is set to true then volume replica 1575 resources need to be distributed across the cstor pool instances 1576 based on the given topology 1577 type: boolean 1578 required: 1579 - blockSize 1580 - replicaAffinity 1581 type: object 1582 replica: 1583 description: ReplicaSpec represents configuration related to replicas 1584 resources 1585 properties: 1586 compression: 1587 description: The zle compression algorithm compresses runs of zeros. 1588 type: string 1589 zvolWorkers: 1590 description: IOWorkers represents number of threads that executes 1591 client IOs 1592 type: string 1593 type: object 1594 replicaPoolInfo: 1595 description: 'ReplicaPoolInfo holds the pool information of volume replicas. 1596 Ex: If volume is provisioned on which CStor pool volume replicas exist' 1597 items: 1598 description: ReplicaPoolInfo represents the pool information of volume 1599 replica 1600 properties: 1601 poolName: 1602 description: PoolName represents the pool name where volume replica 1603 exists 1604 type: string 1605 required: 1606 - poolName 1607 type: object 1608 type: array 1609 target: 1610 description: TargetSpec represents configuration related to cstor target 1611 and its resources 1612 properties: 1613 affinity: 1614 description: PodAffinity if specified, are the target pod's affinities 1615 properties: 1616 preferredDuringSchedulingIgnoredDuringExecution: 1617 description: The scheduler will prefer to schedule pods to nodes 1618 that satisfy the affinity expressions specified by this field, 1619 but it may choose a node that violates one or more of the 1620 expressions. The node that is most preferred is the one with 1621 the greatest sum of weights, i.e. for each node that meets 1622 all of the scheduling requirements (resource request, requiredDuringScheduling 1623 affinity expressions, etc.), compute a sum by iterating through 1624 the elements of this field and adding "weight" to the sum 1625 if the node has pods which matches the corresponding podAffinityTerm; 1626 the node(s) with the highest sum are the most preferred. 1627 items: 1628 description: The weights of all of the matched WeightedPodAffinityTerm 1629 fields are added per-node to find the most preferred node(s) 1630 properties: 1631 podAffinityTerm: 1632 description: Required. A pod affinity term, associated 1633 with the corresponding weight. 1634 properties: 1635 labelSelector: 1636 description: A label query over a set of resources, 1637 in this case pods. 1638 properties: 1639 matchExpressions: 1640 description: matchExpressions is a list of label 1641 selector requirements. The requirements are 1642 ANDed. 1643 items: 1644 description: A label selector requirement is 1645 a selector that contains values, a key, and 1646 an operator that relates the key and values. 1647 properties: 1648 key: 1649 description: key is the label key that the 1650 selector applies to. 1651 type: string 1652 operator: 1653 description: operator represents a key's 1654 relationship to a set of values. Valid 1655 operators are In, NotIn, Exists and DoesNotExist. 1656 type: string 1657 values: 1658 description: values is an array of string 1659 values. If the operator is In or NotIn, 1660 the values array must be non-empty. If 1661 the operator is Exists or DoesNotExist, 1662 the values array must be empty. This array 1663 is replaced during a strategic merge patch. 1664 items: 1665 type: string 1666 type: array 1667 required: 1668 - key 1669 - operator 1670 type: object 1671 type: array 1672 matchLabels: 1673 additionalProperties: 1674 type: string 1675 description: matchLabels is a map of {key,value} 1676 pairs. A single {key,value} in the matchLabels 1677 map is equivalent to an element of matchExpressions, 1678 whose key field is "key", the operator is "In", 1679 and the values array contains only "value". 1680 The requirements are ANDed. 1681 type: object 1682 type: object 1683 namespaces: 1684 description: namespaces specifies which namespaces 1685 the labelSelector applies to (matches against); 1686 null or empty list means "this pod's namespace" 1687 items: 1688 type: string 1689 type: array 1690 topologyKey: 1691 description: This pod should be co-located (affinity) 1692 or not co-located (anti-affinity) with the pods 1693 matching the labelSelector in the specified namespaces, 1694 where co-located is defined as running on a node 1695 whose value of the label with key topologyKey matches 1696 that of any node on which any of the selected pods 1697 is running. Empty topologyKey is not allowed. 1698 type: string 1699 required: 1700 - topologyKey 1701 type: object 1702 weight: 1703 description: weight associated with matching the corresponding 1704 podAffinityTerm, in the range 1-100. 1705 format: int32 1706 type: integer 1707 required: 1708 - podAffinityTerm 1709 - weight 1710 type: object 1711 type: array 1712 requiredDuringSchedulingIgnoredDuringExecution: 1713 description: If the affinity requirements specified by this 1714 field are not met at scheduling time, the pod will not be 1715 scheduled onto the node. If the affinity requirements specified 1716 by this field cease to be met at some point during pod execution 1717 (e.g. due to a pod label update), the system may or may not 1718 try to eventually evict the pod from its node. When there 1719 are multiple elements, the lists of nodes corresponding to 1720 each podAffinityTerm are intersected, i.e. all terms must 1721 be satisfied. 1722 items: 1723 description: Defines a set of pods (namely those matching 1724 the labelSelector relative to the given namespace(s)) that 1725 this pod should be co-located (affinity) or not co-located 1726 (anti-affinity) with, where co-located is defined as running 1727 on a node whose value of the label with key <topologyKey> 1728 matches that of any node on which a pod of the set of pods 1729 is running 1730 properties: 1731 labelSelector: 1732 description: A label query over a set of resources, in 1733 this case pods. 1734 properties: 1735 matchExpressions: 1736 description: matchExpressions is a list of label selector 1737 requirements. The requirements are ANDed. 1738 items: 1739 description: A label selector requirement is a selector 1740 that contains values, a key, and an operator that 1741 relates the key and values. 1742 properties: 1743 key: 1744 description: key is the label key that the selector 1745 applies to. 1746 type: string 1747 operator: 1748 description: operator represents a key's relationship 1749 to a set of values. Valid operators are In, 1750 NotIn, Exists and DoesNotExist. 1751 type: string 1752 values: 1753 description: values is an array of string values. 1754 If the operator is In or NotIn, the values 1755 array must be non-empty. If the operator is 1756 Exists or DoesNotExist, the values array must 1757 be empty. This array is replaced during a 1758 strategic merge patch. 1759 items: 1760 type: string 1761 type: array 1762 required: 1763 - key 1764 - operator 1765 type: object 1766 type: array 1767 matchLabels: 1768 additionalProperties: 1769 type: string 1770 description: matchLabels is a map of {key,value} pairs. 1771 A single {key,value} in the matchLabels map is equivalent 1772 to an element of matchExpressions, whose key field 1773 is "key", the operator is "In", and the values array 1774 contains only "value". The requirements are ANDed. 1775 type: object 1776 type: object 1777 namespaces: 1778 description: namespaces specifies which namespaces the 1779 labelSelector applies to (matches against); null or 1780 empty list means "this pod's namespace" 1781 items: 1782 type: string 1783 type: array 1784 topologyKey: 1785 description: This pod should be co-located (affinity) 1786 or not co-located (anti-affinity) with the pods matching 1787 the labelSelector in the specified namespaces, where 1788 co-located is defined as running on a node whose value 1789 of the label with key topologyKey matches that of any 1790 node on which any of the selected pods is running. Empty 1791 topologyKey is not allowed. 1792 type: string 1793 required: 1794 - topologyKey 1795 type: object 1796 type: array 1797 type: object 1798 auxResources: 1799 description: AuxResources are the compute resources required by 1800 the cstor-target pod side car containers. 1801 properties: 1802 limits: 1803 additionalProperties: 1804 anyOf: 1805 - type: integer 1806 - type: string 1807 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1808 x-kubernetes-int-or-string: true 1809 description: 'Limits describes the maximum amount of compute 1810 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1811 type: object 1812 requests: 1813 additionalProperties: 1814 anyOf: 1815 - type: integer 1816 - type: string 1817 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1818 x-kubernetes-int-or-string: true 1819 description: 'Requests describes the minimum amount of compute 1820 resources required. If Requests is omitted for a container, 1821 it defaults to Limits if that is explicitly specified, otherwise 1822 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1823 type: object 1824 type: object 1825 luWorkers: 1826 description: IOWorkers sets the number of threads that are working 1827 on above queue 1828 format: int64 1829 type: integer 1830 monitor: 1831 description: Monitor enables or disables the target exporter sidecar 1832 type: boolean 1833 nodeSelector: 1834 additionalProperties: 1835 type: string 1836 description: NodeSelector is the labels that will be used to select 1837 a node for target pod scheduleing Required field 1838 type: object 1839 priorityClassName: 1840 description: PriorityClassName if specified applies to this target 1841 pod If left empty, no priority class is applied. 1842 type: string 1843 queueDepth: 1844 description: QueueDepth sets the queue size at iSCSI target which 1845 limits the ongoing IO count from client 1846 type: string 1847 replicationFactor: 1848 description: ReplicationFactor represents maximum number of replicas 1849 that are allowed to connect to the target 1850 format: int64 1851 type: integer 1852 resources: 1853 description: Resources are the compute resources required by the 1854 cstor-target container. 1855 properties: 1856 limits: 1857 additionalProperties: 1858 anyOf: 1859 - type: integer 1860 - type: string 1861 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1862 x-kubernetes-int-or-string: true 1863 description: 'Limits describes the maximum amount of compute 1864 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1865 type: object 1866 requests: 1867 additionalProperties: 1868 anyOf: 1869 - type: integer 1870 - type: string 1871 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1872 x-kubernetes-int-or-string: true 1873 description: 'Requests describes the minimum amount of compute 1874 resources required. If Requests is omitted for a container, 1875 it defaults to Limits if that is explicitly specified, otherwise 1876 to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/' 1877 type: object 1878 type: object 1879 tolerations: 1880 description: Tolerations, if specified, are the target pod's tolerations 1881 items: 1882 description: The pod this Toleration is attached to tolerates 1883 any taint that matches the triple <key,value,effect> using the 1884 matching operator <operator>. 1885 properties: 1886 effect: 1887 description: Effect indicates the taint effect to match. Empty 1888 means match all taint effects. When specified, allowed values 1889 are NoSchedule, PreferNoSchedule and NoExecute. 1890 type: string 1891 key: 1892 description: Key is the taint key that the toleration applies 1893 to. Empty means match all taint keys. If the key is empty, 1894 operator must be Exists; this combination means to match 1895 all values and all keys. 1896 type: string 1897 operator: 1898 description: Operator represents a key's relationship to the 1899 value. Valid operators are Exists and Equal. Defaults to 1900 Equal. Exists is equivalent to wildcard for value, so that 1901 a pod can tolerate all taints of a particular category. 1902 type: string 1903 tolerationSeconds: 1904 description: TolerationSeconds represents the period of time 1905 the toleration (which must be of effect NoExecute, otherwise 1906 this field is ignored) tolerates the taint. By default, 1907 it is not set, which means tolerate the taint forever (do 1908 not evict). Zero and negative values will be treated as 1909 0 (evict immediately) by the system. 1910 format: int64 1911 type: integer 1912 value: 1913 description: Value is the taint value the toleration matches 1914 to. If the operator is Exists, the value should be empty, 1915 otherwise just a regular string. 1916 type: string 1917 type: object 1918 type: array 1919 type: object 1920 required: 1921 - provision 1922 - replica 1923 - replicaPoolInfo 1924 - target 1925 type: object 1926 status: 1927 description: CStorVolumePolicyStatus is for handling status of CstorVolumePolicy 1928 properties: 1929 phase: 1930 type: string 1931 required: 1932 - phase 1933 type: object 1934 required: 1935 - spec 1936 - status 1937 type: object 1938 version: v1 1939 versions: 1940 - name: v1 1941 served: true 1942 storage: true 1943 status: 1944 acceptedNames: 1945 kind: "" 1946 plural: "" 1947 conditions: [] 1948 storedVersions: [] 1949 1950 --- 1951 apiVersion: apiextensions.k8s.io/v1beta1 1952 kind: CustomResourceDefinition 1953 metadata: 1954 annotations: 1955 controller-gen.kubebuilder.io/version: v0.2.9 1956 creationTimestamp: null 1957 name: cstorvolumereplicas.cstor.openebs.io 1958 spec: 1959 group: cstor.openebs.io 1960 names: 1961 kind: CStorVolumeReplica 1962 listKind: CStorVolumeReplicaList 1963 plural: cstorvolumereplicas 1964 singular: cstorvolumereplica 1965 scope: Namespaced 1966 validation: 1967 openAPIV3Schema: 1968 description: CStorVolumeReplica describes a cstor volume resource created as 1969 custom resource 1970 properties: 1971 apiVersion: 1972 description: 'APIVersion defines the versioned schema of this representation 1973 of an object. Servers should convert recognized schemas to the latest 1974 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 1975 type: string 1976 kind: 1977 description: 'Kind is a string value representing the REST resource this 1978 object represents. Servers may infer this from the endpoint the client 1979 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 1980 type: string 1981 metadata: 1982 type: object 1983 spec: 1984 description: CStorVolumeReplicaSpec is the spec for a CStorVolumeReplica 1985 resource 1986 properties: 1987 blockSize: 1988 description: BlockSize is the logical block size in multiple of 512 1989 bytes BlockSize specifies the block size of the volume. The blocksize 1990 cannot be changed once the volume has been written, so it should be 1991 set at volume creation time. The default blocksize for volumes is 1992 4 Kbytes. Any power of 2 from 512 bytes to 128 Kbytes is valid. 1993 format: int32 1994 type: integer 1995 capacity: 1996 description: Represents the actual capacity of the underlying volume 1997 type: string 1998 compression: 1999 description: 'Controls the compression algorithm used for this volumes 2000 examples: on|off|gzip|gzip-N|lz4|lzjb|zle' 2001 type: string 2002 replicaid: 2003 description: ReplicaID is unique number to identify the replica 2004 type: string 2005 targetIP: 2006 description: TargetIP represents iscsi target IP through which replica 2007 cummunicates IO workloads and other volume operations like snapshot 2008 and resize requests 2009 type: string 2010 zvolWorkers: 2011 description: ZvolWorkers represents number of threads that executes 2012 client IOs 2013 type: string 2014 required: 2015 - blockSize 2016 - capacity 2017 - compression 2018 - replicaid 2019 - targetIP 2020 - zvolWorkers 2021 type: object 2022 status: 2023 description: CStorVolumeReplicaStatus is for handling status of cvr. 2024 properties: 2025 capacity: 2026 description: CStorVolumeCapacityDetails represents capacity info of 2027 replica 2028 properties: 2029 total: 2030 description: The amount of space consumed by this volume replica 2031 and all its descendents 2032 type: string 2033 used: 2034 description: The amount of space that is "logically" accessible 2035 by this dataset. The logical space ignores the effect of the compression 2036 and copies properties, giving a quantity closer to the amount 2037 of data that applications see. However, it does include space 2038 consumed by metadata 2039 type: string 2040 required: 2041 - total 2042 - used 2043 type: object 2044 lastTransitionTime: 2045 description: LastTransitionTime refers to the time when the phase changes 2046 format: date-time 2047 type: string 2048 lastUpdateTime: 2049 description: The last updated time 2050 format: date-time 2051 type: string 2052 message: 2053 description: A human readable message indicating details about the transition. 2054 type: string 2055 pendingSnapshots: 2056 additionalProperties: 2057 description: CStorSnapshotInfo represents the snapshot information 2058 related to particular snapshot 2059 properties: 2060 logicalReferenced: 2061 description: LogicalReferenced describes the amount of space that 2062 is "logically" accessable by this snapshot. This logical space 2063 ignores the effect of the compression and copies properties, 2064 giving a quantity closer to the amount of data that application 2065 see. It also includes space consumed by metadata. 2066 format: int64 2067 type: integer 2068 used: 2069 description: Used is the used bytes for given snapshot 2070 format: int64 2071 type: integer 2072 required: 2073 - logicalReferenced 2074 - used 2075 type: object 2076 description: PendingSnapshots contains list of pending snapshots that 2077 are not yet available on this replica 2078 type: object 2079 phase: 2080 description: CStorVolumeReplicaPhase is to holds different phases of 2081 replica 2082 type: string 2083 snapshots: 2084 additionalProperties: 2085 description: CStorSnapshotInfo represents the snapshot information 2086 related to particular snapshot 2087 properties: 2088 logicalReferenced: 2089 description: LogicalReferenced describes the amount of space that 2090 is "logically" accessable by this snapshot. This logical space 2091 ignores the effect of the compression and copies properties, 2092 giving a quantity closer to the amount of data that application 2093 see. It also includes space consumed by metadata. 2094 format: int64 2095 type: integer 2096 used: 2097 description: Used is the used bytes for given snapshot 2098 format: int64 2099 type: integer 2100 required: 2101 - logicalReferenced 2102 - used 2103 type: object 2104 description: Snapshots contains list of snapshots, and their properties, 2105 created on CVR 2106 type: object 2107 required: 2108 - capacity 2109 - phase 2110 type: object 2111 versionDetails: 2112 description: VersionDetails provides the details for upgrade 2113 properties: 2114 autoUpgrade: 2115 description: If AutoUpgrade is set to true then the resource is upgraded 2116 automatically without any manual steps 2117 type: boolean 2118 desired: 2119 description: Desired is the version that we want to upgrade or the control 2120 plane version 2121 type: string 2122 status: 2123 description: Status gives the status of reconciliation triggered when 2124 the desired and current version are not same 2125 properties: 2126 current: 2127 description: Current is the version of resource 2128 type: string 2129 dependentsUpgraded: 2130 description: DependentsUpgraded gives the details whether all children 2131 of a resource are upgraded to desired version or not 2132 type: boolean 2133 lastUpdateTime: 2134 description: LastUpdateTime is the time the status was last updated 2135 format: date-time 2136 type: string 2137 message: 2138 description: Message is a human readable message if some error occurs 2139 type: string 2140 reason: 2141 description: Reason is the actual reason for the error state 2142 type: string 2143 state: 2144 description: State is the state of reconciliation 2145 type: string 2146 required: 2147 - current 2148 - dependentsUpgraded 2149 - state 2150 type: object 2151 required: 2152 - autoUpgrade 2153 - desired 2154 - status 2155 type: object 2156 required: 2157 - spec 2158 - status 2159 - versionDetails 2160 type: object 2161 version: v1 2162 versions: 2163 - name: v1 2164 served: true 2165 storage: true 2166 status: 2167 acceptedNames: 2168 kind: "" 2169 plural: "" 2170 conditions: [] 2171 storedVersions: [] 2172 2173 --- 2174 apiVersion: apiextensions.k8s.io/v1beta1 2175 kind: CustomResourceDefinition 2176 metadata: 2177 annotations: 2178 controller-gen.kubebuilder.io/version: v0.2.9 2179 creationTimestamp: null 2180 name: cstorvolumes.cstor.openebs.io 2181 spec: 2182 group: cstor.openebs.io 2183 names: 2184 kind: CStorVolume 2185 listKind: CStorVolumeList 2186 plural: cstorvolumes 2187 singular: cstorvolume 2188 scope: Namespaced 2189 validation: 2190 openAPIV3Schema: 2191 description: CStorVolume describes a cstor volume resource created as custom 2192 resource 2193 properties: 2194 apiVersion: 2195 description: 'APIVersion defines the versioned schema of this representation 2196 of an object. Servers should convert recognized schemas to the latest 2197 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 2198 type: string 2199 kind: 2200 description: 'Kind is a string value representing the REST resource this 2201 object represents. Servers may infer this from the endpoint the client 2202 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 2203 type: string 2204 metadata: 2205 type: object 2206 spec: 2207 description: CStorVolumeSpec is the spec for a CStorVolume resource 2208 properties: 2209 capacity: 2210 anyOf: 2211 - type: integer 2212 - type: string 2213 description: Capacity represents the desired size of the underlying 2214 volume. 2215 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 2216 x-kubernetes-int-or-string: true 2217 consistencyFactor: 2218 description: ConsistencyFactor is minimum number of volume replicas 2219 i.e. `RF/2 + 1` has to be connected to the target for write operations. 2220 Basically more then 50% of replica has to be connected to target. 2221 type: integer 2222 desiredReplicationFactor: 2223 description: DesiredReplicationFactor represents maximum number of replicas 2224 that are allowed to connect to the target. Required for scale operations 2225 type: integer 2226 iqn: 2227 description: Target iSCSI Qualified Name.combination of nodeBase 2228 type: string 2229 replicaDetails: 2230 description: ReplicaDetails refers to the trusty replica information 2231 properties: 2232 knownReplicas: 2233 additionalProperties: 2234 type: string 2235 description: KnownReplicas represents the replicas that target can 2236 trust to read data 2237 type: object 2238 type: object 2239 replicationFactor: 2240 description: ReplicationFactor represents number of volume replica created 2241 during volume provisioning connect to the target 2242 type: integer 2243 targetIP: 2244 description: TargetIP IP of the iSCSI target service 2245 type: string 2246 targetPort: 2247 description: iSCSI Target Port typically TCP ports 3260 2248 type: string 2249 targetPortal: 2250 description: iSCSI Target Portal. The Portal is combination of IP:port 2251 (typically TCP ports 3260) 2252 type: string 2253 required: 2254 - capacity 2255 - consistencyFactor 2256 - desiredReplicationFactor 2257 - iqn 2258 - replicationFactor 2259 - targetIP 2260 - targetPort 2261 - targetPortal 2262 type: object 2263 status: 2264 description: CStorVolumeStatus is for handling status of cvr. 2265 properties: 2266 capacity: 2267 anyOf: 2268 - type: integer 2269 - type: string 2270 description: Represents the actual capacity of the underlying volume. 2271 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 2272 x-kubernetes-int-or-string: true 2273 conditions: 2274 description: Current Condition of cstorvolume. If underlying persistent 2275 volume is being resized then the Condition will be set to 'ResizePending'. 2276 items: 2277 description: CStorVolumeCondition contains details about state of 2278 cstorvolume 2279 properties: 2280 lastProbeTime: 2281 description: Last time we probed the condition. 2282 format: date-time 2283 type: string 2284 lastTransitionTime: 2285 description: Last time the condition transitioned from one status 2286 to another. 2287 format: date-time 2288 type: string 2289 message: 2290 description: Human-readable message indicating details about last 2291 transition. 2292 type: string 2293 reason: 2294 description: Unique, this should be a short, machine understandable 2295 string that gives the reason for condition's last transition. 2296 If it reports "ResizePending" that means the underlying cstorvolume 2297 is being resized. 2298 type: string 2299 status: 2300 description: ConditionStatus states in which state condition is 2301 present 2302 type: string 2303 type: 2304 description: CStorVolumeConditionType is a valid value of CStorVolumeCondition.Type 2305 type: string 2306 required: 2307 - status 2308 - type 2309 type: object 2310 type: array 2311 lastTransitionTime: 2312 description: LastTransitionTime refers to the time when the phase changes 2313 format: date-time 2314 type: string 2315 lastUpdateTime: 2316 description: LastUpdateTime refers to the time when last status updated 2317 due to any operations 2318 format: date-time 2319 type: string 2320 message: 2321 description: A human-readable message indicating details about why the 2322 volume is in this state. 2323 type: string 2324 phase: 2325 description: CStorVolumePhase is to hold result of action. 2326 type: string 2327 replicaDetails: 2328 description: ReplicaDetails refers to the trusty replica information 2329 properties: 2330 knownReplicas: 2331 additionalProperties: 2332 type: string 2333 description: KnownReplicas represents the replicas that target can 2334 trust to read data 2335 type: object 2336 type: object 2337 replicaStatuses: 2338 items: 2339 description: ReplicaStatus stores the status of replicas 2340 properties: 2341 checkpointedIOSeq: 2342 description: Represents IO number of replica persisted on the 2343 disk 2344 type: string 2345 inflightRead: 2346 description: Ongoing reads I/O from target to replica 2347 type: string 2348 inflightSync: 2349 description: Ongoing sync I/O from target to replica 2350 type: string 2351 inflightWrite: 2352 description: ongoing writes I/O from target to replica 2353 type: string 2354 mode: 2355 description: Mode represents replica status i.e. Healthy, Degraded 2356 type: string 2357 quorum: 2358 description: 'Quorum indicates wheather data wrtitten to the replica 2359 is lost or exists. "0" means: data has been lost( might be ephimeral 2360 case) and will recostruct data from other Healthy replicas in 2361 a write-only mode 1 means: written data is exists on replica' 2362 type: string 2363 replicaId: 2364 description: ID is replica unique identifier 2365 type: string 2366 upTime: 2367 description: time since the replica connected to target 2368 type: integer 2369 required: 2370 - checkpointedIOSeq 2371 - inflightRead 2372 - inflightSync 2373 - inflightWrite 2374 - mode 2375 - quorum 2376 - replicaId 2377 - upTime 2378 type: object 2379 type: array 2380 required: 2381 - phase 2382 type: object 2383 versionDetails: 2384 description: VersionDetails provides the details for upgrade 2385 properties: 2386 autoUpgrade: 2387 description: If AutoUpgrade is set to true then the resource is upgraded 2388 automatically without any manual steps 2389 type: boolean 2390 desired: 2391 description: Desired is the version that we want to upgrade or the control 2392 plane version 2393 type: string 2394 status: 2395 description: Status gives the status of reconciliation triggered when 2396 the desired and current version are not same 2397 properties: 2398 current: 2399 description: Current is the version of resource 2400 type: string 2401 dependentsUpgraded: 2402 description: DependentsUpgraded gives the details whether all children 2403 of a resource are upgraded to desired version or not 2404 type: boolean 2405 lastUpdateTime: 2406 description: LastUpdateTime is the time the status was last updated 2407 format: date-time 2408 type: string 2409 message: 2410 description: Message is a human readable message if some error occurs 2411 type: string 2412 reason: 2413 description: Reason is the actual reason for the error state 2414 type: string 2415 state: 2416 description: State is the state of reconciliation 2417 type: string 2418 required: 2419 - current 2420 - dependentsUpgraded 2421 - state 2422 type: object 2423 required: 2424 - autoUpgrade 2425 - desired 2426 - status 2427 type: object 2428 required: 2429 - spec 2430 - status 2431 - versionDetails 2432 type: object 2433 version: v1 2434 versions: 2435 - name: v1 2436 served: true 2437 storage: true 2438 status: 2439 acceptedNames: 2440 kind: "" 2441 plural: "" 2442 conditions: [] 2443 storedVersions: []