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 adaptive-resource-management 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 adaptive-resource-management
  • Using ModuleConfig adaptive-resource-management.

    Set spec.enabled to true or false in ModuleConfig adaptive-resource-management (create it if necessary);

    Example of a manifest to enable module adaptive-resource-management:

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

    d8 k edit mc adaptive-resource-management

    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 adaptive-resource-management 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 adaptive-resource-management:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: adaptive-resource-management
    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 Kubernetes version: 1.31 and above.

To the Deckhouse version: 1.71 and above.

Parameters

Schema version: 1

  • settings
    object
    • settings.autovpa
      object

      AutoVPA controller settings.

      Is a utility that helps identify resource requests and limits for containers running in a cluster using VPA recommendations.

      Default: {}

      • settings.autovpa.enabled
        boolean
        Enables the AutoVPA controller.

        Default: false

      • settings.autovpa.namespaceLabelSelector
        object

        A standard Kubernetes LabelSelector that selects namespaces for AutoVPA to manage.

        When onlySpecialLabel is also true, the resulting namespace list is the union of namespaces matching this selector and namespaces with the autovpa.deckhouse.io/enabled: "true" label.

        When onlySpecialLabel is false, only namespaces matching this selector are managed.

        • settings.autovpa.namespaceLabelSelector.matchExpressions
          array of objects
          A list of label selector requirements.
          • settings.autovpa.namespaceLabelSelector.matchExpressions.key
            string
            The label key that the selector applies to.
          • settings.autovpa.namespaceLabelSelector.matchExpressions.operator
            string
            Represents a key’s relationship to a set of values.

            Allowed values: In, NotIn, Exists, DoesNotExist

          • settings.autovpa.namespaceLabelSelector.matchExpressions.values
            array of strings
            An array of string values. Required for In and NotIn operators.
        • settings.autovpa.namespaceLabelSelector.matchLabels
          object
          A map of key-value label pairs. A namespace must have all these labels to be selected.
      • settings.autovpa.nodeSelector
        object

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

        If the parameter is omitted or false, it will be determined automatically.

      • settings.autovpa.onlySpecialLabel
        boolean

        When true, AutoVPA will manage namespaces that have the autovpa.deckhouse.io/enabled: "true" label.

        When namespaceLabelSelector is also set, the resulting namespace list is the union of both: namespaces matching the selector and namespaces with the special label.

        When false and namespaceLabelSelector is not set, AutoVPA manages all namespaces. When false and namespaceLabelSelector is set, only namespaces matching the selector are managed; the special label is ignored.

        Default: false

      • settings.autovpa.tolerations
        array of objects

        The same as in the Pods’ spec.tolerations parameter in Kubernetes.

        If the parameter is omitted or false, it will be determined automatically.

        • settings.autovpa.tolerations.effect
          string
        • settings.autovpa.tolerations.key
          string
        • settings.autovpa.tolerations.operator
          string
        • settings.autovpa.tolerations.tolerationSeconds
          integer
        • settings.autovpa.tolerations.value
          string