Add code for AMLFS resource

This commit is contained in:
Paul Jewell 2023-10-12 15:09:09 -04:00
parent 629a403870
commit 21c4654b2d
5 changed files with 133 additions and 651 deletions

View File

@ -2,31 +2,86 @@
This template deploys a Managed Lustre filesystem.
## Terraform resource types
- [azurerm_resource_group](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/resource_group)
- [azurerm_virtual_network](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_network)
- [azurerm_subnet](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/subnet)
- [azurerm_managed_lustre_file_system](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/managed_lustre_file_system)
## Variables
| Name | Description |
|-|-|
| `resource_group_name` | Resource group name |
| `resource_group_location` | Resource group location |
## Example terraform.tfvars file
```
resource_group_name = "rg-amlfs-create-101"
location = "centralus"
```
| `rg_location` | Resource group location |
| `amlfs_sku_name` | SKU name for the Azure Managed Lustre file system |
| `amlfs_storage_capacity_in_tb` | The size of the AML file system, in TiB. This might be rounded up. |
| `amlfs_maintenance_day_of_week` | Day of the week on which the maintenance window will occur |
| `amlfs_maintenance_time_of_day` | The time of day (in UTC) to start the maintenance window |
## Usage
```bash
>terraform plan
> terraform plan
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# azurerm_managed_lustre_file_system.example will be created
+ resource "azurerm_managed_lustre_file_system" "example" {
+ id = (known after apply)
+ location = "eastus"
+ name = (known after apply)
+ resource_group_name = (known after apply)
+ sku_name = "AMLFS-Durable-Premium-40"
+ storage_capacity_in_tb = 48
+ subnet_id = (known after apply)
+ zones = [
+ "1",
]
+ maintenance_window {
+ day_of_week = "Saturday"
+ time_of_day_in_utc = "02:00"
}
}
# azurerm_resource_group.example will be created
+ resource "azurerm_resource_group" "example" {
+ id = (known after apply)
+ location = "eastus"
+ name = (known after apply)
}
# azurerm_subnet.example will be created
+ resource "azurerm_subnet" "example" {
+ address_prefixes = [
+ "10.0.2.0/24",
]
+ enforce_private_link_endpoint_network_policies = (known after apply)
+ enforce_private_link_service_network_policies = (known after apply)
+ id = (known after apply)
+ name = (known after apply)
+ private_endpoint_network_policies_enabled = (known after apply)
+ private_link_service_network_policies_enabled = (known after apply)
+ resource_group_name = (known after apply)
+ virtual_network_name = (known after apply)
}
# azurerm_virtual_network.example will be created
+ resource "azurerm_virtual_network" "example" {
+ address_space = [
+ "10.0.0.0/16",
]
+ dns_servers = (known after apply)
+ guid = (known after apply)
+ id = (known after apply)
+ location = "eastus"
+ name = (known after apply)
+ resource_group_name = (known after apply)
+ subnet = (known after apply)
}
Plan: 4 to add, 0 to change, 0 to destroy.
```

View File

@ -1,627 +0,0 @@
## 08 Oct 23 02:51 UTC
Success: true
### Versions
Terraform v1.5.6
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.75.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 01 Oct 23 04:13 UTC
Success: true
### Versions
Terraform v1.5.6
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.75.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 24 Sep 23 02:51 UTC
Success: true
### Versions
Terraform v1.5.6
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.74.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 20 Sep 23 09:04 UTC
Success: true
### Versions
Terraform v1.5.6
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.73.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 17 Sep 23 02:54 UTC
Success: true
### Versions
Terraform v1.5.5
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.73.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 10 Sep 23 02:56 UTC
Success: true
### Versions
Terraform v1.5.4
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.72.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 03 Sep 23 04:06 UTC
Success: true
### Versions
Terraform v1.5.4
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.71.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 27 Aug 23 03:35 UTC
Success: true
### Versions
Terraform v1.5.4
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.71.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 20 Aug 23 04:04 UTC
Success: true
### Versions
Terraform v1.5.3
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.70.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 13 Aug 23 03:59 UTC
Success: true
### Versions
Terraform v1.5.2
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.69.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 06 Aug 23 04:11 UTC
Success: true
### Versions
Terraform v1.5.1
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.68.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 30 Jul 23 04:06 UTC
Success: true
### Versions
Terraform v1.5.1
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.67.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 16 Jul 23 03:01 UTC
Success: true
### Versions
Terraform v1.5.0
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.65.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 09 Jul 23 04:00 UTC
Success: true
### Versions
Terraform v1.5.0
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.64.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 02 Jul 23 04:14 UTC
Success: true
### Versions
Terraform v1.5.0
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.63.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 25 Jun 23 05:25 UTC
Success: true
### Versions
Terraform v1.5.0
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.62.1
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 18 Jun 23 04:11 UTC
Success: true
### Versions
Terraform v1.4.6
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.61.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 11 Jun 23 04:10 UTC
Success: true
### Versions
Terraform v1.4.6
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.60.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 04 Jun 23 04:27 UTC
Success: true
### Versions
Terraform v1.4.6
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.59.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 28 May 23 03:49 UTC
Success: true
### Versions
Terraform v1.4.5
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.58.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 21 May 23 02:54 UTC
Success: true
### Versions
Terraform v1.4.5
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.57.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 14 May 23 02:50 UTC
Success: true
### Versions
Terraform v1.4.5
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.56.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 07 May 23 04:04 UTC
Success: true
### Versions
Terraform v1.4.5
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.55.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 30 Apr 23 03:02 UTC
Success: true
### Versions
Terraform v1.4.5
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.54.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 23 Apr 23 02:53 UTC
Success: true
### Versions
Terraform v1.4.4
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.53.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 16 Apr 23 04:17 UTC
Success: true
### Versions
Terraform v1.4.3
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.52.0
+ provider registry.terraform.io/hashicorp/random v3.5.1
### Error
---
## 09 Apr 23 03:39 UTC
Success: true
### Versions
Terraform v1.4.2
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.51.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 02 Apr 23 02:40 UTC
Success: true
### Versions
Terraform v1.4.1
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.50.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 26 Mar 23 03:17 UTC
Success: true
### Versions
Terraform v1.4.1
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.49.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 19 Mar 23 02:50 UTC
Success: true
### Versions
Terraform v1.4.0
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.48.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 14 Mar 23 08:46 UTC
Success: true
### Versions
Terraform v1.3.9
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.47.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 12 Mar 23 04:36 UTC
Success: true
### Versions
Terraform v1.3.8
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.47.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 08 Mar 23 17:06 UTC
Success: true
### Versions
Terraform v1.3.8
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.46.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 19 Feb 23 01:34 UTC
Success: true
### Versions
Terraform v1.3.7
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.44.1
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 17 Feb 23 01:35 UTC
Success: true
### Versions
Terraform v1.3.7
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.43.0
+ provider registry.terraform.io/hashicorp/random v3.4.3
### Error
---
## 12 Feb 23 00:48 UTC
Success: false
### Versions
Terraform v1.3.7
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.43.0
### Error
---
## 05 Feb 23 00:21 UTC
Success: false
### Versions
Terraform v1.3.7
on linux_amd64
+ provider registry.terraform.io/hashicorp/azurerm v3.42.0
### Error
---

View File

@ -1,32 +1,37 @@
resource "azurerm_resource_group" "example" {
name = "my-terraform-AMLFS-test"
location = "East US"
name = "${random_pet.prefix.id}-rg"
location = var.rg_location
}
resource "azurerm_virtual_network" "example" {
name = "my-terraform-AMLFS-vnet"
address_space = ["10.90.0.0/16"]
location = azurerm_resource_group.example.location
name = "${random_pet.prefix.id}-vnet"
resource_group_name = azurerm_resource_group.example.name
address_space = ["10.0.0.0/16"]
location = azurerm_resource_group.example.location
}
resource "azurerm_subnet" "example" {
name = "my-terraform-AMLFS-subnet"
name = "${random_pet.prefix.id}-subnet"
resource_group_name = azurerm_resource_group.example.name
virtual_network_name = azurerm_virtual_network.example.name
address_prefixes = ["10.90.2.0/24"]
address_prefixes = ["10.0.2.0/24"]
}
resource "azurerm_managed_lustre_file_system" "example" {
name = "my-terraform-AMLFS-cluster"
name = "${random_pet.prefix.id}"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku_name = "AMLFS-Durable-Premium-40"
sku_name = var.amlfs_sku_name
subnet_id = azurerm_subnet.example.id
storage_capacity_in_tb = 48
storage_capacity_in_tb = var.amlfs_storage_capacity_in_tb
zones = ["1"]
maintenance_window {
day_of_week = "Saturday"
time_of_day_in_utc = "02:00"
day_of_week = var.amlfs_maintenance_day_of_week
time_of_day_in_utc = var.amlfs_maintenance_time_of_day
}
}
resource "random_pet" "prefix" {
prefix = var.prefix
length = 1
}

View File

@ -0,0 +1,19 @@
output "virtual_network_name" {
value = azurerm_virtual_network.example.name
}
output "subnet_name" {
value = azurerm_subnet.example.name
}
output "azurerm_managed_lustre_file_system" {
value = azurerm_managed_lustre_file_system.example.name
}
output "amlfs_sku_name" {
value = azurerm_managed_lustre_file_system.example.sku_name
}
output "amlfs_storage_capacity_in_tb" {
value = azurerm_managed_lustre_file_system.example.storage_capacity_in_tb
}

View File

@ -1,5 +1,35 @@
variable "location" {
variable "prefix" {
type = string
default = "managed-lustre-file-system"
description = "Prefix of the resource name"
}
variable "rg_location" {
type = string
default = "eastus"
description = "Resource group location"
}
variable "amlfs_sku_name" {
type = string
default = "AMLFS-Durable-Premium-40"
description = "SKU name for the Azure Managed Lustre file system"
}
variable "amlfs_storage_capacity_in_tb" {
type = number
default = 48
description = "The size of the Managed Lustre file system, in TiB. This might be rounded up."
}
variable "amlfs_maintenance_day_of_week" {
type = string
default = "Saturday"
description = "Day of the week on which the maintenance window will occur"
}
variable "amlfs_maintenance_time_of_day" {
type = string
default = "02:00"
description = "The time of day (in UTC) to start the maintenance window"
}