Skip to content

azurermKustoCluster

Manages a Kusto (also known as Azure Data Explorer) Cluster

Example Usage

/*Provider bindings are generated by running cdktf get.
See https://cdk.tf/provider-generation for more details.*/
import * as azurerm from "./.gen/providers/azurerm";
/*The following providers are missing schema information and might need manual adjustments to synthesize correctly: azurerm.
For a more precise conversion please use the --provider flag in convert.*/
const azurermResourceGroupExample = new azurerm.resourceGroup.ResourceGroup(
  this,
  "example",
  {
    location: "West Europe",
    name: "my-kusto-cluster-rg",
  }
);
const azurermKustoClusterExample = new azurerm.kustoCluster.KustoCluster(
  this,
  "example_1",
  {
    location: azurermResourceGroupExample.location,
    name: "kustocluster",
    resource_group_name: azurermResourceGroupExample.name,
    sku: [
      {
        capacity: 2,
        name: "Standard_D13_v2",
      },
    ],
    tags: {
      Environment: "Production",
    },
  }
);
/*This allows the Terraform resource name to match the original name. You can remove the call if you don't need them to match.*/
azurermKustoClusterExample.overrideLogicalId("example");

Argument Reference

The following arguments are supported:

  • 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.

  • location - (Required) The location where the Kusto Cluster should be created. Changing this forces a new resource to be created.

  • resourceGroupName - (Required) Specifies the Resource Group where the Kusto Cluster should exist. Changing this forces a new resource to be created.

  • sku - (Required) A sku block as defined below.

  • allowedFqdns - (Optional) List of allowed FQDNs(Fully Qualified Domain Name) for egress from Cluster.

  • allowedIpRanges - (Optional) The list of ips in the format of CIDR allowed to connect to the cluster.

  • doubleEncryptionEnabled - (Optional) Is the cluster's double encryption enabled? Changing this forces a new resource to be created.

  • identity - (Optional) An identity block as defined below.

  • autoStopEnabled - (Optional) Specifies if the cluster could be automatically stopped (due to lack of data or no activity for many days). Defaults to true.

  • diskEncryptionEnabled - (Optional) Specifies if the cluster's disks are encrypted.

  • streamingIngestionEnabled - (Optional) Specifies if the streaming ingest is enabled.

  • publicIpType - (Optional) Indicates what public IP type to create - IPv4 (default), or DualStack (both IPv4 and IPv6).

  • publicNetworkAccessEnabled - (Optional) Is the public network access enabled? Defaults to true.

  • outboundNetworkAccessRestricted - (Optional) Whether to restrict outbound network access. Value is optional but if passed in, must be true or false, default is false.

  • purgeEnabled - (Optional) Specifies if the purge operations are enabled.

  • virtualNetworkConfiguration - (Optional) A virtualNetworkConfiguration block as defined below. Changing this forces a new resource to be created.

  • languageExtensions - (Optional) An list of languageExtensions to enable. Valid values are: python and r.

  • optimizedAutoScale - (Optional) An optimizedAutoScale block as defined below.

  • tags - (Optional) A mapping of tags to assign to the resource.

  • trustedExternalTenants - (Optional) Specifies a list of tenant IDs that are trusted by the cluster. Default setting trusts all other tenants. Use trustedExternalTenants = ["*"] to explicitly allow all other tenants, trustedExternalTenants = ["myTenantOnly"] for only your tenant or trustedExternalTenants = ["<tenantId1>", "<tenantIdx>"] to allow specific other tenants.

\~> NOTE: In v3.0 of azurerm a new or updated Kusto Cluster will only allow your own tenant by default. Explicit configuration of this setting will change from trustedExternalTenants = ["myTenantOnly"] to trustedExternalTenants = [].

  • zones - (Optional) Specifies a list of Availability Zones in which this Kusto Cluster should be located. Changing this forces a new Kusto Cluster to be created.

  • engine - (Optional). The engine type that will be used in the backend. Possible values are v2 and v3. Defaults to v2. Changing this forces a new Kusto Cluster to be created.

\~> NOTE: In v400 and later version of the AzureRM Provider, default engine type will be changed to v3.


