The module lifecycle stageExperimental
The module has requirements for installation

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-elastic 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-elastic
  • Using ModuleConfig sds-elastic.

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

    Example of a manifest to enable module sds-elastic:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: sds-elastic
    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-elastic 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-elastic on the “YAML” tab in the module settings window (“System” → “System Management” → “Deckhouse” → “Modules”, open the module sds-elastic) 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-elastic (for more details on configuring Deckhouse, see the documentation) by executing the following command:

    d8 k edit mc sds-elastic

    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-elastic 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-elastic:

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

How to change the module release channel…

To change the module release channel, follow the instruction.

Requirements

To the Deckhouse version: 1.72 and above.

To the versions of other modules:

  • csi-ceph: 0.5.26 and above.
  • sds-node-configurator: 0.6.8 and above.

Parameters

Schema version: 1

  • settings
    object
    • settings.controller
      object
      Settings of the sds-elastic-controller (reconciler for ElasticCluster, ElasticStorageClass and ElasticClusterCredential CRs).

      Default: {}

      • settings.controller.resourcesManagement
        sds-elastic-controller resources management options. Same shape as the Rook operator resourcesManagement below.

        Default: {}

        Example:


        mode: VPA
        vpa:
          cpu:
            limitRatio: 1.5
            max: 200m
            min: 50m
          memory:
            limitRatio: 1.5
            max: 256Mi
            min: 64Mi
          mode: Auto
        
        • settings.controller.resourcesManagement.mode
          string
          The mode for managing resource requests. Classical Static requests/limits or VPA.

          Default: VPA

          Allowed values: VPA, Static

        • settings.controller.resourcesManagement.static
          object
          Static resource management settings.
          • settings.controller.resourcesManagement.static.limits
            object
            Resource limits for the controller pod.
            • settings.controller.resourcesManagement.static.limits.cpu
              CPU limit.
            • settings.controller.resourcesManagement.static.limits.memory
              Memory limit.
          • settings.controller.resourcesManagement.static.requests
            object
            Resource requests for the controller pod.
            • settings.controller.resourcesManagement.static.requests.cpu
              CPU request.
            • settings.controller.resourcesManagement.static.requests.memory
              Memory request.
        • settings.controller.resourcesManagement.vpa
          object
          Parameters of the VPA mode.

          Default: {}

          • settings.controller.resourcesManagement.vpa.cpu
            object
            CPU-related parameters.

            Default: {}

            • settings.controller.resourcesManagement.vpa.cpu.limitRatio
              number

              Coefficient used to calculate the initial CPU limit from the request.

              VPA preserves the resulting limits/requests ratio during further resource tuning.

            • settings.controller.resourcesManagement.vpa.cpu.max
              Maximum allowed CPU requests.

              Default: 200m

            • settings.controller.resourcesManagement.vpa.cpu.min
              Minimum allowed CPU requests.

              Default: 50m

          • settings.controller.resourcesManagement.vpa.memory
            object
            Memory-related parameters.

            Default: {}

            • settings.controller.resourcesManagement.vpa.memory.limitRatio
              number

              Coefficient used to calculate the initial memory limit from the request.

              VPA preserves the resulting limits/requests ratio during further resource tuning.

            • settings.controller.resourcesManagement.vpa.memory.max
              Maximum allowed memory requests.

              Default: 256Mi

            • settings.controller.resourcesManagement.vpa.memory.min
              Minimum allowed memory requests.

              Default: 64Mi

          • settings.controller.resourcesManagement.vpa.mode
            string
            The VPA usage mode.

            Default: Auto

            Allowed values: Initial, Auto

    • settings.dataNodes
      object

      Settings that select Kubernetes Nodes eligible to host sds-elastic data.

      sds-elastic places the storage.deckhouse.io/sds-elastic-node="" label on every Node that matches dataNodes.nodeSelector, and removes the label from Nodes that no longer match. Downstream components (sds-node-configurator agent, ElasticCluster placement) consume this label as a node-affinity term.

      Default: {}

      • settings.dataNodes.nodeSelector
        object

        Same shape as Pods’ spec.nodeSelector: a map of node labels that must all match for a Node to be considered a data node.

        If the parameter is omitted, the empty selector matches every Node in the cluster.

        Caution! Changing this parameter does not redistribute data. If a Node hosting data no longer matches the selector, its storage.deckhouse.io/sds-elastic-node label is removed and the data on that Node becomes unreachable until the Node is brought back under the selector.

        Default: {}

    • settings.nodeSelector
      object
      The same as in the Pods’ spec.nodeSelector parameter in Kubernetes. If the parameter is omitted or false, nodeSelector will be determined automatically.
    • settings.resourcesManagement
      Rook Ceph Operator resources management options.

      Default: {}

      Examples:


      mode: VPA
      vpa:
        cpu:
          limitRatio: 1.5
          max: 250m
          min: 50m
        memory:
          limitRatio: 1.5
          max: 512Mi
          min: 256Mi
        mode: Auto
      
      mode: Static
      static:
        limits:
          cpu: 250m
          memory: 512Mi
        requests:
          cpu: 55m
          memory: 256Mi
      
      • settings.resourcesManagement.mode
        string
        The mode for managing resource requests. Classical Static requests/limit or VPA.

        Default: VPA

        Allowed values: VPA, Static

      • settings.resourcesManagement.static
        object
        Static resource management settings.
        • settings.resourcesManagement.static.limits
          object
          Limits configuration.
          • settings.resourcesManagement.static.limits.cpu
            CPU limits.
          • settings.resourcesManagement.static.limits.memory
            Memory limits.
        • settings.resourcesManagement.static.requests
          object
          Requests configuration.
          • settings.resourcesManagement.static.requests.cpu
            CPU requests.
          • settings.resourcesManagement.static.requests.memory
            Memory requests.
      • settings.resourcesManagement.vpa
        object
        Parameters of the VPA mode.

        Default: {}

        • settings.resourcesManagement.vpa.cpu
          object
          CPU-related parameters.

          Default: {}

          • settings.resourcesManagement.vpa.cpu.limitRatio
            number
            The coefficient to calculate cpu limits. It is optionally used to calculate initial limits for Pod. VPA for its part keeps the initial limits/requests ratio during further resource tunings.
          • settings.resourcesManagement.vpa.cpu.max
            Maximum allowed CPU requests.

            Default: 250m

          • settings.resourcesManagement.vpa.cpu.min
            Minimum allowed CPU requests.

            Default: 50m

        • settings.resourcesManagement.vpa.memory
          object
          The amount of memory requested.

          Default: {}

          • settings.resourcesManagement.vpa.memory.limitRatio
            number
            The coefficient to calculate memory limits. It is optionally used to calculate initial limits for Pod. VPA for its part keeps the initial limits/requests ratio during further resource tunings.
          • settings.resourcesManagement.vpa.memory.max
            Maximum allowed memory requests.

            Default: 512Mi

          • settings.resourcesManagement.vpa.memory.min
            Minimum allowed memory requests.

            Default: 256Mi

        • settings.resourcesManagement.vpa.mode
          string
          The VPA usage mode.

          Default: Auto

          Allowed values: Initial, Auto

    • settings.tolerations
      array of objects
      The same as in the Pods’ spec.tolerations parameter in Kubernetes; If the parameter is omitted or false, tolerations will be determined automatically.
      • settings.tolerations.effect
        string
        Taint effect the toleration matches. An empty value matches any effect.

        Allowed values: ‘’, NoSchedule, PreferNoSchedule, NoExecute

      • settings.tolerations.key
        string
        Taint key the toleration applies to. An empty key with operator: Exists matches any taint.
      • settings.tolerations.operator
        string
        Operator that defines how key and value are matched.

        Allowed values: Exists, Equal

      • settings.tolerations.tolerationSeconds
        integer

        Duration in seconds the toleration tolerates the taint after it is added.

        Applies only when effect is NoExecute. Unset means tolerate forever.

      • settings.tolerations.value
        string
        Taint value the toleration matches. Required when operator is Equal.