Skip to content

Commit

Permalink
feat(oci): add always free
Browse files Browse the repository at this point in the history
Signed-off-by: Mateusz Urbanek <mateusz.urbanek.98@gmail.com>
  • Loading branch information
shanduur committed Jan 24, 2025
1 parent 494c871 commit 5880820
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 43 deletions.
1 change: 1 addition & 0 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
brew "opentofu"
brew "terraform-docs"
18 changes: 9 additions & 9 deletions terraform/oci/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ module "oci_core" {
availability_domain = var.availability_domain
}

# module "oci_amd" {
# source = "./modules/always_free"
module "oci_amd" {
source = "./modules/always_free"

# instance_name = "amd"
# instance_shape = "VM.Standard.E2.1.Micro"
# subnet_id = module.oci_core.subnet_id
instance_name = "amd"
instance_shape = "VM.Standard.E2.1.Micro"
subnet_id = module.oci_core.subnet_id

# tenancy_ocid = var.tenancy_ocid
# ssh_public_keys = var.ssh_public_keys
# availability_domain = var.availability_domain
# }
tenancy_ocid = var.tenancy_ocid
ssh_public_keys = var.ssh_public_keys
availability_domain = var.availability_domain
}
76 changes: 42 additions & 34 deletions terraform/oci/modules/always_free/always_free.tf
Original file line number Diff line number Diff line change
Expand Up @@ -3,44 +3,52 @@ data "oci_identity_availability_domain" "ad" {
ad_number = var.availability_domain
}

data "oci_core_images" "instance_images" {
compartment_id = var.tenancy_ocid
operating_system = "Ubuntu"
operating_system_version = "24.04"
shape = var.instance_shape
}

locals {
count = var.instance_shape == "VM.Standard.E2.1.Micro" ? 2 : 1
ocpus = var.instance_shape == "VM.Standard.E2.1.Micro" ? 1 : 4
memory = var.instance_shape == "VM.Standard.E2.1.Micro" ? 1 : 24
boot_volume = var.instance_shape == "VM.Standard.E2.1.Micro" ? 100 : 200
}

resource "oci_core_instance" "instance" {
count = local.count
availability_domain = data.oci_identity_availability_domain.ad.name
compartment_id = var.tenancy_ocid
display_name = format("always-free-%s-${count.index}", replace(title(var.instance_name), "/\\s/", ""))
shape = var.instance_shape

shape_config {
ocpus = local.ocpus
memory_in_gbs = local.memory
}

create_vnic_details {
subnet_id = var.subnet_id
display_name = format("%sVNIC", replace(title(var.instance_name), "/\\s/", ""))
assign_public_ip = true
assign_private_dns_record = true
hostname_label = format("%s${count.index}", lower(replace(var.instance_name, "/\\s/", "")))
}

source_details {
source_type = var.instance_source_type
source_id = var.instance_image_ocid[var.region]
boot_volume_size_in_gbs = local.boot_volume
}

metadata = {
ssh_authorized_keys = var.ssh_public_keys
}

timeouts {
create = "60m"
}
}
# resource "oci_core_instance" "instance" {
# count = local.count
# availability_domain = data.oci_identity_availability_domain.ad.name
# compartment_id = var.tenancy_ocid
# display_name = format("always-free-%s-${count.index}", replace(title(var.instance_name), "/\\s/", ""))
# shape = var.instance_shape

# shape_config {
# ocpus = local.ocpus
# memory_in_gbs = local.memory
# }

# create_vnic_details {
# subnet_id = var.subnet_id
# display_name = format("%sVNIC", replace(title(var.instance_name), "/\\s/", ""))
# assign_public_ip = true
# assign_private_dns_record = true
# hostname_label = format("%s${count.index}", lower(replace(var.instance_name, "/\\s/", "")))
# }

# source_details {
# source_type = var.instance_source_type
# source_id = var.instance_image_ocid[var.region]
# boot_volume_size_in_gbs = local.boot_volume
# boot_volume_vpus_per_gb = 10
# }

# metadata = {
# ssh_authorized_keys = var.ssh_public_keys
# }

# timeouts {
# create = "60m"
# }
# }

0 comments on commit 5880820

Please sign in to comment.