Skip to content

Terraform module for terraform-azure-tamr-vm

License

Notifications You must be signed in to change notification settings

Datatamer/terraform-azure-tamr-vm

Repository files navigation

Tamr Azure VM module

This module creates an Azure VM to host the Tamr application and its internal microservices.

Examples

Basic

Inline example implementation of the module. This is the most basic example of what it would look like to use this module.

module "minimal" {
  source = "git::https://github.com/Datatamer/terraform-azure-tamr-vm?ref=x.y.z"
}

Minimal

Smallest complete fully working example. This example might require extra resources to run the example.

Elasticsearch

Example of multiple VM creation with all ports disabled except the port hosting Elasticsearch access.

Resources Created

This modules creates:

  • n network interfaces
  • n VMs
  • n storage disks
  • 1 security group

Known Issues

When running terraform destroy, you may encounter a failure due to something not having fully deleted. To resolve this, wait a few seconds and then re-run terraform destroy.

Requirements

Name Version
terraform >= 0.12
azurerm >= 2.60.0

Providers

No provider.

Inputs

Name Description Type Default Required
application_security_group_ids List of Application security group IDs list(string) n/a yes
location Location string n/a yes
path_to_ssh_key Local file path to a public SSH key string n/a yes
resource_group_name Name of resource group string n/a yes
subnet_id Subnet ID in which to deploy VM string n/a yes
vm_size Size of machine on which to deploy Tamr string n/a yes
admin_username Admin username string "ubuntu" no
auth_port Port hosting Auth access number 9020 no
disk_size_gb Disk size number 1000 no
elasticsearch_port Port hosting Elasticsearch access number 9200 no
enable_auth_port Whether or not to enable Auth bool true no
enable_elasticsearch_port Whether or not to enable Elasticsearch bool true no
enable_grafana_port Whether or not to enable Grafana bool true no
enable_kibana_port Whether or not to enable Kibana bool true no
enable_persistence_port Whether or not to enable Persistence bool true no
enable_ssh Whether or not to enable SSH bool true no
enable_tamr_port Whether or not to enable Tamr API access bool true no
enable_tls Whether or not to enable TLS bool true no
enable_zk_port Whether or not to enable Zookeeper bool true no
grafana_port Port hosting Grafana access number 31101 no
image_offer The offer type of the Azure Virtual Machines Marketplace Image.
(e.g. 'UbuntuServer', 'RHEL')
Azure Documentation
string "UbuntuServer" no
image_publisher The publisher of the Azure Virtual Machines Marketplace Image.
(e.g. 'Canonical', 'RedHat')
Azure Documentation
string "Canonical" no
image_reference The Azure Resource Manager (ARM) resource identifier of the Virtual Machine Image or Shared Image Gallery Image.
Computes Compute Nodes of the Pool will be created using this Image Id.
This is of the form /subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/galleries/{galleryName}/images/{imageDefinitionName}/versions/{versionId}.
Azure Documentation
string null no
image_sku The Stock-Keeping Unit (SKU) of the Azure Virtual Machines Marketplace Image.
(e.g. '18.04-LTS', '7.6')
Azure Documentation
string "18.04-LTS" no
image_version The version of the Azure Virtual Machines Marketplace Image.
(e.g. 'latest')
Azure Documentation
string "latest" no
ingress_cidr_blocks CIDR blocks to attach to security groups for ingress list(string) [] no
instance_count Number of VMs to create number 1 no
kibana_port Port hosting Kibana access number 5601 no
managed_disk_type Managed disk type string "Premium_LRS" no
persistence_port Port hosting Persistence access number 9080 no
public_ip Public IP address to assign to the VM string null no
tags Map of tags to attach to VM and Network Interface map(string) {} no
tamr_port Port hosting Tamr UI and API access number 9100 no
vm_name Name of VM on which Tamr is installed string "tamr-vm" no
zk_port Port hosting Zookeeper access number 21281 no

Outputs

Name Description
nic_ids The ID(s) of the Network Interface(s)
sg_id The ID of the security group
vm_ids The ID(s) of the Tamr VM(s)
vm_ips The private IP(s) of the created resource(s)

References

This repo is based on:

Development

Releasing new versions

  • Update version contained in VERSION
  • Document changes in CHANGELOG.md
  • Create a tag in github for the commit associated with the version

License

Apache 2 Licensed. See LICENSE for full details.