Skip to main content

CSI storage capacities

Supported Configurations
Running the control plane as a container with:

Sync CSIStorageCapacity resources from the host cluster to the virtual cluster if the .nodeTopology matches a synced node. Use this in conjunction with the virtual scheduler inside of vCluster for more advanced scheduling needs. Syncing the CSIStorageCapacity resources from the host helps the virtual scheduler make decisions about which node to schedule pods to.

CSIStorageCapacity is a namespaced resource. When synchronizing from the host cluster to the virtual cluster, all CSIStorageCapacity objects are synced into the kube-system namespace of the virtual cluster. During this process, the object name is transformed to the format <objname>-x-<namespace>, where <objname> is the original object name in the host cluster and <namespace> is the namespace in which the object originally existed in the host cluster.

When synchronizing from the virtual cluster back to the host cluster, a CSIStorageCapacity object is created in the host cluster only if it includes the physical location annotations normally added by the syncer. Specifically:

  • vcluster.loft.sh/object-name specifies the object name in the host cluster.
  • vcluster.loft.sh/object-namespace specifies the host cluster namespace. If these annotations are not present, the CSIStorageCapacity object will not be created or updated in the host cluster.
Physical annotations of CSIStorageCapacity
apiVersion: storage.k8s.io/v1
kind: CSIStorageCapacity
metadata:
name: fast-ssd-x-storage-v
namespace: kube-system
annotations:
vcluster.loft.sh/object-name: fast-ssd
vcluster.loft.sh/object-namespace: storage-v
# optional bookkeeping:
# vcluster.loft.sh/object-uid: "c1a2b3c4-..."
# vcluster.loft.sh/object-kind: "storage.k8s.io/v1, Kind=CSIStorageCapacity"

Default value

Default: enabled: auto.

Sync CSIStorageCapacities from the host to virtual cluster

Configure enabled: true if you aren't using the virtual schedular but want to sync CSIStorageCapacity resources.

sync:
fromHost:
csiStorageCapacities:
enabled: true

Config reference

csiStorageCapacities required object

CSIStorageCapacities defines if csi storage capacities should get synced from the host cluster to the virtual cluster, but not back. If auto, is automatically enabled when the virtual scheduler is enabled.

enabled required string|boolean auto

Enabled defines if this option should be enabled.

patches required object[]

Patches patch the resource according to the provided specification.

path required string

Path is the path within the patch to target. If the path is not found within the patch, the patch is not applied.

expression required string

Expression transforms the value according to the given JavaScript expression.

reverseExpression required string

ReverseExpression transforms the value according to the given JavaScript expression.

reference required object

Reference treats the path value as a reference to another object and will rewrite it based on the chosen mode automatically. In single-namespace mode this will translate the name to "vxxxxxxxxx" to avoid conflicts with other names, in multi-namespace mode this will not translate the name.

apiVersion required string

APIVersion is the apiVersion of the referenced object.

apiVersionPath required string

APIVersionPath is optional relative path to use to determine the kind. If APIVersionPath is not found, will fallback to apiVersion.

kind required string

Kind is the kind of the referenced object.

kindPath required string

KindPath is the optional relative path to use to determine the kind. If KindPath is not found, will fallback to kind.

namePath required string

NamePath is the optional relative path to the reference name within the object.

namespacePath required string

NamespacePath is the optional relative path to the reference namespace within the object. If omitted or not found, namespacePath equals to the metadata.namespace path of the object.

labels required object

Labels treats the path value as a labels selector.