The module lifecycle stageGeneral Availability

Available with limitations in CE

Available without limitations in:  SE, SE+, EE

Enabling the module

To enable the sds-local-volume module, follow these steps:

All commands must be run on a machine with access to the Kubernetes API and administrator privileges.

  1. Enable the sds-local-volume module:

    d8 k apply -f - <<EOF
    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: sds-local-volume
    spec:
      enabled: true
      version: 1
      settings:
        enableThinProvisioning: true # if you plan to use LVM-thin volumes
    EOF
    
  2. Wait for the sds-local-volume module to transition to the Ready state:

    d8 k get modules sds-local-volume -w
    
  3. Verify that the module pods are running:

    d8 k -n d8-sds-local-volume get pod -owide
    d8 k -n d8-sds-node-configurator get pod -o wide
    

For detailed module setup instructions, see the Quick start section.

How to explicitly enable the module…

You may explicitly enable or disable the module in one of the following ways:

  • Via Deckhouse web UI. In the “System” → “System Management” → “Deckhouse” → “Modules” section, open the sds-local-volume module and enable (or disable) the “Module enabled” toggle. Save changes.

    Example:

    Module enable/disable interface
  • Via Deckhouse CLI (d8).

    Use the d8 system module enable command for enabling, or d8 system module disable command for disabling the module (you need Deckhouse CLI (d8), configured to work with the cluster).

    Example of enabling the module:

    d8 system module enable sds-local-volume
    
  • Using ModuleConfig sds-local-volume.

    Set spec.enabled to true or false in ModuleConfig sds-local-volume (create it if necessary);

    Example of a manifest to enable module sds-local-volume:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: sds-local-volume
    spec:
      enabled: true
    

How to configure the module…

You can configure the module in one of the following ways:

  • Via Deckhouse web UI.

    In the “System” → “System Management” → “Deckhouse” → “Modules” section, open the sds-local-volume module and enable the “Advanced Settings” switch. Fill in the required fields in the “Configuration” tab or specify the module settings in YAML format on the “YAML” tab, excluding the settings section. Save the changes.

    Example:

    Module Setup Interface

    You can also edit the ModuleConfig object sds-local-volume on the “YAML” tab in the module settings window (“System” → “System Management” → “Deckhouse” → “Modules”, open the module sds-local-volume) by specifying the schema version in the spec.version parameter and the necessary module parameters in the spec.settings section.

  • Via Deckhouse CLI (d8) (requires Deckhouse CLI (d8) configured to work with the cluster).

    Edit the existing ModuleConfig sds-local-volume (for more details on configuring Deckhouse, see the documentation) by executing the following command:

    d8 k edit mc sds-local-volume
    

    Make the necessary changes in the spec.settings section. If necessary, specify the schema version in the spec.version parameter. Save the changes.

    You can also create a file with manifest for ModuleConfig sds-local-volume using the example below. Fill in the spec.settings section with the required module parameters. If necessary, specify the schema version in the spec.version parameter.

    Apply the manifest using the following command (indicate the manifest file name):

    d8 k apply -f <FILENAME>
    

    Example of a manifest for ModuleConfig sds-local-volume:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: sds-local-volume
    spec:
      version: 1
      enabled: true
      settings: # Module parameters from the "Parameters" section below.
    

Requirements

To the Deckhouse version: 1.67 and above.

To the versions of other modules:

  • sds-node-configurator: any version.
  • snapshot-controller: any version.

Parameters

Schema version: 1

  • settings
    object
    • settings.dataNodes
      object
      Settings for local volumes csi on nodes with data

      Default: {}

      • settings.dataNodes.nodeSelector
        object

        The same as in the Pods spec.nodeSelector parameter in Kubernetes.

        If parameter is omitted, local volume csi will be placed on all nodes.

        Caution! Changing this parameter does not result in data redistribution. If node with data no longer matches the nodeSelector, data on that node will become inaccessible.

        Default: { "kubernetes.io/os": "linux" }

    • settings.enableThinProvisioning
      boolean
      Allow thin LVM volumes usage

      Default: false

    • settings.logLevel
      string
      Module log level

      Default: DEBUG

      Allowed values: ERROR, WARN, INFO, DEBUG, TRACE