A sku block supports the following:

  • name - (Required) The name of the SKU. Valid values are: dev(noSla)StandardD11V2, dev(noSla)StandardE2AV4, standardD11V2, standardD12V2, standardD13V2, standardD14V2, standardD16DV5, standardD32DV4, standardD32DV5, standardDs13V2+1TbPs, standardDs13V2+2TbPs, standardDs14V2+3TbPs, standardDs14V2+4TbPs, standardE16AV4, standardE16AdsV5, standardE16AsV4+3TbPs, standardE16AsV4+4TbPs, standardE16AsV5+3TbPs, standardE16AsV5+4TbPs, standardE16SV4+3TbPs, standardE16SV4+4TbPs, standardE16SV5+3TbPs, standardE16SV5+4TbPs, standardE2AV4, standardE2AdsV5,standardE4AV4, standardE4AdsV5, standardE64IV3, standardE80IdsV4, standardE8AV4, standardE8AdsV5, standardE8AsV4+1TbPs, standardE8AsV4+2TbPs, standardE8AsV5+1TbPs, standardE8AsV5+2TbPs, standardE8SV4+1TbPs, standardE8SV4+2TbPs, standardE8SV5+1TbPs, standardE8SV5+2TbPs, standardL16S, standardL16SV2, standardL4S, standardL8S, standardL8SV2, "Standard_L8s_v3", standardL16SV3, standardL8AsV3, standardL16AsV3, standardEc8AsV5+1TbPs, standardEc8AsV5+2TbPs, standardEc16AsV5+3TbPs, standardEc16AsV5+4TbPs, standardEc8AdsV5, standardEc16AdsV5, standardE2DV4, standardE4DV4, standardE8DV4, standardE16DV4, standardE2DV5, standardE4DV5, standardE8DV5 and standardE16DV5.
  • capacity - (Optional) Specifies the node count for the cluster. Boundaries depend on the SKU name.

\~> NOTE: If no optimizedAutoScale block is defined, then the capacity is required. \~> NOTE: If an optimizedAutoScale block is defined and no capacity is set, then the capacity is initially set to the value of minimumInstances.


A virtualNetworkConfiguration block supports the following:

  • subnetId - (Required) The subnet resource id.

  • enginePublicIpId - (Required) Engine service's public IP address resource id.

  • dataManagementPublicIpId - (Required) Data management's service public IP address resource id.


An identity block supports the following:

  • type - (Required) Specifies the type of Managed Service Identity that is configured on this Kusto Cluster. Possible values are: systemAssigned, userAssigned and systemAssigned,UserAssigned.

  • identityIds - (Optional) Specifies a list of User Assigned Managed Identity IDs to be assigned to this Kusto Cluster.

\~> NOTE: This is required when type is set to userAssigned or systemAssigned,UserAssigned.


A optimizedAutoScale block supports the following:

  • minimumInstances - (Required) The minimum number of allowed instances. Must between 0 and 1000.

  • maximumInstances - (Required) The maximum number of allowed instances. Must between 0 and 1000.

Attributes Reference

The following attributes are exported:

  • id - The Kusto Cluster ID.

  • uri - The FQDN of the Azure Kusto Cluster.

  • dataIngestionUri - The Kusto Cluster URI to be used for data ingestion.

  • identity - An identity block as defined below.


An identity block exports the following:

  • principalId - The Principal ID associated with this System Assigned Managed Service Identity.

  • tenantId - The Tenant ID associated with this System Assigned Managed Service Identity.

Timeouts

The timeouts block allows you to specify timeouts for certain actions:

  • create - (Defaults to 60 minutes) Used when creating the Kusto Cluster.
  • update - (Defaults to 60 minutes) Used when updating the Kusto Cluster.
  • read - (Defaults to 5 minutes) Used when retrieving the Kusto Cluster.
  • delete - (Defaults to 60 minutes) Used when deleting the Kusto Cluster.

Import

Kusto Clusters can be imported using the resourceId, e.g.

terraform import azurerm_kusto_cluster.example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Kusto/clusters/cluster1