apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: cstorpoolclusters.cstor.openebs.io spec: group: cstor.openebs.io names: kind: CStorPoolCluster listKind: CStorPoolClusterList plural: cstorpoolclusters shortNames: - cspc singular: cstorpoolcluster scope: Namespaced versions: - additionalPrinterColumns: - description: The number of healthy cStorPoolInstances jsonPath: .status.healthyInstances name: HealthyInstances type: integer - description: The number of provisioned cStorPoolInstances jsonPath: .status.provisionedInstances name: ProvisionedInstances type: integer - description: The number of desired cStorPoolInstances jsonPath: .status.desiredInstances name: DesiredInstances type: integer - description: Age of CStorPoolCluster jsonPath: .metadata.creationTimestamp name: Age type: date name: v1 schema: openAPIV3Schema: description: CStorPoolCluster describes a CStorPoolCluster custom resource. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' type: string kind: description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' type: string metadata: type: object spec: description: CStorPoolClusterSpec is the spec for a CStorPoolClusterSpec resource properties: auxResources: description: AuxResources are the compute resources required by the cstor-pool pod side car containers. nullable: true properties: limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object pools: description: Pools is the spec for pools for various nodes where it should be created. items: description: PoolSpec is the spec for pool on node where it should be created. properties: dataRaidGroups: description: DataRaidGroups is the raid group configuration for the given pool. items: description: RaidGroup contains the details of a raid group for the pool properties: blockDevices: items: description: CStorPoolInstanceBlockDevice contains the details of block devices that constitutes a raid group. properties: blockDeviceName: description: BlockDeviceName is the name of the block device. type: string capacity: description: Capacity is the capacity of the block device. It is system generated format: int64 type: integer devLink: description: DevLink is the dev link for block devices type: string required: - blockDeviceName type: object type: array required: - blockDevices type: object type: array nodeSelector: additionalProperties: type: string description: NodeSelector is the labels that will be used to select a node for pool provisioning. Required field type: object poolConfig: description: PoolConfig is the default pool config that applies to the pool on node. properties: auxResources: description: AuxResources are the compute resources required by the cstor-pool pod side car containers. nullable: true properties: limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object compression: description: 'Compression to enable compression Optional -- defaults to off Possible values : lz, off' type: string dataRaidGroupType: description: DataRaidGroupType is the raid type. type: string priorityClassName: description: PriorityClassName if specified applies to this pool pod If left empty, DefaultPriorityClassName is applied. (See CStorPoolClusterSpec.DefaultPriorityClassName) If both are empty, not priority class is applied. nullable: true type: string resources: description: Resources are the compute resources required by the cstor-pool container. nullable: true properties: limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object roThresholdLimit: description: 'ROThresholdLimit is threshold(percentage base) limit for pool read only mode. If ROThresholdLimit(%) amount of pool storage is reached then pool will set to readonly. NOTE: 1. If ROThresholdLimit is set to 100 then entire pool storage will be used by default it will be set to 85%. 2. ROThresholdLimit value will be 0 <= ROThresholdLimit <= 100.' nullable: true type: integer thickProvision: description: ThickProvision to enable thick provisioning Optional -- defaults to false type: boolean tolerations: description: Tolerations, if specified, the pool pod's tolerations. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: effect: description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. type: string key: description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string operator: description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. type: string tolerationSeconds: description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer value: description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. type: string type: object nullable: true type: array writeCacheGroupType: description: WriteCacheGroupType is the write cache raid type. type: string required: - dataRaidGroupType type: object writeCacheRaidGroups: description: WriteCacheRaidGroups is the write cache raid group. items: description: RaidGroup contains the details of a raid group for the pool properties: blockDevices: items: description: CStorPoolInstanceBlockDevice contains the details of block devices that constitutes a raid group. properties: blockDeviceName: description: BlockDeviceName is the name of the block device. type: string capacity: description: Capacity is the capacity of the block device. It is system generated format: int64 type: integer devLink: description: DevLink is the dev link for block devices type: string required: - blockDeviceName type: object type: array required: - blockDevices type: object nullable: true type: array required: - dataRaidGroups - nodeSelector type: object type: array priorityClassName: description: DefaultPriorityClassName if specified applies to all the pool pods in the pool spec if the priorityClass at the pool level is not specified. type: string resources: description: DefaultResources are the compute resources required by the cstor-pool container. If the resources at PoolConfig is not specified, this is written to CSPI PoolConfig. nullable: true properties: limits: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object requests: additionalProperties: anyOf: - type: integer - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true description: 'Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' type: object type: object tolerations: description: Tolerations, if specified, are the pool pod's tolerations If tolerations at PoolConfig is empty, this is written to CSPI PoolConfig. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching operator . properties: effect: description: Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute. type: string key: description: Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. type: string operator: description: Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. type: string tolerationSeconds: description: TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. format: int64 type: integer value: description: Value is the taint value the toleration matches to. If the operator is Exists, the value should be empty, otherwise just a regular string. type: string type: object nullable: true type: array type: object status: description: CStorPoolClusterStatus represents the latest available observations of a CSPC's current state. properties: conditions: description: Current state of CSPC. items: description: CStorPoolClusterCondition describes the state of a CSPC at a certain point. properties: lastTransitionTime: description: Last time the condition transitioned from one status to another. format: date-time type: string lastUpdateTime: description: The last time this condition was updated. format: date-time type: string message: description: A human readable message indicating details about the transition. type: string reason: description: The reason for the condition's last transition. type: string status: description: Status of the condition, one of True, False, Unknown. type: string type: description: Type of CSPC condition. type: string required: - status - type type: object nullable: true type: array desiredInstances: description: DesiredInstances is the number of CSPI(s) that should be provisioned. format: int32 nullable: true type: integer healthyInstances: description: HealthyInstances is the number of CSPI(s) that are healthy. format: int32 nullable: true type: integer provisionedInstances: description: ProvisionedInstances is the the number of CSPI present at the current state. format: int32 nullable: true type: integer type: object versionDetails: description: VersionDetails provides the details for upgrade properties: autoUpgrade: description: If AutoUpgrade is set to true then the resource is upgraded automatically without any manual steps type: boolean desired: description: Desired is the version that we want to upgrade or the control plane version type: string status: description: Status gives the status of reconciliation triggered when the desired and current version are not same properties: current: description: Current is the version of resource type: string dependentsUpgraded: description: DependentsUpgraded gives the details whether all children of a resource are upgraded to desired version or not type: boolean lastUpdateTime: description: LastUpdateTime is the time the status was last updated format: date-time nullable: true type: string message: description: Message is a human readable message if some error occurs type: string reason: description: Reason is the actual reason for the error state type: string state: description: State is the state of reconciliation type: string type: object type: object required: - spec type: object served: true storage: true subresources: {}