From 392c87e13f445b5fade67ef478b1b3cfbe52e110 Mon Sep 17 00:00:00 2001 From: erzetpe Date: Mon, 4 Apr 2022 10:26:35 +0200 Subject: [PATCH] Define additional disks with defined sizes to VMs for Azure (#2953) * Additional disks for azure DRAFT * Simplify config * add changelog note * Change starting index value in names * Change value of lun attribute to alling with disks indexing --- docs/changelogs/CHANGELOG-2.0.md | 1 + .../infrastructure/virtual-machine.yml | 3 +++ .../azure/infrastructure/virtual-machine.j2 | 22 +++++++++++++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/docs/changelogs/CHANGELOG-2.0.md b/docs/changelogs/CHANGELOG-2.0.md index 1bd3ee1b9c..11a96b1845 100644 --- a/docs/changelogs/CHANGELOG-2.0.md +++ b/docs/changelogs/CHANGELOG-2.0.md @@ -20,6 +20,7 @@ - [#2448](https://github.com/epiphany-platform/epiphany/issues/2448) - Passwordless SSH communication for postgres user between DB nodes - [#2821](https://github.com/epiphany-platform/epiphany/issues/2821) - Node Exporter preflight checks - [#2996](https://github.com/epiphany-platform/epiphany/issues/2996) - Introduce the new configuration field to change a component name +- [#2888](https://github.com/epiphany-platform/epiphany/issues/2888) - Define additional disks with defined sizes to VMs for Azure ### Fixed diff --git a/schema/azure/defaults/infrastructure/virtual-machine.yml b/schema/azure/defaults/infrastructure/virtual-machine.yml index 681ddfa34e..da8c51125b 100644 --- a/schema/azure/defaults/infrastructure/virtual-machine.yml +++ b/schema/azure/defaults/infrastructure/virtual-machine.yml @@ -27,6 +27,9 @@ specification: create_option: FromImage disk_size_gb: 32 managed_disk_type: Premium_LRS + additional_disks: [] + # - storage_account_type: Premium_LRS + # disk_size_gb: 32 network_interface: enable_accelerated_networking: false private_ip: diff --git a/terraform/azure/infrastructure/virtual-machine.j2 b/terraform/azure/infrastructure/virtual-machine.j2 index e3606180f1..05d1e438da 100644 --- a/terraform/azure/infrastructure/virtual-machine.j2 +++ b/terraform/azure/infrastructure/virtual-machine.j2 @@ -78,6 +78,24 @@ resource "azurerm_virtual_machine" "{{ specification.name }}" { depends_on = [azurerm_network_interface_security_group_association.{{ specification.security_group_association_name }}] {%- endif %} - #TODO: - # storage_data_disk } + +{%- if specification.additional_disks is defined %} + {%- for disk in specification.additional_disks %} +resource "azurerm_managed_disk" "{{ specification.name }}-data-disk-{{ loop.index0 }}" { + name = "{{ specification.name }}-data-disk-{{ loop.index0 }}" + location = azurerm_resource_group.rg.location + resource_group_name = azurerm_resource_group.rg.name + storage_account_type = "{{ disk.storage_account_type }}" + create_option = "Empty" + disk_size_gb = "{{ disk.disk_size_gb }}" +} + +resource "azurerm_virtual_machine_data_disk_attachment" "{{ specification.name }}-disk-attachment-{{ loop.index0 }}" { + managed_disk_id = azurerm_managed_disk.{{ specification.name }}-data-disk-{{ loop.index0 }}.id + virtual_machine_id = azurerm_virtual_machine.{{ specification.name }}.id + lun = "{{ loop.index0 }}" + caching = "ReadWrite" +} + {%- endfor %} +{%- endif %}