https://github.com/blackbird-cloud/terraform-azurerm-data-explorer
Terraform module to create an Azure Data Explorer
https://github.com/blackbird-cloud/terraform-azurerm-data-explorer
azure data-explorer terraform
Last synced: about 1 month ago
JSON representation
Terraform module to create an Azure Data Explorer
- Host: GitHub
- URL: https://github.com/blackbird-cloud/terraform-azurerm-data-explorer
- Owner: blackbird-cloud
- License: apache-2.0
- Created: 2024-01-19T13:21:56.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-31T14:07:41.000Z (over 1 year ago)
- Last Synced: 2025-01-31T14:32:39.230Z (over 1 year ago)
- Topics: azure, data-explorer, terraform
- Language: HCL
- Homepage:
- Size: 27.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Terraform Azurerm Data Explorer Module
Terraform module to create an Azure Data Explorer
[](https://blackbird.cloud)
## Example
```hcl
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](#requirement\_terraform) | >= 1.2 |
| [azurerm](#requirement\_azurerm) | ~> 3.8 |
## Providers
| Name | Version |
|------|---------|
| [azurerm](#provider\_azurerm) | ~> 3.8 |
## Resources
| Name | Type |
|------|------|
| [azurerm_kusto_cluster.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kusto_cluster) | resource |
| [azurerm_kusto_cluster_customer_managed_key.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kusto_cluster_customer_managed_key) | resource |
| [azurerm_kusto_cluster_managed_private_endpoint.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kusto_cluster_managed_private_endpoint) | resource |
| [azurerm_kusto_cluster_principal_assignment.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kusto_cluster_principal_assignment) | resource |
| [azurerm_kusto_database.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kusto_database) | resource |
| [azurerm_kusto_database_principal_assignment.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kusto_database_principal_assignment) | resource |
| [azurerm_kusto_script.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/kusto_script) | resource |
| [azurerm_private_endpoint.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/private_endpoint) | resource |
| [azurerm_kusto_cluster.default](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/kusto_cluster) | data source |
## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [allowed\_ip\_ranges](#input\_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](#input\_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](#input\_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](#input\_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](#input\_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](#input\_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](#input\_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](#input\_disk\_encryption\_enabled) | (Optional) Specifies if the cluster's disks are encrypted. Defaults to `true`. | `bool` | `true` | no |
| [encryption\_key](#input\_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](#input\_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](#input\_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](#input\_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](#input\_public\_network\_access\_enabled) | (Optional) Is the public network access enabled? Defaults to true. | `bool` | `true` | no |
| [resource\_group\_name](#input\_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](#input\_sku\_capacity) | (Optional) Specifies the node count for the cluster. Boundaries depend on the SKU name. | `number` | n/a | yes |
| [sku\_name](#input\_sku\_name) | (Required) The name of the SKU. | `string` | n/a | yes |
| [tags](#input\_tags) | (Optional) A mapping of tags to assign to the resource. | `map(string)` | `{}` | no |
## Outputs
| Name | Description |
|------|-------------|
| [databases](#output\_databases) | n/a |
| [kusto\_cluster](#output\_kusto\_cluster) | n/a |
| [private\_endpoint](#output\_private\_endpoint) | n/a |
## About
We are [Blackbird Cloud](https://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 :point\_right: [terraform modules](https://registry.terraform.io/namespaces/blackbird-cloud)
## Copyright
Copyright © 2017-2024 [Blackbird Cloud](https://blackbird.cloud)