From f570647fdb373d0e333e997857e8f503d28ea6a3 Mon Sep 17 00:00:00 2001 From: Manohar Reddy Date: Wed, 12 Aug 2026 16:03:41 +0200 Subject: [PATCH 1/2] docs: sync Pool -> StoragePool CRD rename and maxLogicalVolumeCount -> maxSubsystemCount Matches simplyblock-operator#413 (field rename) and #414 (CRD kind rename), both merged into operator main. Regenerated docs/reference/operator/reference.md via scripts/operator-reference-gen.sh against operator main, isolating just the delta these two changes introduce (the checked-in reference.md is separately behind operator main by other unrelated merged PRs, left untouched here). Co-Authored-By: Claude Sonnet 5 --- .../installation/k8s-storage-plane.md | 8 +- .../scaling/expanding-storage-cluster.md | 8 +- docs/reference/operator/index.md | 10 +- docs/reference/operator/reference.md | 267 ++++++++++++++++++ 4 files changed, 280 insertions(+), 13 deletions(-) diff --git a/docs/kubernetes/installation/k8s-storage-plane.md b/docs/kubernetes/installation/k8s-storage-plane.md index 479cdaa9..57d438c9 100644 --- a/docs/kubernetes/installation/k8s-storage-plane.md +++ b/docs/kubernetes/installation/k8s-storage-plane.md @@ -119,7 +119,7 @@ metadata: namespace: simplyblock spec: clusterName: simplyblock-cluster - maxLogicalVolumeCount: 20 + maxSubsystemCount: 20 workerNodes: - worker-1.example.com - worker-2.example.com @@ -177,12 +177,12 @@ For a full list of configuration options see [Simplyblock Operator: StorageNodeS ## Create a Storage Pool -A storage pool is a grouping of logical volumes and capacity limits within the cluster. An initial `Pool` resource must +A storage pool is a grouping of logical volumes and capacity limits within the cluster. An initial `StoragePool` resource must be created to define a storage pool before being able to provision volumes. ```yaml title="storage-pool.yaml" apiVersion: storage.simplyblock.io/v1alpha1 -kind: Pool +kind: StoragePool metadata: name: production-pool namespace: simplyblock @@ -198,7 +198,7 @@ kubectl apply -f storage-pool.yaml The status of the storage pool can be checked with: ```bash title="Check the pool status" -kubectl get simplyblockpool -n simplyblock +kubectl get storagepools -n simplyblock ``` Once the pool is active, the operator automatically creates a StorageClass named diff --git a/docs/kubernetes/operations/scaling/expanding-storage-cluster.md b/docs/kubernetes/operations/scaling/expanding-storage-cluster.md index f50f4527..ffd5a43f 100644 --- a/docs/kubernetes/operations/scaling/expanding-storage-cluster.md +++ b/docs/kubernetes/operations/scaling/expanding-storage-cluster.md @@ -56,7 +56,7 @@ metadata: spec: clusterName: simplyblock-cluster expand: true - maxLogicalVolumeCount: 20 + maxSubsystemCount: 20 partitions: 0 corePercentage: 50 workerNodes: @@ -75,7 +75,7 @@ metadata: spec: clusterName: simplyblock-cluster expand: true - maxLogicalVolumeCount: 20 + maxSubsystemCount: 20 partitions: 0 corePercentage: 50 workerNodes: @@ -104,7 +104,7 @@ kubectl get storagenodes -n simplyblock ### Option B: Add a Single Node via StorageNode CR -For cases that need per-node overrides (custom `maxLogicalVolumeCount`, `spdkSystemMemory`, etc.) or a +For cases that need per-node overrides (custom `maxSubsystemCount`, `spdkSystemMemory`, etc.) or a single node added manually, create a `StorageNode` CR directly. Set `overrides.expand: true` so the backend treats it as an expansion add rather than a fresh cluster node. @@ -123,7 +123,7 @@ spec: socketIndex: 0 overrides: expand: true - maxLogicalVolumeCount: 20 + maxSubsystemCount: 20 ``` ```bash title="Apply the StorageNode CR" diff --git a/docs/reference/operator/index.md b/docs/reference/operator/index.md index 7a0cb307..f4f76f33 100644 --- a/docs/reference/operator/index.md +++ b/docs/reference/operator/index.md @@ -19,7 +19,7 @@ The operator manages the following Custom Resource Definitions (CRDs): | [`StorageNodeSet`](reference.md#storagenodeset) | - | Fleet-level declarative management of storage nodes across workers | | [`StorageNode`](reference.md#storagenode) | - | Represents a single backend storage node instance (auto-created) | | [`StorageNodeOps`](reference.md#storagenodeops) | - | One-shot operational action targeting a single storage node | -| [`Pool`](reference.md#storagepool) | - | Creates and manages storage pools | +| [`StoragePool`](reference.md#storagepool) | - | Creates and manages storage pools | | [`Task`](reference.md#task) | - | Monitors cluster tasks and their status | | [`StorageBackup`](reference.md#storagebackup) | - | Creates a one-time backup of a PVC to S3 | | [`BackupRestore`](reference.md#backuprestore) | - | Restores a backup into a new PVC | @@ -292,13 +292,13 @@ See [Pinned Volume Migration During Node Removal](../../kubernetes/operations/no ## Storage Pool -The `Pool` resource creates and manages storage pools. When a pool becomes active, the operator automatically +The `StoragePool` resource creates and manages storage pools. When a pool becomes active, the operator automatically creates a Kubernetes `StorageClass` named `simplyblock---`. The StorageClass is deleted when the pool is deleted. ```yaml title="Example: Create a storage pool" apiVersion: storage.simplyblock.io/v1alpha1 -kind: Pool +kind: StoragePool metadata: name: production-pool namespace: simplyblock @@ -313,11 +313,11 @@ spec: write: 1024 ``` -The complete set of `Pool` fields is available in [Pool reference](reference.md#storagepool). +The complete set of `StoragePool` fields is available in [StoragePool reference](reference.md#storagepool). ### Auto-Created StorageClass -The pool identifier is the `Pool` resource name (`metadata.name`). The operator uses that name as the backend pool +The pool identifier is the `StoragePool` resource name (`metadata.name`). The operator uses that name as the backend pool name and as the `pool_name` CSI StorageClass parameter. When the pool reaches an active state, the operator creates a `StorageClass` with: diff --git a/docs/reference/operator/reference.md b/docs/reference/operator/reference.md index 14b426ca..e7ab2646 100644 --- a/docs/reference/operator/reference.md +++ b/docs/reference/operator/reference.md @@ -2941,6 +2941,273 @@ allowedNodes: +#### StoragePool + + + +StoragePool is the Schema for the storagepools API + + + + + +_Example:_ + +```yaml +apiVersion: storage.simplyblock.io/v1alpha1 +kind: StoragePool +metadata: + name: string +spec: + clusterName: string + status: string + capacityLimit: string + logicalVolumeMaxSize: string + dhchap: boolean + allowedNodes: + - string + qos: + iops: integer + throughput: + read: integer + readWrite: integer + write: integer + action: string + storageClassParameters: + qosRwIops: string + qosRwMbytes: string + qosRMbytes: string + qosWMbytes: string + compression: string + encryption: boolean + replicate: boolean + lvolPriorityClass: string + fabric: string + maxNamespacePerSubsys: string + tune2fsReservedBlocks: string + filesystem: string +status: + uuid: string + status: string + qos: + host: string + iops: integer + throughput: + read: integer + readWrite: integer + write: integer + allowedNodes: + - string +``` + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `apiVersion` _string_ | `storage.simplyblock.io/v1alpha1` | | | +| `kind` _string_ | `StoragePool` | | | +| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
| +| `spec` _[StoragePoolSpec](#storagepoolspec)_ | spec defines the desired state of StoragePool | | Required: \{\}
| +| `status` _[StoragePoolStatus](#storagepoolstatus)_ | status defines the observed state of StoragePool | | Optional: \{\}
| + + +#### StoragePoolQoSSpec + + + +StoragePoolQoSSpec defines pool QosSpec limits. + + + +_Appears in:_ +- [StoragePoolSpec](#storagepoolspec) + +_Example:_ + +```yaml +iops: integer +throughput: + read: integer + readWrite: integer + write: integer +``` + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `iops` _integer_ | IOPS is the IOPS limit for the pool. | | | +| `throughput` _[StoragePoolQoSThroughputSpec](#storagepoolqosthroughputspec)_ | Throughput contains throughput limits for the pool. | | | + + +#### StoragePoolQoSStatus + + + +StoragePoolQoSStatus defines observed pool QosSpec values. + + + +_Appears in:_ +- [StoragePoolStatus](#storagepoolstatus) + +_Example:_ + +```yaml +host: string +iops: integer +throughput: + read: integer + readWrite: integer + write: integer +``` + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `host` _string_ | Host is the backend host handling pool QosSpec enforcement. | | | +| `iops` _integer_ | IOPS is the observed/configured IOPS value. | | | +| `throughput` _[StoragePoolQoSThroughputStatus](#storagepoolqosthroughputstatus)_ | Throughput contains observed/configured throughput values. | | | + + +#### StoragePoolQoSThroughputSpec + + + +StoragePoolQoSThroughputSpec defines throughput QosSpec limits in MiB/s. + + + +_Appears in:_ +- [StoragePoolQoSSpec](#storagepoolqosspec) + +_Example:_ + +```yaml +read: integer +readWrite: integer +write: integer +``` + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `read` _integer_ | Read is the read throughput limit for the pool. | | | +| `readWrite` _integer_ | ReadWrite is the combined read/write throughput limit for the pool. | | | +| `write` _integer_ | Write is the write throughput limit for the pool. | | | + + +#### StoragePoolQoSThroughputStatus + + + +StoragePoolQoSThroughputStatus defines observed throughput QosSpec values in MiB/s. + + + +_Appears in:_ +- [StoragePoolQoSStatus](#storagepoolqosstatus) + +_Example:_ + +```yaml +read: integer +readWrite: integer +write: integer +``` + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `read` _integer_ | Read is the observed/configured read throughput value. | | | +| `readWrite` _integer_ | ReadWrite is the observed/configured combined read/write throughput value. | | | +| `write` _integer_ | Write is the observed/configured write throughput value. | | | + + +#### StoragePoolSpec + + + +StoragePoolSpec defines the desired state of StoragePool + + + +_Appears in:_ +- [StoragePool](#storagepool) + +_Example:_ + +```yaml +clusterName: string +status: string +capacityLimit: string +logicalVolumeMaxSize: string +dhchap: boolean +allowedNodes: + - string +qos: + iops: integer + throughput: + read: integer + readWrite: integer + write: integer +action: string +storageClassParameters: + qosRwIops: string + qosRwMbytes: string + qosRMbytes: string + qosWMbytes: string + compression: string + encryption: boolean + replicate: boolean + lvolPriorityClass: string + fabric: string + maxNamespacePerSubsys: string + tune2fsReservedBlocks: string + filesystem: string +``` + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `clusterName` _string_ | ClusterName is the target storage cluster name. | | | +| `status` _string_ | Status is an optional desired-status hint for backend workflows.
FIXME: Unused for now | | | +| `capacityLimit` _string_ | CapacityLimit is the maximum aggregate capacity that can be allocated from this pool.
This maps to sbctl pool add --pool-max. Use sizes like 20M, 20G, or 0 for unlimited. | | | +| `logicalVolumeMaxSize` _string_ | LogicalVolumeMaxSize is the maximum size allowed for any single logical volume
created in this pool. This maps to sbctl pool add --lvol-max. Use sizes like
20M, 20G, or 0 for unlimited. | | | +| `dhchap` _boolean_ | DHCHAP enables DH-HMAC-CHAP key generation for the pool. Authentication is only
enforced when allowedNodes is non-empty. Also controls whether the StoragePool's StorageClass
gets an allowedTopologies restriction, which — like StorageClass Parameters — is
immutable in the Kubernetes API, hence this field is immutable too. | false | | +| `allowedNodes` _string array_ | AllowedNodes is the list of Kubernetes worker node names allowed to access volumes
in this pool. The operator resolves each node name to a deterministic NQN derived
from the node's UID: nqn.2014-08.io.simplyblock:uuid:.
The CSI node uses the same formula so no manual NQN management is required. | | | +| `qos` _[StoragePoolQoSSpec](#storagepoolqosspec)_ | QosSpec defines QosSpec limits for the pool. | | | +| `action` _string_ | Action triggers an imperative pool operation.
FIXME: Unused for now | | | +| `storageClassParameters` _[StorageClassParameters](#storageclassparameters)_ | StorageClassParameters sets default StorageClass parameter values for volumes in this pool.
Immutable: the underlying StorageClass's Parameters/AllowedTopologies cannot be patched in
the Kubernetes API once created, so there is no supported way to change these after the
fact. Create a new StoragePool to provision volumes with different settings. | \{ \} | | + + +#### StoragePoolStatus + + + +StoragePoolStatus defines the observed state of StoragePool. + + + +_Appears in:_ +- [StoragePool](#storagepool) + +_Example:_ + +```yaml +uuid: string +status: string +qos: + host: string + iops: integer + throughput: + read: integer + readWrite: integer + write: integer +allowedNodes: + - string +``` + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `uuid` _string_ | UUID is the backend pool UUID. | | | +| `status` _string_ | Status is the backend lifecycle status. | | | +| `qos` _[StoragePoolQoSStatus](#storagepoolqosstatus)_ | QoS contains observed/configured QoS values. | | | +| `allowedNodes` _string array_ | AllowedNodes lists the Kubernetes node names currently registered on the backend. | | | + + From 66730f6ee7856393b40e6fbd3a25d79a26afe158 Mon Sep 17 00:00:00 2001 From: "Christoph Engelbert (noctarius)" Date: Fri, 21 Aug 2026 18:14:00 +0200 Subject: [PATCH 2/2] docs: correct CRD field placement and drop duplicated generated reference The Pool -> StoragePool rename is correct and kept. Three problems in the accompanying changes are fixed here, all verified against the operator CRDs in simplyblock-operator (operator/api/v1alpha1, operator/config/crd/bases). maxSubsystemCount is a required field on StorageCluster only. It is not part of StorageNodeSetSpec or StorageNodeOverrides, so renaming the removed maxLogicalVolumeCount to it moved a valid field onto the wrong CRDs. Because CRDs prune unknown fields, those manifests would have applied cleanly and silently done nothing. The field is removed from the StorageNodeSet and StorageNode examples instead. partitions and corePercentage do not exist on StorageNodeSet either and were already removed from the operator reference on main. They are dropped from the expansion examples as well. The StoragePool section appended to docs/reference/operator/reference.md was a byte-identical duplicate of the section already generated on main, which gave the page two #storagepool anchors. That file is generated and is reverted; it is regenerated with scripts/operator-reference-gen.sh, never edited by hand. Co-Authored-By: Claude Opus 5 (1M context) --- .../installation/k8s-storage-plane.md | 1 - .../scaling/expanding-storage-cluster.md | 10 +- docs/reference/operator/reference.md | 267 ------------------ 3 files changed, 2 insertions(+), 276 deletions(-) diff --git a/docs/kubernetes/installation/k8s-storage-plane.md b/docs/kubernetes/installation/k8s-storage-plane.md index 57d438c9..b7d7e154 100644 --- a/docs/kubernetes/installation/k8s-storage-plane.md +++ b/docs/kubernetes/installation/k8s-storage-plane.md @@ -119,7 +119,6 @@ metadata: namespace: simplyblock spec: clusterName: simplyblock-cluster - maxSubsystemCount: 20 workerNodes: - worker-1.example.com - worker-2.example.com diff --git a/docs/kubernetes/operations/scaling/expanding-storage-cluster.md b/docs/kubernetes/operations/scaling/expanding-storage-cluster.md index ffd5a43f..e5726748 100644 --- a/docs/kubernetes/operations/scaling/expanding-storage-cluster.md +++ b/docs/kubernetes/operations/scaling/expanding-storage-cluster.md @@ -56,9 +56,6 @@ metadata: spec: clusterName: simplyblock-cluster expand: true - maxSubsystemCount: 20 - partitions: 0 - corePercentage: 50 workerNodes: - new-node-4.example.com - new-node-5.example.com @@ -75,9 +72,6 @@ metadata: spec: clusterName: simplyblock-cluster expand: true - maxSubsystemCount: 20 - partitions: 0 - corePercentage: 50 workerNodes: - new-node-4.example.com - new-node-5.example.com @@ -104,7 +98,7 @@ kubectl get storagenodes -n simplyblock ### Option B: Add a Single Node via StorageNode CR -For cases that need per-node overrides (custom `maxSubsystemCount`, `spdkSystemMemory`, etc.) or a +For cases that need per-node overrides (custom `spdkSystemMemory`, `failureDomain`, etc.) or a single node added manually, create a `StorageNode` CR directly. Set `overrides.expand: true` so the backend treats it as an expansion add rather than a fresh cluster node. @@ -123,7 +117,7 @@ spec: socketIndex: 0 overrides: expand: true - maxSubsystemCount: 20 + spdkSystemMemory: "4G" ``` ```bash title="Apply the StorageNode CR" diff --git a/docs/reference/operator/reference.md b/docs/reference/operator/reference.md index e7ab2646..14b426ca 100644 --- a/docs/reference/operator/reference.md +++ b/docs/reference/operator/reference.md @@ -2941,273 +2941,6 @@ allowedNodes: -#### StoragePool - - - -StoragePool is the Schema for the storagepools API - - - - - -_Example:_ - -```yaml -apiVersion: storage.simplyblock.io/v1alpha1 -kind: StoragePool -metadata: - name: string -spec: - clusterName: string - status: string - capacityLimit: string - logicalVolumeMaxSize: string - dhchap: boolean - allowedNodes: - - string - qos: - iops: integer - throughput: - read: integer - readWrite: integer - write: integer - action: string - storageClassParameters: - qosRwIops: string - qosRwMbytes: string - qosRMbytes: string - qosWMbytes: string - compression: string - encryption: boolean - replicate: boolean - lvolPriorityClass: string - fabric: string - maxNamespacePerSubsys: string - tune2fsReservedBlocks: string - filesystem: string -status: - uuid: string - status: string - qos: - host: string - iops: integer - throughput: - read: integer - readWrite: integer - write: integer - allowedNodes: - - string -``` - -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `apiVersion` _string_ | `storage.simplyblock.io/v1alpha1` | | | -| `kind` _string_ | `StoragePool` | | | -| `metadata` _[ObjectMeta](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectmeta-v1-meta)_ | Refer to Kubernetes API documentation for fields of `metadata`. | | Optional: \{\}
| -| `spec` _[StoragePoolSpec](#storagepoolspec)_ | spec defines the desired state of StoragePool | | Required: \{\}
| -| `status` _[StoragePoolStatus](#storagepoolstatus)_ | status defines the observed state of StoragePool | | Optional: \{\}
| - - -#### StoragePoolQoSSpec - - - -StoragePoolQoSSpec defines pool QosSpec limits. - - - -_Appears in:_ -- [StoragePoolSpec](#storagepoolspec) - -_Example:_ - -```yaml -iops: integer -throughput: - read: integer - readWrite: integer - write: integer -``` - -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `iops` _integer_ | IOPS is the IOPS limit for the pool. | | | -| `throughput` _[StoragePoolQoSThroughputSpec](#storagepoolqosthroughputspec)_ | Throughput contains throughput limits for the pool. | | | - - -#### StoragePoolQoSStatus - - - -StoragePoolQoSStatus defines observed pool QosSpec values. - - - -_Appears in:_ -- [StoragePoolStatus](#storagepoolstatus) - -_Example:_ - -```yaml -host: string -iops: integer -throughput: - read: integer - readWrite: integer - write: integer -``` - -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `host` _string_ | Host is the backend host handling pool QosSpec enforcement. | | | -| `iops` _integer_ | IOPS is the observed/configured IOPS value. | | | -| `throughput` _[StoragePoolQoSThroughputStatus](#storagepoolqosthroughputstatus)_ | Throughput contains observed/configured throughput values. | | | - - -#### StoragePoolQoSThroughputSpec - - - -StoragePoolQoSThroughputSpec defines throughput QosSpec limits in MiB/s. - - - -_Appears in:_ -- [StoragePoolQoSSpec](#storagepoolqosspec) - -_Example:_ - -```yaml -read: integer -readWrite: integer -write: integer -``` - -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `read` _integer_ | Read is the read throughput limit for the pool. | | | -| `readWrite` _integer_ | ReadWrite is the combined read/write throughput limit for the pool. | | | -| `write` _integer_ | Write is the write throughput limit for the pool. | | | - - -#### StoragePoolQoSThroughputStatus - - - -StoragePoolQoSThroughputStatus defines observed throughput QosSpec values in MiB/s. - - - -_Appears in:_ -- [StoragePoolQoSStatus](#storagepoolqosstatus) - -_Example:_ - -```yaml -read: integer -readWrite: integer -write: integer -``` - -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `read` _integer_ | Read is the observed/configured read throughput value. | | | -| `readWrite` _integer_ | ReadWrite is the observed/configured combined read/write throughput value. | | | -| `write` _integer_ | Write is the observed/configured write throughput value. | | | - - -#### StoragePoolSpec - - - -StoragePoolSpec defines the desired state of StoragePool - - - -_Appears in:_ -- [StoragePool](#storagepool) - -_Example:_ - -```yaml -clusterName: string -status: string -capacityLimit: string -logicalVolumeMaxSize: string -dhchap: boolean -allowedNodes: - - string -qos: - iops: integer - throughput: - read: integer - readWrite: integer - write: integer -action: string -storageClassParameters: - qosRwIops: string - qosRwMbytes: string - qosRMbytes: string - qosWMbytes: string - compression: string - encryption: boolean - replicate: boolean - lvolPriorityClass: string - fabric: string - maxNamespacePerSubsys: string - tune2fsReservedBlocks: string - filesystem: string -``` - -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `clusterName` _string_ | ClusterName is the target storage cluster name. | | | -| `status` _string_ | Status is an optional desired-status hint for backend workflows.
FIXME: Unused for now | | | -| `capacityLimit` _string_ | CapacityLimit is the maximum aggregate capacity that can be allocated from this pool.
This maps to sbctl pool add --pool-max. Use sizes like 20M, 20G, or 0 for unlimited. | | | -| `logicalVolumeMaxSize` _string_ | LogicalVolumeMaxSize is the maximum size allowed for any single logical volume
created in this pool. This maps to sbctl pool add --lvol-max. Use sizes like
20M, 20G, or 0 for unlimited. | | | -| `dhchap` _boolean_ | DHCHAP enables DH-HMAC-CHAP key generation for the pool. Authentication is only
enforced when allowedNodes is non-empty. Also controls whether the StoragePool's StorageClass
gets an allowedTopologies restriction, which — like StorageClass Parameters — is
immutable in the Kubernetes API, hence this field is immutable too. | false | | -| `allowedNodes` _string array_ | AllowedNodes is the list of Kubernetes worker node names allowed to access volumes
in this pool. The operator resolves each node name to a deterministic NQN derived
from the node's UID: nqn.2014-08.io.simplyblock:uuid:.
The CSI node uses the same formula so no manual NQN management is required. | | | -| `qos` _[StoragePoolQoSSpec](#storagepoolqosspec)_ | QosSpec defines QosSpec limits for the pool. | | | -| `action` _string_ | Action triggers an imperative pool operation.
FIXME: Unused for now | | | -| `storageClassParameters` _[StorageClassParameters](#storageclassparameters)_ | StorageClassParameters sets default StorageClass parameter values for volumes in this pool.
Immutable: the underlying StorageClass's Parameters/AllowedTopologies cannot be patched in
the Kubernetes API once created, so there is no supported way to change these after the
fact. Create a new StoragePool to provision volumes with different settings. | \{ \} | | - - -#### StoragePoolStatus - - - -StoragePoolStatus defines the observed state of StoragePool. - - - -_Appears in:_ -- [StoragePool](#storagepool) - -_Example:_ - -```yaml -uuid: string -status: string -qos: - host: string - iops: integer - throughput: - read: integer - readWrite: integer - write: integer -allowedNodes: - - string -``` - -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `uuid` _string_ | UUID is the backend pool UUID. | | | -| `status` _string_ | Status is the backend lifecycle status. | | | -| `qos` _[StoragePoolQoSStatus](#storagepoolqosstatus)_ | QoS contains observed/configured QoS values. | | | -| `allowedNodes` _string array_ | AllowedNodes lists the Kubernetes node names currently registered on the backend. | | | - -