modules/create_elastic_san_volume/variables.tf (68 lines of code) (raw):
variable "base_size_in_tib" {
type = number
description = "(Required) - Specifies the base volume size of the ElasticSAN resource in TiB. Possible values are between `1` and `100`."
}
variable "elastic_san_name" {
type = string
description = "(Required) Specifies the name of this Elastic SAN resource. Changing this forces a new resource to be created"
}
variable "extended_size_in_tib" {
type = number
description = "(Optional) - Specifies the extended size of the Elastic SAN resource in TB. Possible values are between `1` and `100`. "
}
variable "location" {
type = string
description = "(Required) The Azure Region where the Elastic SAN resource should exist. Changing this forces a new resource to be created."
nullable = false
}
variable "resource_group_id" {
type = string
description = "(Required) - The Azure Resource ID for the resource group where this Elastic SAN resource will be deployed."
}
variable "elastic_san_volume_groups" {
type = map(object({
name = string
encryption_type = optional(string, "EncryptionAtRestWithPlatformKey")
encryption_key_vault_properties = optional(object({
user_assigned_managed_identity_resource_id = optional(string, null)
keyName = optional(string, null)
keyVaultUri = optional(string, null)
keyVersion = optional(string, null)
}), null)
managed_identities = optional(object({
type = string
identity_ids = list(string)
}), null)
network_rules = optional(map(object({
id = string
action = optional(string, "Allow")
})), {})
protocol_type = optional(string, "iSCSI")
volumes = map(object({
name = string
size_in_gib = number
create_source_resource_id = optional(string, null)
create_source_source_type = optional(string, "None")
}))
private_link_service_connections = map(object({
private_endpoint_name = string
resource_group_name = string
resource_group_location = string
esan_subnet_resource_id = string
private_link_service_connection_name = string
}))
}))
default = {}
description = <<DESCRIPTION
This map of objects defines the volume group configurations for this elastic san
- `<map key>` - this arbitrary map key is used to identify each volume group and avoid known before apply issues
- `name` - (Required) - The name to use for the Elastic SAN volume group
- `encryption_type` - (Optional) - The type of key used to encrypt data on this volume group. Possible values are `EncryptionAtRestWithCustomerManagedKey` and `EncryptionAtRestWithPlatformKey`. Defaults to `EncryptionAtRestWithPlatformKey`.
- `encryption_key_vault_properties` - (Optional) Object defining the customer managed key values
- `user_assigned_managed_identity_resource_id` - (Optional) - The user assigned managed identity to use for accessing the key vault
- `keyName` - the name of the key to use for customer managed key encryption
- `keyVaultUri` - The URI for the key vault where the customer managed key is located.
- `keyVersion` - The version of the key vault key used for customer managed encryption.
- `managed_identities` - (Optional) - Object used to describe the managed identities assigned to the volume group
- `type` - The type of managed identity. Valid values are "systemassigned" or "userassigned"
- `identity_ids` - A list of user assigned identity id's that are assigned to the volume group
- `network_rules` - (Optional) a map of objects that describe allow rules for the elasticSAN volume group
- `<map_key> - The unique key value used for each object
- `id` - the Azure resource id of the subnet that should be allowed to access this elasticSAN volume group
- `action` - The action of the virtual network rule. Currently only `Allow` actions are allowed, and defaults to `Allow`.
- `protocol_type` - (Optional) - the connection protocol to use for this volume group. Defaults to `iSCSI`.
- `volumes` - a map of objects defining the volumes that are part of this volume group
- `<map_key>` - the unique key value used for each volume object
- `name` - (Required) - The name to use for the volume
- `size_in_gib` - The size in gib for the volume
- `create_source_resource_id` - (Optional) - The id of the source to create the volume from. Changing this forces a new resource to be created.
- `create_source_source_type - (Optiona) - The type of source to create the volume from. Valid values are `Disk`, `DiskRestorePoint`, `DiskSnapshot`, `VolumeSnapshot`, `None`. Changing this forces a new resource to be created. Defaults to `None`.
- private_link_service_connections - (Optional) - a map object describing the private link service connections for the volume group
- `<map_key>` - the unique key value used for each private link service connection
- `private_endpoint_name` - the name to use for the private endpoint
- `resource_group_name` - the resource group name where the private endpoint will be deployed
- `resource_group_location` - the resource group location where the private endpoint will be deployed
- `esan_subnet_resource_id` - the Azure resource id for the the subnet where the private endpoint will be deployed
- `private_link_service_connection_name` - The name for the private link service connection
DESCRIPTION
}
variable "public_network_access" {
type = string
default = "Disabled"
description = "(Optional) - Should the public network access for this resource be enabled. Defaults to Disabled."
}
variable "sku" {
type = object({
name = optional(string, "Premium_ZRS")
tier = optional(string, "Premium")
})
default = {
name = "Premium_ZRS"
tier = "Premium"
}
description = <<DESCRIPTION
An object that describes the sku configuration for the Elastic SAN
- `name` - (Required) the sku name. Possible values are `Premium_LRS` and `Premium_ZRS`. Changing this forces a new resource to be created.default = {
- `tier - (Optional) - The sku tier. The only possible value is `Premium`. Defaults to `Premium`.
}
DESCRIPTION
}
variable "tags" {
type = map(string)
default = null
description = "(Optional) Map of tags to be assigned to the AVS resources"
}
variable "zones" {
type = set(string)
default = null
description = "A set of one or more zones where this elastic san resource should be deployed."
}