Skip to content

Azure/terraform-azurerm-avm-res-azurestackhci-cluster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

terraform-azurerm-avm-res-azurestackhci-cluster

Module to provision azure stack hci.

Requirements

The following requirements are needed by this module:

Resources

The following resources are used by this module:

Required Inputs

The following input variables are required:

Description: The Active Directory OU path.

Type: string

Description: The name of the custom location.

Type: string

Description: The default gateway for the network.

Type: string

Description: The username for the domain administrator account.

Type: string

Description: The password for the domain administrator account.

Type: string

Description: A list of DNS server IP addresses.

Type: list(string)

Description: The domain FQDN.

Type: string

Description: The ending IP address of the IP address range.

Type: string

Description: The name of the key vault.

Type: string

Description: The password for the local administrator account.

Type: string

Description: The username for the local administrator account.

Type: string

Description: Azure region where the resource should be deployed.

Type: string

Description: A list of management adapters.

Type: list(string)

Description: The name of the HCI cluster. Must be the same as the name when preparing AD.

Type: string

Description: The resource id of resource group.

Type: string

Description: A list of servers with their names and IPv4 addresses.

Type:

list(object({
    name        = string
    ipv4Address = string
  }))

Description: The service principal ID for the Azure account.

Type: string

Description: The service principal secret for the Azure account.

Type: string

Description: A unique identifier for the site.

Type: string

Description: The starting IP address of the IP address range.

Type: string

Description: Indicates whether storage connectivity is switchless.

Type: bool

Description: A list of storage networks.

Type:

list(object({
    name               = string
    networkAdapterName = string
    vlanId             = string
  }))

Optional Inputs

The following input variables are optional (have default values):

Description: The replication type for the storage account.

Type: string

Default: "ZRS"

Description: Indicates whether nested items can be public.

Type: bool

Default: false

Description: The Azure service endpoint.

Type: string

Default: "core.windows.net"

Description: (Optional) Content type of the azure stack lcm user credential.

Type: string

Default: null

Description: (Optional) Expiration date of the azure stack lcm user credential.

Type: string

Default: null

Description: (Optional) Tags of the azure stack lcm user credential.

Type: map(string)

Default: null

Description: When set to true, BitLocker XTS_AES 256-bit encryption is enabled for all data-at-rest on the OS volume of your Azure Stack HCI cluster. This setting is TPM-hardware dependent.

Type: bool

Default: true

Description: When set to true, BitLocker XTS-AES 256-bit encryption is enabled for all data-at-rest on your Azure Stack HCI cluster shared volumes.

Type: bool

Default: true

Description: The name of the HCI cluster.

Type: string

Default: ""

Description: (Optional) Tags of the cluster.

Type: map(string)

Default: null

Description: The name of compute intent.

Type: string

Default: "ManagementCompute"

Description: Indicates whether to override adapter property for compute.

Type: bool

Default: true

Description: Indicates whether to override qos policy for compute network.

Type: bool

Default: false

Description: QoS policy overrides for network settings with required properties for compute.

Type:

object({
    priorityValue8021Action_SMB     = string
    priorityValue8021Action_Cluster = string
    bandwidthPercentage_SMB         = string
  })

Default:

{
  "bandwidthPercentage_SMB": "",
  "priorityValue8021Action_Cluster": "",
  "priorityValue8021Action_SMB": ""
}

Description: Indicates whether RDMA is enabled for compute.

Type: bool

Default: false

Description: The jumbo packet size for RDMA of compute network.

Type: string

Default: "9014"

Description: The RDMA protocol of compute network.

Type: string

Default: "RoCEv2"

Description: Traffic type of compute.

Type: list(string)

Default:

[
  "Management",
  "Compute"
]

Description: The configuration mode for the storage.

Type: string

Default: "Express"

Description: Indicates whether to create role assignments for the HCI resource provider service principal.

Type: bool

Default: false

Description: Set to true to create the key vault, or false to skip it

Type: bool

Default: true

Description: Set to true to create the witness storage account, or false to skip it

Type: bool

Default: true

Description: When set to true, Credential Guard is enabled on your Azure HCI cluster.

Type: bool

Default: false

Description: Indicates whether cross-tenant replication is enabled.

Type: bool

Default: false

Description: (Optional) Content type of the default arb application.

Type: string

Default: null

Description: (Optional) Expiration date of the default arb application.

Type: string

Default: null

Description: (Optional) Tags of the default arb application.

Type: map(string)

Default: null

Description: When set to true, the security baseline is re-applied regularly.

Type: bool

Default: true

Description: By default, Secure Boot is enabled on your Azure HCI cluster. This setting is hardware dependent.

Type: bool

Default: true

Description: This variable controls whether or not telemetry is enabled for the module.
For more information see https://aka.ms/avm/telemetryinfo.
If it is set to false, then no telemetry will be collected.

Type: bool

Default: true

Description: Indicates whether the location is in EU.

Type: bool

Default: false

Description: By default, Hypervisor-protected Code Integrity is enabled on your Azure HCI cluster.

Type: bool

Default: true

Description: The name of intent.

Type: string

Default: "ManagementComputeStorage"

Description: Indicate whether the resource is exported

Type: bool

Default: false

Description: The location of the key vault.

Type: string

Default: ""

Description: The resource group of the key vault.

Type: string

Default: ""

Description: Indicates whether purge protection is enabled.

Type: bool

Default: true

Description: A list of key vault secrets.

Type:

list(object({
    eceSecretName = string
    secretSuffix  = string
  }))

Default: []

Description: The number of days that items should be retained for soft delete.

Type: number

Default: 30

Description: (Optional) Tags of the keyvault.

Type: map(string)

Default: null

Description: (Optional) Content type of the local admin credential.

Type: string

Default: null

Description: (Optional) Expiration date of the local admin credential.

Type: string

Default: null

Description: (Optional) Tags of the local admin credential.

Type: map(string)

Default: null

Description: Controls the Resource Lock configuration for this resource. The following properties can be specified:

  • kind - (Required) The type of lock. Possible values are \"CanNotDelete\" and \"ReadOnly\".
  • name - (Optional) The name of the lock. If not specified, a name will be generated based on the kind value. Changing this forces the creation of a new resource.

Type:

object({
    kind = string
    name = optional(string, null)
  })

Default: null

Description: The minimum TLS version.

Type: string

Default: "TLS1_2"

Description: The naming prefix in HCI deployment settings. Site id will be used if not provided.

Type: string

Default: ""

Description: The intended operation for a cluster.

Type: string

Default: "ClusterProvisioning"

Description: Indicates whether to override adapter property.

Type: bool

Default: true

Description: Indicates whether to override qos policy for converged network.

Type: bool

Default: false

Description: QoS policy overrides for network settings with required properties.

Type:

object({
    priorityValue8021Action_SMB     = string
    priorityValue8021Action_Cluster = string
    bandwidthPercentage_SMB         = string
  })

Default:

{
  "bandwidthPercentage_SMB": "",
  "priorityValue8021Action_Cluster": "",
  "priorityValue8021Action_SMB": ""
}

Description: Indicate whether to add random suffix

Type: bool

Default: true

Description: Enables RDMA when set to true. In a converged network configuration, this will make the network use RDMA. In a dedicated storage network configuration, enabling this will enable RDMA on the storage network.

Type: bool

Default: false

Description: The jumbo packet size for RDMA of converged network.

Type: string

Default: "9014"

Description: The RDMA protocol of converged network.

Type: string

Default: "RoCEv2"

Description: The location of resource group.

Type: string

Default: ""

Description: A map of role assignments to create on this resource. The map key is deliberately arbitrary to avoid issues where map keys maybe unknown at plan time.

  • role_definition_id_or_name - The ID or name of the role definition to assign to the principal.
  • principal_id - The ID of the principal to assign the role to.
  • description - The description of the role assignment.
  • skip_service_principal_aad_check - If set to true, skips the Azure Active Directory check for the service principal in the tenant. Defaults to false.
  • condition - The condition which will be used to scope the role assignment.
  • condition_version - The version of the condition syntax. Valid values are '2.0'.

