Managed disk support for Azure terraform infra (#202)
authorBrian Loss <brianloss@gmail.com>
Thu, 21 Apr 2022 13:01:44 +0000 (09:01 -0400)
committerGitHub <noreply@github.com>
Thu, 21 Apr 2022 13:01:44 +0000 (09:01 -0400)
commite9cbb856a0fac3335fff13fc175d7439c0940cca
treef03174e70495b088977bc240aa169cd5853b16d2
parent77e4910a478ef77d0cc2cc9614f5d6687f9470a8
Managed disk support for Azure terraform infra (#202)

Support adding managed disk to the Azure VMs created by the terraform
testing infrastructure. By adding multiple managed disks to a VM, we can
get significantly more space for data storage and also increase
performance since the data is striped across multiple disks.

* Modify the cloud-init module to accept an argument indicating the type
  of deployment (AWS or Azure) so that conditional blocks can be
  included in the cloud-init script.
* cloud-init module now accepts an optional lvm_mount_point argument. If
  this argument is specified, then the cloud-init script will assume
  that managed disks were created and load a script on the VM and run it
  to wait for the disks to be attached, then group them in an LVM volume
  that is mounted under the specified mount point.
* The azure main.tf file accepts a new managed_disk_configuration
  optional argument that contains the LVM mount point, and the number,
  size, and sku of managed disks to add to each VM. If this argument is
  specified, then the managed disks are created and attached to the VMs,
  and the lvm mount point and expected number of disks are passed along
  to the cloud-init module. Due to the way attaching managed disks are
  supported by Terraform (they must be attached after the VM is created,
  although Azure does not have this restriction), the provisioner script
  that waits for cloud-init to complete had to be moved outside of the
  VM creation to a null_resource. This null_resource must then be
  explicitly added as a dependency of any module that requires the
  manager or worker VMs to be created AND have cloud-init completed
  running.
* Fix bug in Azure configuration where the script would fail if the
  create_resource_group variable was set to false (indicating that an
  existing resource group should be used instead of creating a new one).
* Update the maven version to 3.8.5.
contrib/terraform-testing-infrastructure/README.md
contrib/terraform-testing-infrastructure/aws/main.tf
contrib/terraform-testing-infrastructure/aws/variables.tf
contrib/terraform-testing-infrastructure/azure/main.tf
contrib/terraform-testing-infrastructure/azure/variables.tf
contrib/terraform-testing-infrastructure/modules/cloud-init-config/files/azure-format-lvm-data-disk.sh [new file with mode: 0644]
contrib/terraform-testing-infrastructure/modules/cloud-init-config/main.tf
contrib/terraform-testing-infrastructure/modules/cloud-init-config/templates/cloud-init.tftpl
contrib/terraform-testing-infrastructure/modules/config-files/templates/zoo.cfg.tftpl