Skip to content

blackbird-cloud/terraform-azurerm-data-explorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Terraform Azurerm Data Explorer Module

Terraform module to create an Azure Data Explorer

blackbird-logo

Example

provider "azurerm" {
  features {
    key_vault {
      purge_soft_deleted_secrets_on_destroy = true
      recover_soft_deleted_secrets          = true
    }
  }
}

module "data_explorer" {
  source  = "blackbird-cloud/data-explorer/azurerm"
  version = "~> 1"

  location            = "West Europe"
  resource_group_name = "my-resource-group-name"

  cluster_name = "my-cluster"

  auto_stop_enabled = true
  sku_name          = "Dev(No SLA)_Standard_E2a_v4"
  sku_capacity      = 1

  allowed_ip_ranges = ["my-ip/32"]

  databases = {
    my_datebase = {
      name     = "my_datebase"
      location = "West Europe"
    }
  }
}

Requirements

Name Version
terraform >= 1.2
azurerm ~> 3.8

Providers

Name Version
azurerm ~> 3.8

Resources

Name Type
azurerm_kusto_cluster.default resource
azurerm_kusto_cluster_customer_managed_key.default resource
azurerm_kusto_cluster_managed_private_endpoint.default resource
azurerm_kusto_cluster_principal_assignment.default resource
azurerm_kusto_database.default resource
azurerm_kusto_database_principal_assignment.default resource
azurerm_kusto_script.default resource
azurerm_private_endpoint.default resource
azurerm_kusto_cluster.default data source

Inputs

Name Description Type Default Required
allowed_ip_ranges (Optional) The list of ips in the format of CIDR allowed to connect to the cluster. list(string) [] no
auto_stop_enabled (Optional) Specifies if the cluster could be automatically stopped (due to lack of data or no activity for many days). Defaults to true. bool true no
cluster_name (Required) The name of the Kusto Cluster to create. Only lowercase Alphanumeric characters allowed, starting with a letter. Changing this forces a new resource to be created. string n/a yes
cluster_principal_assignments (Optional) Specifies the role assignments for the cluster.
map(object({
role = string
principal_type = string
principal_id = string
tenant_id = string
}))
{} no
create_cluster (Optional) Set this to false if you have already created the Kusto Cluster and you want to manage it with this module. Defaults to true. bool true no
data_private_endpoint Configuration for the creation of a private link between the data source and the kusto cluster.
object({
create = bool
name = string
private_link_resource_id = string
group_id = string
private_link_resource_region = optional(string)
request_message = optional(string)
})
{
"create": false,
"group_id": "",
"name": "",
"private_link_resource_id": ""
}
no
databases (Optional) Specifies the databases to create in the cluster.
map(object({
name = string
location = optional(string)
soft_delete_period = optional(string)
hot_cache_period = optional(string)
principal_assignments = optional(map(object({
role = string
principal_type = string
principal_id = string
tenant_id = string
})), {})
script = optional(object({
name = string
script_content = string
continue_on_errors_enabled = optional(bool)
force_an_update_when_value_changed = optional(string)
}), { name = "", script_content = "" })
}))
{} no
disk_encryption_enabled (Optional) Specifies if the cluster's disks are encrypted. Defaults to true. bool true no
encryption_key (Optional) Specifies the encryption key to use for the cluster.
object({
key_name = string
key_vault_id = string
key_version = string
})
null no
identity (Optional) Specifies the type of Managed Service Identity, and optionally a list of User Assigned Managed Identity IDs to be assigned to this Kusto Cluster.
object({
type = string
identity_ids = optional(list(string))
})
{
"type": "SystemAssigned"
}
no
location (Required) The location where the Kusto Cluster should be created. Changing this forces a new resource to be created. string n/a yes
private_endpoint Configuration for the creation of a private endpoint for the kusto cluster.
object({
create = bool
location = string
resource_group_name = string
subnet_id = string
custom_network_interface_name = optional(string)
private_dns_zone_groups = optional(list(object({
name = string,
private_dns_zone_ids = list(string)
})), [])
})
{
"create": false,
"location": "",
"resource_group_name": "",
"subnet_id": ""
}
no
public_network_access_enabled (Optional) Is the public network access enabled? Defaults to true. bool true no
resource_group_name (Required) Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created. string n/a yes
sku_capacity (Optional) Specifies the node count for the cluster. Boundaries depend on the SKU name. number n/a yes
sku_name (Required) The name of the SKU. string n/a yes
tags (Optional) A mapping of tags to assign to the resource. map(string) {} no

Outputs

Name Description
databases n/a
kusto_cluster n/a
private_endpoint n/a

About

We are Blackbird Cloud, Amsterdam based cloud consultancy, and cloud management service provider. We help companies build secure, cost efficient, and scale-able solutions.

Checkout our other 👉 terraform modules

Copyright

Copyright © 2017-2024 Blackbird Cloud

About

Terraform module to create an Azure Data Explorer

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages