apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 creationTimestamp: null name: cstorpoolinstances.cstor.openebs.io spec: group: cstor.openebs.io names: kind: CStorPoolInstance listKind: CStorPoolInstanceList plural: cstorpoolinstances shortNames: - cspi singular: cstorpoolinstance scope: Namespaced versions: - additionalPrinterColumns: - description: Host name where cstorpool instances scheduled jsonPath: .spec.hostName name: HostName type: string - description: The amount of storage space within the pool that has been physically allocated jsonPath: .status.capacity.used name: Allocated priority: 1 type: string - description: The amount of usable free space available in the pool jsonPath: .status.capacity.free name: Free type: string - description: Total amount of usable space in pool jsonPath: .status.capacity.total name: Capacity type: string - description: Identifies the pool read only mode jsonPath: .status.readOnly name: ReadOnly type: boolean - description: Represents no.of replicas present in the pool jsonPath: .status.provisionedReplicas name: ProvisionedReplicas type: integer - description: Represents no.of healthy replicas present in the pool jsonPath: .status.healthyReplicas name: HealthyReplicas type: integer - description: Represents the type of the storage pool jsonPath: .spec.poolConfig.dataRaidGroupType name: Type priority: 1 type: string - description: Identifies the current health of the pool jsonPath: .status.phase name: Status type: string - description: Age of CStorPoolInstance jsonPath: .metadata.creationTimestamp name: Age type: date name: v1 schema: openAPIV3Schema: description: CStorPoolInstance describes a cstor pool instance 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: Spec is the specification of the cstorpoolinstance resource. 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 hostName: description: HostName is the name of kubernetes node where the pool should be created. type: string 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 status: description: Status is the possible statuses of the cstorpoolinstance resource. properties: capacity: description: Capacity describes the capacity details of a cstor pool properties: free: anyOf: - type: integer - type: string description: Amount of usable space in the pool after excluding metadata and raid parity pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true total: anyOf: - type: integer - type: string description: Sum of usable capacity in all the data raidgroups pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true used: anyOf: - type: integer - type: string description: Amount of physical data (and its metadata) written to pool after applying compression, etc.., pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true zfs: description: ZFSCapacityAttributes contains advanced information about pool capacity details properties: logicalUsed: anyOf: - type: integer - type: string description: LogicalUsed is the amount of space that is "logically" consumed by this pool and all its descendents. The logical space ignores the effect of the compression and copies properties, giving a quantity closer to the amount of data that applications see. However, it does include space consumed by metadata. pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true required: - logicalUsed type: object required: - free - total - used - zfs type: object conditions: description: Current state of CSPI with details. items: description: CSPIConditionType describes the state of a CSPI 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 type: array healthyReplicas: description: HealthyReplicas describes the total count of healthy Volume Replicas in the cstor pool format: int32 type: integer phase: description: The phase of a CStorPool is a simple, high-level summary of the pool state on the node. type: string provisionedReplicas: description: ProvisionedReplicas describes the total count of Volume Replicas present in the cstor pool format: int32 type: integer readOnly: description: ReadOnly if pool is readOnly or not type: boolean required: - healthyReplicas - provisionedReplicas - readOnly type: object versionDetails: description: VersionDetails is the openebs version. 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: {}