From 807d8064f9800726495de8a33d92147729b459a5 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:31:36 -0600 Subject: [PATCH 01/20] new defaults for compute --- deploy/basic/terraform/compute.tf | 2 +- deploy/basic/terraform/datasources.tf | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy/basic/terraform/compute.tf b/deploy/basic/terraform/compute.tf index 39c04a8a5..f8a8bff69 100755 --- a/deploy/basic/terraform/compute.tf +++ b/deploy/basic/terraform/compute.tf @@ -6,7 +6,7 @@ resource "oci_core_instance" "app_instance" { availability_domain = random_shuffle.compute_ad.result[count.index % length(random_shuffle.compute_ad.result)] compartment_id = var.compartment_ocid display_name = "mushop-${random_string.deploy_id.result}-${count.index}" - shape = var.instance_shape + shape = local.instance_shape is_pv_encryption_in_transit_enabled = var.is_pv_encryption_in_transit_enabled freeform_tags = local.common_tags diff --git a/deploy/basic/terraform/datasources.tf b/deploy/basic/terraform/datasources.tf index ef8a1df5c..1eccf7d07 100755 --- a/deploy/basic/terraform/datasources.tf +++ b/deploy/basic/terraform/datasources.tf @@ -65,7 +65,7 @@ data "oci_limits_limit_definitions" "compute_limit_definitions" { filter { name = "description" - values = [var.instance_shape] + values = [local.instance_shape] } } data "oci_limits_resource_availability" "compute_resource_availability" { @@ -91,7 +91,7 @@ data "oci_core_images" "compute_images" { compartment_id = var.compartment_ocid operating_system = var.image_operating_system operating_system_version = var.image_operating_system_version - shape = var.instance_shape + shape = local.instance_shape sort_by = "TIMECREATED" sort_order = "DESC" } From 99ad3f94b7313343a67288dcfae22d9bdf8eddd0 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:32:07 -0600 Subject: [PATCH 02/20] new defaults for loadbalancer --- deploy/basic/terraform/loadbalancer.tf | 4 ++-- deploy/basic/terraform/variables.tf | 28 +++++++++++++++++++------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/deploy/basic/terraform/loadbalancer.tf b/deploy/basic/terraform/loadbalancer.tf index 8495993be..e97959176 100644 --- a/deploy/basic/terraform/loadbalancer.tf +++ b/deploy/basic/terraform/loadbalancer.tf @@ -5,13 +5,13 @@ resource "oci_load_balancer_load_balancer" "mushop_lb" { compartment_id = (var.lb_compartment_ocid != "") ? var.lb_compartment_ocid : var.compartment_ocid display_name = "mushop-${random_string.deploy_id.result}" - shape = var.lb_shape + shape = local.lb_shape subnet_ids = [oci_core_subnet.mushop_lb_subnet.id] is_private = "false" freeform_tags = local.common_tags dynamic "shape_details" { - for_each = var.lb_shape == "flexible" ? [1] : [] + for_each = local.lb_shape == "flexible" ? [1] : [] content { minimum_bandwidth_in_mbps = var.lb_shape_details_minimum_bandwidth_in_mbps maximum_bandwidth_in_mbps = var.lb_shape_details_maximum_bandwidth_in_mbps diff --git a/deploy/basic/terraform/variables.tf b/deploy/basic/terraform/variables.tf index 2d12f661b..4bd52c6a9 100755 --- a/deploy/basic/terraform/variables.tf +++ b/deploy/basic/terraform/variables.tf @@ -28,7 +28,7 @@ variable "generate_public_ssh_key" { default = true } variable "instance_shape" { - default = "VM.Standard.E2.1.Micro" + default = "VM.Standard2.1" } variable "image_operating_system" { default = "Oracle Linux" @@ -51,7 +51,7 @@ variable "lb_shape_details_minimum_bandwidth_in_mbps" { default = 10 } variable "lb_shape_details_maximum_bandwidth_in_mbps" { - default = 10 + default = 100 } variable "lb_compartment_ocid" { default = "" @@ -140,11 +140,6 @@ variable "vault_key_key_shape_length" { default = 32 } -# Always Free only or support other shapes -variable "use_only_always_free_elegible_resources" { - default = true -} - # ORM Schema visual control variables variable "show_advanced" { default = false @@ -161,4 +156,23 @@ variable "object_storage_mushop_media_visibility" { # MuShop Services variable "services_in_mock_mode" { default = "carts,orders,users" +} + +# Always Free only or support other shapes +variable "use_only_always_free_elegible_resources" { + default = true +} +## Always Free Locals +locals { + instance_shape = var.use_only_always_free_elegible_resources ? "VM.Standard.E2.1.Micro" : var.instance_shape + lb_shape = var.use_only_always_free_elegible_resources ? "flexible" : var.lb_shape + lb_shape_details_minimum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_minimum_bandwidth_in_mbps + lb_shape_details_maximum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_maximum_bandwidth_in_mbps +} + +variable "lb_shape_details_minimum_bandwidth_in_mbps" { + default = 10 +} +variable "lb_shape_details_maximum_bandwidth_in_mbps" { + default = 10 } \ No newline at end of file From 97b8627ab353ff26ebd7babc3354af6891bffb3b Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:32:21 -0600 Subject: [PATCH 03/20] version bump to 1.2.2 --- deploy/basic/VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/basic/VERSION b/deploy/basic/VERSION index cb174d58a..d2d61a7e8 100644 --- a/deploy/basic/VERSION +++ b/deploy/basic/VERSION @@ -1 +1 @@ -1.2.1 \ No newline at end of file +1.2.2 \ No newline at end of file From c042ae4ef385baa3617396b82120cb7118044525 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:36:26 -0600 Subject: [PATCH 04/20] new defaults for atp --- deploy/basic/terraform/atp.tf | 2 +- deploy/basic/terraform/variables.tf | 10 ++-------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/deploy/basic/terraform/atp.tf b/deploy/basic/terraform/atp.tf index 5ecad2e8f..049481517 100644 --- a/deploy/basic/terraform/atp.tf +++ b/deploy/basic/terraform/atp.tf @@ -13,7 +13,7 @@ resource "oci_database_autonomous_database" "mushop_autonomous_database" { db_version = var.autonomous_database_db_version display_name = "${var.autonomous_database_name}-${random_string.deploy_id.result}" freeform_tags = local.common_tags - is_free_tier = var.autonomous_database_is_free_tier + is_free_tier = local.autonomous_database_is_free_tier license_model = var.autonomous_database_license_model nsg_ids = (var.autonomous_database_visibility == "Private") ? [oci_core_network_security_group.atp_nsg[0].id] : [] subnet_id = (var.autonomous_database_visibility == "Private") ? oci_core_subnet.mushop_main_subnet.id : "" diff --git a/deploy/basic/terraform/variables.tf b/deploy/basic/terraform/variables.tf index 4bd52c6a9..7e5b3c402 100755 --- a/deploy/basic/terraform/variables.tf +++ b/deploy/basic/terraform/variables.tf @@ -89,7 +89,7 @@ variable "autonomous_database_license_model" { default = "LICENSE_INCLUDED" } variable "autonomous_database_is_free_tier" { - default = true + default = false } variable "autonomous_database_cpu_core_count" { default = 1 @@ -168,11 +168,5 @@ locals { lb_shape = var.use_only_always_free_elegible_resources ? "flexible" : var.lb_shape lb_shape_details_minimum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_minimum_bandwidth_in_mbps lb_shape_details_maximum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_maximum_bandwidth_in_mbps + autonomous_database_is_free_tier = var.use_only_always_free_elegible_resources ? true : var.autonomous_database_is_free_tier } - -variable "lb_shape_details_minimum_bandwidth_in_mbps" { - default = 10 -} -variable "lb_shape_details_maximum_bandwidth_in_mbps" { - default = 10 -} \ No newline at end of file From 28e9853a9d062206a94827a61882395f9f808a9e Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:39:56 -0600 Subject: [PATCH 05/20] fmt --- deploy/basic/terraform/variables.tf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deploy/basic/terraform/variables.tf b/deploy/basic/terraform/variables.tf index 7e5b3c402..89e47c2e4 100755 --- a/deploy/basic/terraform/variables.tf +++ b/deploy/basic/terraform/variables.tf @@ -164,9 +164,9 @@ variable "use_only_always_free_elegible_resources" { } ## Always Free Locals locals { - instance_shape = var.use_only_always_free_elegible_resources ? "VM.Standard.E2.1.Micro" : var.instance_shape - lb_shape = var.use_only_always_free_elegible_resources ? "flexible" : var.lb_shape + instance_shape = var.use_only_always_free_elegible_resources ? "VM.Standard.E2.1.Micro" : var.instance_shape + lb_shape = var.use_only_always_free_elegible_resources ? "flexible" : var.lb_shape lb_shape_details_minimum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_minimum_bandwidth_in_mbps lb_shape_details_maximum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_maximum_bandwidth_in_mbps - autonomous_database_is_free_tier = var.use_only_always_free_elegible_resources ? true : var.autonomous_database_is_free_tier + autonomous_database_is_free_tier = var.use_only_always_free_elegible_resources ? true : var.autonomous_database_is_free_tier } From 9dcc5aebb40878e9cb5be1b7526984c0dcbf4b7e Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:40:12 -0600 Subject: [PATCH 06/20] tfvars examples updated --- deploy/basic/terraform/terraform.tfvars.example | 8 +++++--- deploy/basic/terraform/tf_msz.tfvars.example | 8 +++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/deploy/basic/terraform/terraform.tfvars.example b/deploy/basic/terraform/terraform.tfvars.example index 1f17719e1..ced68cfe2 100644 --- a/deploy/basic/terraform/terraform.tfvars.example +++ b/deploy/basic/terraform/terraform.tfvars.example @@ -30,9 +30,11 @@ public_ssh_key = "" is_pv_encryption_in_transit_enabled = false # Network Details -lb_shape = "10Mbps-Micro" -lb_compartment_ocid = "" # e.g.: "ocid1.compartment..." -create_secondary_vcn = false +lb_shape = "flexible" +lb_shape_details_minimum_bandwidth_in_mbps = 10 +lb_shape_details_maximum_bandwidth_in_mbps = 10 +lb_compartment_ocid = "" # e.g.: "ocid1.compartment..." +create_secondary_vcn = false # Autonomous Database autonomous_database_license_model = "LICENSE_INCLUDED" # LICENSE_INCLUDED or BRING_YOUR_OWN_LICENSE diff --git a/deploy/basic/terraform/tf_msz.tfvars.example b/deploy/basic/terraform/tf_msz.tfvars.example index 65b7723f8..fc42bf41f 100644 --- a/deploy/basic/terraform/tf_msz.tfvars.example +++ b/deploy/basic/terraform/tf_msz.tfvars.example @@ -30,9 +30,11 @@ public_ssh_key = "" is_pv_encryption_in_transit_enabled = true # Network Details -lb_shape = "100Mbps" -lb_compartment_ocid = "" # e.g.: "ocid1.compartment..." The lb_compartment_ocid need to point to a non-MSZ compartment that allow IG -create_secondary_vcn = true +lb_shape = "flexible" +lb_shape_details_minimum_bandwidth_in_mbps = 100 +lb_shape_details_maximum_bandwidth_in_mbps = 100 +lb_compartment_ocid = "" # e.g.: "ocid1.compartment..." The lb_compartment_ocid need to point to a non-MSZ compartment that allow IG +create_secondary_vcn = true # Autonomous Database autonomous_database_license_model = "LICENSE_INCLUDED" # LICENSE_INCLUDED or BRING_YOUR_OWN_LICENSE From a098e371baebae8bf7b0eea21e49c2bf074b0138 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:42:18 -0600 Subject: [PATCH 07/20] defaults for flexible lb --- deploy/basic/terraform/loadbalancer.tf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deploy/basic/terraform/loadbalancer.tf b/deploy/basic/terraform/loadbalancer.tf index e97959176..e2be209c4 100644 --- a/deploy/basic/terraform/loadbalancer.tf +++ b/deploy/basic/terraform/loadbalancer.tf @@ -13,8 +13,8 @@ resource "oci_load_balancer_load_balancer" "mushop_lb" { dynamic "shape_details" { for_each = local.lb_shape == "flexible" ? [1] : [] content { - minimum_bandwidth_in_mbps = var.lb_shape_details_minimum_bandwidth_in_mbps - maximum_bandwidth_in_mbps = var.lb_shape_details_maximum_bandwidth_in_mbps + minimum_bandwidth_in_mbps = local.lb_shape_details_minimum_bandwidth_in_mbps + maximum_bandwidth_in_mbps = local.lb_shape_details_maximum_bandwidth_in_mbps } } } From d46b9cb7974caada64645b34fda7bf99067db9c2 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:42:30 -0600 Subject: [PATCH 08/20] schema update for new defaults --- deploy/basic/terraform/schema.yaml | 116 ++++++++++++++--------------- 1 file changed, 54 insertions(+), 62 deletions(-) diff --git a/deploy/basic/terraform/schema.yaml b/deploy/basic/terraform/schema.yaml index 84127e150..6892ab634 100644 --- a/deploy/basic/terraform/schema.yaml +++ b/deploy/basic/terraform/schema.yaml @@ -27,6 +27,7 @@ groupings: - title: "Optional Configuration" variables: - autonomous_database_name + - use_only_always_free_elegible_resources - show_advanced - generate_public_ssh_key - public_ssh_key @@ -40,9 +41,12 @@ groupings: - create_vault_policies_for_group - user_admin_group_for_vault_policy - - title: "Advanced Resource Options" + - title: "Advanced Resource Options - Compute" variables: - - use_only_always_free_elegible_resources + - instance_shape + - image_operating_system + - image_operating_system_version + - instance_visibility - title: "Advanced Resource Options - Load Balancer" variables: @@ -54,13 +58,6 @@ groupings: - create_lpg_policies_for_group - user_admin_group_for_lpg_policy - - title: "Advanced Resource Options - Compute" - variables: - - instance_shape - - image_operating_system - - image_operating_system_version - - instance_visibility - - title: "Advanced Resource Options - ATP" variables: - autonomous_database_is_free_tier @@ -208,9 +205,56 @@ variables: type: boolean title: "Use only always free eligible resources?" description: "*** Unchecking this may use options that are not included or supported by Always Free eligible resources." + visible: true + + instance_shape: + type: oci:core:instanceshape:name + title: "Select a shape for the compute instances" + description: "A shape is a template that determines the number of CPUs, amount of memory, and other resources allocated to a newly created instance." + dependsOn: + compartmentId: compartment_ocid + required: true + visible: + not: + - use_only_always_free_elegible_resources + + image_operating_system: + type: string + title: "Compute Image OS" + description: "The OS/image installed on all compute instances." + required: true visible: and: - - show_advanced + - and: + - show_advanced + - not: + - use_only_always_free_elegible_resources + + image_operating_system_version: + type: string + title: "Compute Image OS Version" + description: "The OS/image version installed on all compute instances." + required: true + visible: + and: + - and: + - show_advanced + - not: + - use_only_always_free_elegible_resources + + instance_visibility: + type: enum + enum: + - "Public" + - "Private" + title: "Choose instance visibility type" + description: "The instance visibility will define if assign a public ip address to the compute instance and if the subnet is public or private." + visible: + and: + - and: + - show_advanced + - not: + - use_only_always_free_elegible_resources lb_shape: type: enum @@ -310,58 +354,6 @@ variables: - not: - use_only_always_free_elegible_resources - instance_shape: - type: oci:core:instanceshape:name - title: "Select a shape for the compute instances" - description: "A shape is a template that determines the number of CPUs, amount of memory, and other resources allocated to a newly created instance." - dependsOn: - compartmentId: compartment_ocid - required: true - visible: - and: - - and: - - show_advanced - - not: - - use_only_always_free_elegible_resources - - image_operating_system: - type: string - title: "Compute Image OS" - description: "The OS/image installed on all compute instances." - required: true - visible: - and: - - and: - - show_advanced - - not: - - use_only_always_free_elegible_resources - - image_operating_system_version: - type: string - title: "Compute Image OS Version" - description: "The OS/image version installed on all compute instances." - required: true - visible: - and: - - and: - - show_advanced - - not: - - use_only_always_free_elegible_resources - - instance_visibility: - type: enum - enum: - - "Public" - - "Private" - title: "Choose instance visibility type" - description: "The instance visibility will define if assign a public ip address to the compute instance and if the subnet is public or private." - visible: - and: - - and: - - show_advanced - - not: - - use_only_always_free_elegible_resources - autonomous_database_is_free_tier: type: boolean title: "Use always free Autonomous Database?" From 363a7ecdd5c2b9ef6a2fba9ca5795437aba3617c Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 19:57:01 -0600 Subject: [PATCH 09/20] support for flexible shapes --- deploy/basic/terraform/compute.tf | 18 +++++++++++++----- deploy/basic/terraform/variables.tf | 8 +++++++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/deploy/basic/terraform/compute.tf b/deploy/basic/terraform/compute.tf index f8a8bff69..5a3244a44 100755 --- a/deploy/basic/terraform/compute.tf +++ b/deploy/basic/terraform/compute.tf @@ -10,11 +10,12 @@ resource "oci_core_instance" "app_instance" { is_pv_encryption_in_transit_enabled = var.is_pv_encryption_in_transit_enabled freeform_tags = local.common_tags - create_vnic_details { - subnet_id = oci_core_subnet.mushop_main_subnet.id - display_name = "primaryvnic" - assign_public_ip = (var.instance_visibility == "Private") ? false : true - hostname_label = "mushop-${random_string.deploy_id.result}-${count.index}" + dynamic "shape_config" { + for_each = local.instance_shape == "VM.Standard.E3.Flex" ? [1] : [] + content { + ocpus = var.instance_ocpus + memory_in_gbs = var.instance_shape_config_memory_in_gbs + } } source_details { @@ -23,6 +24,13 @@ resource "oci_core_instance" "app_instance" { kms_key_id = var.use_encryption_from_oci_vault ? (var.create_new_encryption_key ? oci_kms_key.mushop_key[0].id : var.encryption_key_id) : null } + create_vnic_details { + subnet_id = oci_core_subnet.mushop_main_subnet.id + display_name = "primaryvnic" + assign_public_ip = (var.instance_visibility == "Private") ? false : true + hostname_label = "mushop-${random_string.deploy_id.result}-${count.index}" + } + metadata = { ssh_authorized_keys = var.generate_public_ssh_key ? tls_private_key.compute_ssh_key.public_key_openssh : var.public_ssh_key user_data = data.template_cloudinit_config.nodes.rendered diff --git a/deploy/basic/terraform/variables.tf b/deploy/basic/terraform/variables.tf index 89e47c2e4..984f4f640 100755 --- a/deploy/basic/terraform/variables.tf +++ b/deploy/basic/terraform/variables.tf @@ -28,7 +28,13 @@ variable "generate_public_ssh_key" { default = true } variable "instance_shape" { - default = "VM.Standard2.1" + default = "VM.Standard.E3.Flex" +} +variable "instance_ocpus" { + default = 1 +} +variable "instance_shape_config_memory_in_gbs" { + default = 16 } variable "image_operating_system" { default = "Oracle Linux" From 8d46bf97a7a09e2e0f54c1bf5fa7f98ed2f95683 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 20:04:15 -0600 Subject: [PATCH 10/20] tester for flexible compute shapes --- deploy/basic/terraform/compute.tf | 4 ++-- deploy/basic/terraform/variables.tf | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/deploy/basic/terraform/compute.tf b/deploy/basic/terraform/compute.tf index 5a3244a44..1eaec2151 100755 --- a/deploy/basic/terraform/compute.tf +++ b/deploy/basic/terraform/compute.tf @@ -11,9 +11,9 @@ resource "oci_core_instance" "app_instance" { freeform_tags = local.common_tags dynamic "shape_config" { - for_each = local.instance_shape == "VM.Standard.E3.Flex" ? [1] : [] + for_each = local.is_flexible_instance_shape ? [1] : [] content { - ocpus = var.instance_ocpus + ocpus = var.instance_ocpus memory_in_gbs = var.instance_shape_config_memory_in_gbs } } diff --git a/deploy/basic/terraform/variables.tf b/deploy/basic/terraform/variables.tf index 984f4f640..9dd63ad3a 100755 --- a/deploy/basic/terraform/variables.tf +++ b/deploy/basic/terraform/variables.tf @@ -175,4 +175,5 @@ locals { lb_shape_details_minimum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_minimum_bandwidth_in_mbps lb_shape_details_maximum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_maximum_bandwidth_in_mbps autonomous_database_is_free_tier = var.use_only_always_free_elegible_resources ? true : var.autonomous_database_is_free_tier + is_flexible_instance_shape = (var.instance_shape == "VM.Standard.E3.Flex") ? true : false } From 356f95b8c4a2268d6ecc84b3d766322e8e0348a3 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 20:04:50 -0600 Subject: [PATCH 11/20] ocpus and memory on the schema for e3.flex shape --- deploy/basic/terraform/schema.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deploy/basic/terraform/schema.yaml b/deploy/basic/terraform/schema.yaml index 6892ab634..ed643b5cd 100644 --- a/deploy/basic/terraform/schema.yaml +++ b/deploy/basic/terraform/schema.yaml @@ -44,6 +44,8 @@ groupings: - title: "Advanced Resource Options - Compute" variables: - instance_shape + - instance_ocpus + - instance_shape_config_memory_in_gbs - image_operating_system - image_operating_system_version - instance_visibility From 262bbd6bcaf3f8752a0c8e505062f338a034c61b Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 20:14:51 -0600 Subject: [PATCH 12/20] schema support for flex compute shape --- deploy/basic/terraform/schema.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/deploy/basic/terraform/schema.yaml b/deploy/basic/terraform/schema.yaml index ed643b5cd..023276600 100644 --- a/deploy/basic/terraform/schema.yaml +++ b/deploy/basic/terraform/schema.yaml @@ -220,6 +220,34 @@ variables: not: - use_only_always_free_elegible_resources + instance_ocpus: + type: integer + minimum: 1 + maximum: 64 + title: "Number of OCPUs" + description: "You can customize the number of OCPUs to a flexible shape." + visible: + and: + - not: + - use_only_always_free_elegible_resources + - eq: + - instance_shape + - "VM.Standard.E3.Flex" + + instance_shape_config_memory_in_gbs: + type: integer + minimum: 1 + maximum: 1024 + title: "Amount of memory (GB)" + description: "You can customize the amount of memory allocated to a flexible shape." + visible: + and: + - not: + - use_only_always_free_elegible_resources + - eq: + - instance_shape + - "VM.Standard.E3.Flex" + image_operating_system: type: string title: "Compute Image OS" From 51c88dee3f3bd06b17edb97b373986eef72be0eb Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 20:22:05 -0600 Subject: [PATCH 13/20] tfvars example with flex compute shape support --- deploy/basic/terraform/terraform.tfvars.example | 2 ++ deploy/basic/terraform/tf_msz.tfvars.example | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/deploy/basic/terraform/terraform.tfvars.example b/deploy/basic/terraform/terraform.tfvars.example index ced68cfe2..a3d9503d5 100644 --- a/deploy/basic/terraform/terraform.tfvars.example +++ b/deploy/basic/terraform/terraform.tfvars.example @@ -24,6 +24,8 @@ region = "us-phoenix-1" # Compute num_nodes = 2 instance_shape = "VM.Standard.E2.1.Micro" +instance_ocpus = 1 # instance_ocpus only used when instance_shape is a flex compute shape +instance_shape_config_memory_in_gbs = 16 # instance_shape_config_memory_in_gbs only used when instance_shape is a flex compute shape instance_visibility = "Public" generate_public_ssh_key = true public_ssh_key = "" diff --git a/deploy/basic/terraform/tf_msz.tfvars.example b/deploy/basic/terraform/tf_msz.tfvars.example index fc42bf41f..c3cd0dafe 100644 --- a/deploy/basic/terraform/tf_msz.tfvars.example +++ b/deploy/basic/terraform/tf_msz.tfvars.example @@ -23,7 +23,9 @@ region = "us-phoenix-1" # Compute num_nodes = 2 -instance_shape = "VM.Standard2.1" +instance_shape = "VM.Standard.E3.Flex" +instance_ocpus = 1 # instance_ocpus only used when instance_shape is a flex compute shape +instance_shape_config_memory_in_gbs = 16 # instance_shape_config_memory_in_gbs only used when instance_shape is a flex compute shape instance_visibility = "Private" generate_public_ssh_key = true public_ssh_key = "" From 24c1d5bf88b7f925f092bdf90896584991991dd3 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Wed, 3 Mar 2021 21:09:22 -0600 Subject: [PATCH 14/20] catalogue builder updated to go 1.16 --- deploy/basic/Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/deploy/basic/Dockerfile b/deploy/basic/Dockerfile index 6f796529d..0fd6bfc53 100644 --- a/deploy/basic/Dockerfile +++ b/deploy/basic/Dockerfile @@ -99,7 +99,7 @@ RUN rm -rf node_modules products hero *.md ############################### # ##### Go Builder image -FROM golang:1.14 AS catalogue-builder +FROM golang:1.16 AS catalogue-builder WORKDIR /go/src/mushop/catalogue # # Catalogue Go Source @@ -107,6 +107,10 @@ COPY src/catalogue/cmd/cataloguesvc/*.go cmd/cataloguesvc/ COPY src/catalogue/*.go ./ COPY src/catalogue/go.mod ./ +# # Get Go Modules +RUN go get . +RUN go get mushop/catalogue/cmd/cataloguesvc + # # Build Catalogue service RUN GO111MODULE=on GOARCH=amd64 GOOS=linux \ go build -a \ From 95edfc55b06ec904245f1fece7f961121a7ba365 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Thu, 4 Mar 2021 23:01:57 -0600 Subject: [PATCH 15/20] instructions tweak --- deploy/basic/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/basic/README.md b/deploy/basic/README.md index 50c2f40b6..6cbce87e5 100644 --- a/deploy/basic/README.md +++ b/deploy/basic/README.md @@ -58,7 +58,7 @@ After complete the Build steps 1 and 2, generate the binaries: - Copy mushop media images to populate the object storage: -`docker run -v $PWD:/transfer --rm --entrypoint cp mushop-basic:latest /basic/image/*.png /transfer/deploy/basic/terraform/images/` +`docker run -v $PWD:/transfer --rm --entrypoint cp mushop-basic:latest -vr /basic/images/ /transfer/deploy/basic/terraform/` - Rename the file `terraform.tfvars.example` to `terraform.tfvars` - Change the credentials variables to your user and any other desirable variables From d4d19db5cb12028a33d03d11efca592c9ff60036 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Fri, 5 Mar 2021 13:20:46 -0600 Subject: [PATCH 16/20] flexible shapes variables --- deploy/basic/terraform/variables.tf | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/deploy/basic/terraform/variables.tf b/deploy/basic/terraform/variables.tf index 9dd63ad3a..d7c239cca 100755 --- a/deploy/basic/terraform/variables.tf +++ b/deploy/basic/terraform/variables.tf @@ -170,10 +170,17 @@ variable "use_only_always_free_elegible_resources" { } ## Always Free Locals locals { - instance_shape = var.use_only_always_free_elegible_resources ? "VM.Standard.E2.1.Micro" : var.instance_shape - lb_shape = var.use_only_always_free_elegible_resources ? "flexible" : var.lb_shape + instance_shape = var.use_only_always_free_elegible_resources ? local.compute_shape_micro : var.instance_shape + lb_shape = var.use_only_always_free_elegible_resources ? local.lb_shape_flexible : var.lb_shape lb_shape_details_minimum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_minimum_bandwidth_in_mbps lb_shape_details_maximum_bandwidth_in_mbps = var.use_only_always_free_elegible_resources ? 10 : var.lb_shape_details_maximum_bandwidth_in_mbps autonomous_database_is_free_tier = var.use_only_always_free_elegible_resources ? true : var.autonomous_database_is_free_tier - is_flexible_instance_shape = (var.instance_shape == "VM.Standard.E3.Flex") ? true : false +} + +# Shapes +locals { + compute_shape_micro = "VM.Standard.E2.1.Micro" + compute_shape_flexible = "VM.Standard.E3.Flex" + compute_shape_flexible_description = "Cores for Standard.E3.Flex and BM.Standard.E3.128 Instances" + lb_shape_flexible = "flexible" } From 710cbf0271267121fbf3f32d63b1c2c8ec0eb4e9 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Fri, 5 Mar 2021 13:20:58 -0600 Subject: [PATCH 17/20] updated to use terraform 0.14 --- deploy/basic/terraform/providers.tf | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/deploy/basic/terraform/providers.tf b/deploy/basic/terraform/providers.tf index dd9e7babe..09f74db59 100755 --- a/deploy/basic/terraform/providers.tf +++ b/deploy/basic/terraform/providers.tf @@ -3,12 +3,24 @@ # terraform { - required_version = ">= 0.12.29" - # required_providers { - # oci = ">= 3.90" - # tls = ">= 2.0" - # random = ">= 2.1" - # } + required_providers { + local = { + source = "hashicorp/local" + } + oci = { + source = "hashicorp/oci" + } + random = { + source = "hashicorp/random" + } + template = { + source = "hashicorp/template" + } + tls = { + source = "hashicorp/tls" + } + } + required_version = ">= 0.14" } provider "oci" { From 003824c0089ae890f404081ca260e700e8a7f5a7 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Fri, 5 Mar 2021 13:21:31 -0600 Subject: [PATCH 18/20] dynamic support for compute flexible shapes for use with limit checker --- deploy/basic/terraform/datasources.tf | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/deploy/basic/terraform/datasources.tf b/deploy/basic/terraform/datasources.tf index 1eccf7d07..8aa43b088 100755 --- a/deploy/basic/terraform/datasources.tf +++ b/deploy/basic/terraform/datasources.tf @@ -63,9 +63,20 @@ data "oci_limits_limit_definitions" "compute_limit_definitions" { compartment_id = var.tenancy_ocid service_name = data.oci_limits_services.compute_services.services.0.name - filter { - name = "description" - values = [local.instance_shape] + dynamic "filter" { + for_each = local.is_flexible_instance_shape ? [1] : [] + content { + name = "description" + values = [local.compute_shape_flexible_description] + } + } + + dynamic "filter" { + for_each = local.is_flexible_instance_shape ? [] : [1] + content { + name = "description" + values = [local.instance_shape] + } } } data "oci_limits_resource_availability" "compute_resource_availability" { @@ -81,9 +92,10 @@ resource "random_shuffle" "compute_ad" { result_count = length(local.compute_available_limit_ad_list) } locals { - compute_available_limit_ad_list = [for limit in data.oci_limits_resource_availability.compute_resource_availability : limit.availability_domain if(limit.available - var.num_nodes) >= 0] - compute_available_limit_error = length(local.compute_available_limit_ad_list) == 0 ? ( - file("ERROR: No limits available for the chosen compute shape and number of nodes")) : 0 + compute_multiplier_nodes_ocpus = (local.instance_shape == local.compute_shape_flexible) ? (var.num_nodes * var.instance_ocpus) : var.num_nodes + compute_available_limit_ad_list = [for limit in data.oci_limits_resource_availability.compute_resource_availability : limit.availability_domain if(limit.available - local.compute_multiplier_nodes_ocpus) >= 0] + compute_available_limit_check = length(local.compute_available_limit_ad_list) == 0 ? ( + file("ERROR: No limits available for the chosen compute shape and number of nodes or OCPUs")) : 0 } # Gets a list of supported images based on the shape, operating_system and operating_system_version provided From ec0b578927340c1d1dec96988d2f0932177a645e Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Fri, 5 Mar 2021 13:21:52 -0600 Subject: [PATCH 19/20] flex compute shape check --- deploy/basic/terraform/compute.tf | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/deploy/basic/terraform/compute.tf b/deploy/basic/terraform/compute.tf index 1eaec2151..a04249ab7 100755 --- a/deploy/basic/terraform/compute.tf +++ b/deploy/basic/terraform/compute.tf @@ -1,4 +1,4 @@ -# Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2019-2021 Oracle and/or its affiliates. All rights reserved. # Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl. # @@ -48,4 +48,8 @@ resource "oci_core_instance" "app_instance" { resource "tls_private_key" "compute_ssh_key" { algorithm = "RSA" rsa_bits = 2048 +} + +locals { + is_flexible_instance_shape = (local.instance_shape == local.compute_shape_flexible) ? true : false } \ No newline at end of file From 0bfdb2778d538b2492a379fec82b7b1da15653c6 Mon Sep 17 00:00:00 2001 From: Adao Junior Date: Fri, 5 Mar 2021 13:23:43 -0600 Subject: [PATCH 20/20] tfvars.example note about flexible shape --- deploy/basic/terraform/terraform.tfvars.example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/basic/terraform/terraform.tfvars.example b/deploy/basic/terraform/terraform.tfvars.example index a3d9503d5..671192b1b 100644 --- a/deploy/basic/terraform/terraform.tfvars.example +++ b/deploy/basic/terraform/terraform.tfvars.example @@ -23,7 +23,7 @@ region = "us-phoenix-1" # Compute num_nodes = 2 -instance_shape = "VM.Standard.E2.1.Micro" +instance_shape = "VM.Standard.E2.1.Micro" # Micro shape for Always-free shape. If want to use flexible, change to "VM.Standard.E3.Flex" instance_ocpus = 1 # instance_ocpus only used when instance_shape is a flex compute shape instance_shape_config_memory_in_gbs = 16 # instance_shape_config_memory_in_gbs only used when instance_shape is a flex compute shape instance_visibility = "Public"