ReplicatedStorageClass

Scope: Cluster
Version: v1alpha1

ReplicatedStorageClass is a Kubernetes Custom Resource that defines a configuration for a Kubernetes Storage class.

  • spec
    object

    Required value

    Defines a Kubernetes Storage class configuration.

    Note that this field is in read-only mode.

    • spec.reclaimPolicy
      string

      Required value

      The storage class’s reclaim policy. Might be:

      • Delete (If the Persistent Volume Claim is deleted, deletes the Persistent Volume and its associated storage as well)
      • Retain (If the Persistent Volume Claim is deleted, remains the Persistent Volume and its associated storage)

      Allowed values: Delete, Retain

    • spec.replication
      string

      The Storage class’s replication mode. Might be:

      • None (in this mode the Storage class’s ‘placementCount’ and ‘AutoEvictMinReplicaCount’ params equal ‘1’)
      • Availability (in this mode the Storage class’s ‘placementCount’ and ‘AutoEvictMinReplicaCount’ params equal ‘2’)
      • ConsistencyAndAvailability (in this mode the Storage class’s ‘placementCount’ and ‘AutoEvictMinReplicaCount’ params equal ‘3’)

      Note that default Replication mode is ‘ConsistencyAndAvailability’.

      Default: "ConsistencyAndAvailability"

      Allowed values: None, Availability, ConsistencyAndAvailability

    • spec.storagePool
      string

      Required value

      Selected ReplicatedStoragePool resource’s name.

    • spec.topology
      string

      Required value

      The topology settings for the volumes in the created Storage class. Might be:

      • TransZonal - replicas of the volumes will be created in different zones (one replica per zone). To use this topology, the available zones must be specified in the ‘zones’ param, and the cluster nodes must have the topology.kubernetes.io/zone= label.
      • Zonal - all replicas of the volumes are created in the same zone that the scheduler selected to place the pod using this volume.
      • Ignored - the topology information will not be used to place replicas of the volumes. The replicas can be placed on any available nodes, with the restriction: no more than one replica of a given volume on one node.

      Note that the ‘Ignored’ value can be used only if there are no zones in the cluster (there are no nodes with the topology.kubernetes.io/zone label).

      Allowed values: TransZonal, Zonal, Ignored

    • spec.volumeAccess
      string

      The Storage class’s access mode. Might be:

      • Local (in this mode the Storage class’s ‘allowRemoteVolumeAccess’ param equals ‘false’ and Volume Binding mode equals ‘WaitForFirstConsumer’)
      • EventuallyLocal (in this mode the Storage class’s ‘allowRemoteVolumeAccess’ param equals ‘- fromSame:\n - topology.kubernetes.io/zone’, ‘auto-diskful’ param equals ‘30’ minutes, ‘auto-diskful-allow-cleanup’ param equals ‘true’, and Volume Binding mode equals ‘WaitForFirstConsumer’)
      • PreferablyLocal (in this mode the Storage class’s ‘allowRemoteVolumeAccess’ param equals ‘- fromSame:\n - topology.kubernetes.io/zone’, and Volume Binding mode equals ‘WaitForFirstConsumer’)
      • Any (in this mode the Storage class’s ‘allowRemoteVolumeAccess’ param equals ‘- fromSame:\n - topology.kubernetes.io/zone’, and Volume Binding mode equals ‘Immediate’)

      Note that the default Volume Access mode is ‘PreferablyLocal’.

      Default: "PreferablyLocal"

      Allowed values: Local, EventuallyLocal, PreferablyLocal, Any

    • spec.zones
      array of strings

      Array of zones the Storage class’s volumes should be replicated in. The controller will put a label with the Storage class’s name on the nodes which be actual used by the Storage class.

      Note that for Replication mode ‘Availability’ and ‘ConsistencyAndAvailability’ you have to select exactly 1 or 3 zones.