Available in editions:  Open/CE, BE, SE, SE+, Ultimate/EE, Core

Included in extensions: On-prem IaaS

The module lifecycle stage: General Availability

The module is automatically enabled for all cloud clusters deployed in DVP.

The credentials for accessing the parent cluster API are not stored in the module settings. The platform reads them from the d8-credentials Secret, whose format is covered in the Credentials Secret section.

The module has 1 alert.

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 cloud-provider-dvp 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 cloud-provider-dvp
    
  • Using ModuleConfig cloud-provider-dvp.

    Set spec.enabled to true or false in ModuleConfig cloud-provider-dvp (create it if necessary);

    Example of a manifest to enable module cloud-provider-dvp:

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

    d8 k edit mc cloud-provider-dvp
    

    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 cloud-provider-dvp 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 cloud-provider-dvp:

    apiVersion: deckhouse.io/v1alpha1
    kind: ModuleConfig
    metadata:
      name: cloud-provider-dvp
    spec:
      version: 2
      enabled: true
      settings: # Module parameters from the "Parameters" section below.
    

Conversions

The module is configured using the ModuleConfig resource, the schema of which contains a version number. When you apply an old version of the ModuleConfig schema in a cluster, automatic transformations are performed. To manually update the ModuleConfig schema version, the following steps must be completed sequentially for each version :

  • Updates from version 1 to 2:
    • Move provider.namespace to provider.parameters.namespace.
    • Move zones to nodes.parameters.zones.
    • Delete provider.kubeconfigDataBase64. The kubeconfig is stored in a Secret of type cloud-provider.deckhouse.io/credentials.
    • Set nodes.parameters.layout (defaults to Standard).
    • Replace the placeholder in nodes.parameters.sshPublicKey with a real SSH public key.

Parameters

Schema version: 2

  • settings
    object
    • settings.ccm
      object

      Cloud Controller Manager (CCM) subsystem settings.

      CCM integrates the cluster with the cloud provider — for example, it manages load balancers. You can enable or disable CCM independently of other subsystems. For instance, leave CCM enabled if you only need load balancer management in the cluster.

      • settings.ccm.disabled
        boolean

        Disables the Cloud Controller Manager.

        Set to true if CCM is not required. Leave enabled (false) when you need cloud load balancer management.

        Default: false

    • settings.nodes
      object

      Required value

      Nodes subsystem settings.

      Controls node management in the cluster.

      • settings.nodes.disabled
        boolean

        Disables the node management subsystem.

        Default: false

      • settings.nodes.parameters
        object

        Required value

        Parameters of the nodes subsystem.

        • settings.nodes.parameters.ipAddresses
          object

          A map of static IP addresses for CloudPermanent NodeGroups.

          The map key is the NodeGroup name, the value is a list of IP addresses assigned to nodes of that group. The number of addresses must match the number of replicas — each IP address is assigned to a specific replica.

          Example:

          ipAddresses:
            master:
              - 10.66.30.100
              - 10.66.30.101
              - 10.66.30.102
            worker:
              - 10.66.30.200
              - 10.66.30.201
          

          These addresses must belong to the address range specified in the virtualization module configuration in the virtualMachineCIDRs parameter.

        • settings.nodes.parameters.layout
          string

          Required value

          Allowed values: Standard

        • settings.nodes.parameters.region
          string

          Region name.

          To use this setting, the topology.kubernetes.io/region label must be set on DVP nodes. Read more about topological labels.

          To set the required label for a DVP node, follow the NodeGroup documentation.

        • settings.nodes.parameters.sshPublicKey
          string

          Required value

          A public key for accessing nodes.

        • settings.nodes.parameters.zones
          array of strings

          A set of zones in which nodes can be created.

          To use this setting, the topology.kubernetes.io/zone label must be set on DVP nodes. Read more about topological labels.

          To set the required label for a DVP node, follow the NodeGroup documentation.

    • settings.provider
      object

      Required value

      Settings for connecting to the parent Deckhouse Virtualization Platform (DVP).

      • settings.provider.parameters
        object

        Required value

        Contains settings to connect to the Deckhouse Platform API.

        • settings.provider.parameters.namespace
          string

          Required value

          Namespace in which DP cluster resources will be created.

          If not explicitly specified, the default namespace for kubeconfig will be used.

        • settings.provider.parameters.networkPolicy
          string

          Control rules for network traffic to and from workloads running in the Project resource.

          • Isolated: Applies a restrictive NetworkPolicy that allows only network traffic required for platform system components to function. All other traffic is denied.
          • None: The cluster does not request any network policies. Existing project-level restrictions still apply.

          Allowed values: Isolated, None

    • settings.storage
      object

      Storage subsystem settings.

      Controls disk provisioning in the cluster.

      • settings.storage.disabled
        boolean

        Disables the storage subsystem.

        When set to true, disk provisioning in the cluster is unavailable.

        Default: false

      • settings.storage.parameters
        object

        Required value

        Parameters of the storage subsystem.

        • settings.storage.parameters.excludedStorageClasses
          array of strings

          A list of StorageClass names (or regex expressions for names) to exclude from creation in the cluster.