Skip to content

Latest commit

 

History

History
109 lines (89 loc) · 12.5 KB

File metadata and controls

109 lines (89 loc) · 12.5 KB

Lakehouse terraform blueprints

This module contains Terraform code used to provision a Lakehouse platform.

Module content

This module can be used to deploy the following:

Azure Lakehouse platform

  • A new resource group
  • Networking resources including:
    • Azure vnet
    • The required subnets for the Azure Databricks workspace.
    • Azure route table (if needed)
    • Network Security Group (NSG)
  • The Lakehouse platform resources, including:
    • Azure Databricks workspace
    • Azure Data Factory
    • Azure Key Vault
    • Azure Storage account

How to use

Note
You can customize this module by adding, deleting or updating the Azure resources to adapt the module to your requirements. A deployment example using this module can be found in examples/adb-lakehouse

  1. Reference this module using one of the different module source types
  2. Add a variables.tf with the same content in variables.tf
  3. Add a terraform.tfvars file and provide values to each defined variable
  4. Add a output.tf file.
  5. (Optional) Configure your remote backend
  6. Run terraform init to initialize terraform and get provider ready.
  7. Run terraform apply to create the resources.

Requirements

Name Version
azurerm >=4.0.0

Providers

Name Version
azurerm >=4.0.0

Modules

No modules.

Resources

Name Type
azurerm_data_factory.adf resource
azurerm_databricks_workspace.this resource
azurerm_key_vault.example resource
azurerm_network_security_group.this resource
azurerm_resource_group.this resource
azurerm_route_table.this resource
azurerm_storage_account.dls resource
azurerm_subnet.private resource
azurerm_subnet.public resource
azurerm_subnet_network_security_group_association.private resource
azurerm_subnet_network_security_group_association.public resource
azurerm_subnet_route_table_association.private resource
azurerm_subnet_route_table_association.public resource
azurerm_virtual_network.this resource
azurerm_client_config.current data source
azurerm_resource_group.this data source

Inputs

Name Description Type Default Required
create_resource_group (Optional) Creates resource group if set to true (default) bool true no
data_factory_name The name of the Azure Data Factory to deploy. Won't be created if not specified string "" no
databricks_workspace_name Name of Databricks workspace string n/a yes
environment_name (Required) The name of the project environment associated with the infrastructure to be managed by Terraform string n/a yes
key_vault_name The name of the Azure Key Vault to deploy. Won't be created if not specified string "" no
location (Optional if create_resource_group is set to false) The location for the resources in this module string n/a yes
managed_resource_group_name (Optional) The name of the resource group where Azure should place the managed Databricks resources string "" no
private_subnet_address_prefixes Address space for private Databricks subnet list(string) n/a yes
project_name (Required) The name of the project associated with the infrastructure to be managed by Terraform string n/a yes
public_subnet_address_prefixes Address space for public Databricks subnet list(string) n/a yes
spoke_resource_group_name (Required) The name of the Resource Group to create string n/a yes
spoke_vnet_address_space (Required) The address space for the spoke Virtual Network string n/a yes
storage_account_names Names of additional storage accounts to create list(string) [] no
tags (Required) Map of tags to attach to resources map(string) n/a yes

Outputs

Name Description
azure_resource_group_id ID of the created or existing Azure resource group
azure_resource_group_location Location of the created or existing Azure resource group
nsg_id Depricated ID of the new NSG
rg_id Depricated ID of the resource group
rg_name Depricated Name of the resource group
route_table_id Depricated ID of the new route table
vnet_id Depricated ID of the new Vnet
workspace_id ID of the Databricks workspace
workspace_name Depricated Name of the Databricks workspace
workspace_resource_id Depricated ID of the Databricks workspace resource
workspace_url URL of the Databricks workspace