Note: only set skip_service_principal_aad_check to true if you are assigning a role to a service principal.

Type:

map(object({
    role_definition_id_or_name             = string
    principal_id                           = string
    description                            = optional(string, null)
    skip_service_principal_aad_check       = optional(bool, false)
    condition                              = optional(string, null)
    condition_version                      = optional(string, null)
    delegated_managed_identity_resource_id = optional(string, null)
    principal_type                         = optional(string, null)
  }))

Default: {}

Description: The object ID of the HCI resource provider service principal.

Type: string

Default: ""

Description: Secrets location for the deployment.

Type: string

Default: ""

Description: When set to true, all the side channel mitigations are enabled.

Type: bool

Default: true

Description: When set to true, cluster east-west traffic is encrypted.

Type: bool

Default: false

Description: When set to true, the SMB default instance requires sign in for the client and server services.

Type: bool

Default: true

Description: The IP information for the storage networks. Key is the storage network name.

Type:

map(list(object({
    physicalNode = string
    ipv4Address  = string
    subnetMask   = string
  })))

Default: null

Description: The name of storage intent.

Type: string

Default: "Storage"

Description: Indicates whether to override adapter property for storage network.

Type: bool

Default: true

Description: Indicates whether to override qos policy for storage network.

Type: bool

Default: false

Description: QoS policy overrides for network settings with required properties for storage.

Type:

object({
    priorityValue8021Action_SMB     = string
    priorityValue8021Action_Cluster = string
    bandwidthPercentage_SMB         = string
  })

Default:

{
  "bandwidthPercentage_SMB": "",
  "priorityValue8021Action_Cluster": "",
  "priorityValue8021Action_SMB": ""
}

Description: Indicates whether RDMA is enabled for storage. Storage RDMA will be enabled if either rdma_enabled or storage_rdma_enabled is set to true.

Type: bool

Default: false

Description: The jumbo packet size for RDMA of storage network.

Type: string

Default: "9014"

Description: The RDMA protocol of storage network.

Type: string

Default: "RoCEv2"

Description: (Optional) Tags of the storage.

Type: map(string)

Default: null

Description: Traffic type of storage.

Type: list(string)

Default:

[
  "Storage"
]

Description: The subnet mask for the network.

Type: string

Default: "255.255.255.0"

Description: (Optional) Value of the tenant id

Type: string

Default: ""

Description: Traffic type of intent.

Type: list(string)

Default:

[
  "Management",
  "Compute",
  "Storage"
]

Description: Indicates whether to use the legacy key vault model.

Type: bool

Default: false

Description: WDAC is enabled by default and limits the applications and the code that you can run on your Azure Stack HCI cluster.

Type: bool

Default: true

Description: The path to the witness.

Type: string

Default: "Cloud"

Description: The name of the witness storage account.

Type: string

Default: ""

Description: The resource group of the witness storage account. If not provided, 'resource_group_name' will be used as the storage account's resource group.

Type: string

Default: ""

Description: (Optional) Content type of the witness storage key.

Type: string

Default: null

Description: (Optional) Expiration date of the witness storage key.

Type: string

Default: null

Description: (Optional) Tags of the witness storage key.

Type: map(string)

Default: null

Description: The type of the witness.

Type: string

Default: "Cloud"

Outputs

The following outputs are exported:

Description: Arc settings instance after HCI connected.

Description: Arc resource bridge instance after HCI connected.

Description: HCI Cluster instance

Description: Custom location instance after HCI connected.

Description: Keyvault instance that stores deployment secrets.

Description: This is the full output for the resource.

Description: User storage instances after HCI connected.

Description: The name of the virtual switch that is used by the network.

Modules

No modules.

Data Collection

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft’s privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.