Skip to content

Instantly share code, notes, and snippets.

@greyhoundforty
Created January 7, 2023 20:06
Show Gist options
  • Save greyhoundforty/c6623b373b03b536ec17ae562acf58c2 to your computer and use it in GitHub Desktop.
Save greyhoundforty/c6623b373b03b536ec17ae562acf58c2 to your computer and use it in GitHub Desktop.
IBM Cloud Classic Bare Metal Example
locals {
  tags = [
    "datacenter:${var.datacenter}",
    "owner:${var.owner}",
    "workspace:${terraform.workspace}",
    "provider:ibmcloud"
  ]
}

resource "ibm_compute_bare_metal" "monthly_bm1" {
  # Mandatory fields
  package_key_name       = var.package_key_name
  process_key_name       = var.process_key_name
  memory                 = 128
  os_key_name            = "OS_UBUNTU_20_04_LTS_FOCAL_FOSSA_64_BIT"
  hostname               = var.name
  domain                 = var.domain_name
  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_1_00_TB_SATA_2", "HARD_DRIVE_1_00_TB_SATA_2"]
  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
  user_metadata          = file("${path.module}/user_data.yaml")
  redundant_power_supply = true
  storage_groups {
    array_type_id = 2
    hard_drives   = [0, 1]
    array_size    = 1000
  }

  storage_groups {
    array_type_id = 9
    hard_drives   = [2]
    array_size    = 1000
  }

  storage_groups {
    array_type_id = 9
    hard_drives   = [3]
    array_size    = 1000
  }
  lifecycle {
    ignore_changes = [
      tags,
      domain,
    ]
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment