Skip to content

Instantly share code, notes, and snippets.

@greyhoundforty
Created May 19, 2023 16:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greyhoundforty/0559f9e89b761c44c094c37d39503712 to your computer and use it in GitHub Desktop.
Save greyhoundforty/0559f9e89b761c44c094c37d39503712 to your computer and use it in GitHub Desktop.
Storage Groups for Classic Bare Metal
variable "deployment" {
description = "Deployment options to use based on var.os. This also determines the Datacenter and VLANs."
type = map(object({
os_reference_code = string
name = string
user_metadata = string
}))
default = {
windows = {
os_reference_code = "OS_WINDOWS_2022_FULL_STD_64_BIT"
name = "win"
user_metadata = "user-data/windows.yml"
},
centos = {
os_reference_code = "OS_CENTOS_STREAM_8_X_64_BIT"
name = "centos"
user_metadata = "user-data/centos.yml"
},
ubuntu = {
os_reference_code = "OS_NO_OPERATING_SYSTEM"
name = "no-os"
user_metadata = null
}
}
}
locals {
date = formatdate("MM-DD-YY", timestamp())
prefix = "${var.deployment["${var.os}"]["name"]}-${local.date}"
tags = [
"project:rolling-iaas",
"owner:ryantiffany",
"deployment_date:${local.date}"
]
}
resource "ibm_compute_bare_metal" "multi_group" {
package_key_name = var.package_key_name
process_key_name = var.process_key_name
memory = 192
os_key_name = var.deployment["${var.os}"]["os_reference_code"]
hostname = "multi-rt"
domain = var.domain
datacenter = var.datacenter
network_speed = var.network_speed
public_bandwidth = 20000
disk_key_names = ["HARD_DRIVE_1_00_TB_SATA_2", "HARD_DRIVE_1_00_TB_SATA_2", "HARD_DRIVE_960GB_SSD", "HARD_DRIVE_960GB_SSD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD"]
hourly_billing = false
private_network_only = false
unbonded_network = true
public_vlan_id = data.ibm_network_vlan.public.id
private_vlan_id = data.ibm_network_vlan.private.id
tags = local.tags
redundant_power_supply = true
user_metadata = var.deployment["${var.os}"]["user_metadata"]
storage_groups {
array_type_id = 2
hard_drives = [0, 1]
array_size = 960
}
storage_groups {
array_type_id = 21
hard_drives = [2, 3]
}
storage_groups {
array_type_id = 21
hard_drives = [4, 5, 6, 7, 8, 9]
}
}
resource "ibm_compute_bare_metal" "single_group" {
package_key_name = var.package_key_name
process_key_name = var.process_key_name
memory = 192
os_key_name = var.deployment["${var.os}"]["os_reference_code"]
hostname = "single-rt"
domain = var.domain
datacenter = var.datacenter
network_speed = var.network_speed
public_bandwidth = 20000
disk_key_names = ["HARD_DRIVE_1_00_TB_SATA_2", "HARD_DRIVE_1_00_TB_SATA_2", "HARD_DRIVE_960GB_SSD", "HARD_DRIVE_960GB_SSD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD", "HARD_DRIVE_3_8TB_SSD_3DWPD"]
hourly_billing = false
private_network_only = false
unbonded_network = true
public_vlan_id = data.ibm_network_vlan.public.id
private_vlan_id = data.ibm_network_vlan.private.id
tags = local.tags
redundant_power_supply = true
user_metadata = var.deployment["${var.os}"]["user_metadata"]
storage_groups {
array_type_id = 2
hard_drives = [0, 1]
array_size = 960
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment