The module is configured automatically based on the chosen placement strategy (the AzureClusterConfiguration custom resource). In most cases, you do not need to configure the module manually.

You can configure the number and parameters of ordering machines in the cloud via the NodeGroup custom resource of the node-manager module. Also, in this custom resource, you can specify the instance class’s name for the above group of nodes (the cloudInstances.ClassReference parameter). In the case of the Azure cloud provider, the instance class is the AzureInstanceClass custom resource that stores specific parameters of the machines.

The module automatically creates the following StorageClasses:

Name Disk type
managed-standard-ssd StandardSSD_LRS
managed-standard Standard_LRS
managed-premium Premium_LRS

It allows you to configure additional StorageClasses for volumes with configurable IOPS and Throughput. Also, you can filter out the unnecessary StorageClasses via the exclude parameter.

An example of Storage Class configuration:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: cloud-provider-azure
spec:
  version: 1
  enabled: true
  settings:
    storageClass:
      provision:
      - name: managed-ultra-ssd
        diskIOPSReadWrite: 600
        diskMBpsReadWrite: 150
      exclude:
      - managed-standard.*
      - managed-premium
      default: managed-ultra-ssd

The module is configured using the ModuleConfig custom resource named cloud-provider-azure (learn more about setting up Deckhouse…).

Example of the ModuleConfig/cloud-provider-azure resource for configuring the module:

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

Parameters

Schema version: 1

  • storageClass
    object
    • storageClass.default
      string

      The name of StorageClass that will be used in the cluster by default;

      If the parameter is omitted, the default StorageClass is either:

      Example:

      default: pd-ssd-not-replicated
      
    • storageClass.exclude
      array of strings

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

      Example:

      exclude:
      - pd-standard.*
      - pd-ssd-replicated
      
    • storageClass.provision
      array of objects

      Defines additional StorageClasses for Azure ultra disks.

      • storageClass.provision.cachingMode
        string

        String value that corresponds to the desired caching mode. If expected disk size is more than 4 TiB, you have to set cachineMode: None.

        Check out Azure documentation for more information.

        Allowed values: None, ReadOnly, ReadWrite

      • storageClass.provision.diskIOPSReadWrite
        number

        Required value

        Disk IOPS (limit of 300 IOPS/GiB, up to a maximum of 160 K IOPS per disk).

      • storageClass.provision.diskMBpsReadWrite
        number

        Required value

        Disk throughput in MBps (limit of a single disk is 256 KiB/s for each provisioned IOPS).

      • storageClass.provision.name
        string

        Required value

        The name of the class to create.

      • storageClass.provision.tags
        array of objects

        Azure disk tags.

        Example:

        tags:
        - key: key1
          value: val1
        - key: key2
          value: val2
        
        • storageClass.provision.tags.key
          string

          Pattern: ^[A-Za-z0-9][-A-Za-z0-9_.]*$

        • storageClass.provision.tags.value
          string

          Pattern: ^[A-Za-z0-9][-A-Za-z0-9_.]*$

      • storageClass.provision.type
        string

        Required value

        Azure disk storage account type.

        Check out Azure documentation for more information.

        Allowed values: UltraSSD_LRS