1- # Copyright (c) 2019 Oracle and/or its affiliates. All rights reserved.
1+ # Copyright (c) 2019, 2020 Oracle and/or its affiliates. All rights reserved.
22# Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl.
33#
44
55terraform {
6- required_version = " >= 0.12.0 "
6+ required_version = " >= 0.12.16 "
77}
88data "template_file" "mushop" {
99 template = " ${ file (" ./scripts/node.sh" )} "
1010}
1111
12- resource "oci_core_instance" "app-instance " {
12+ resource "oci_core_instance" "app_instance " {
1313 count = var. num_nodes
1414 availability_domain = local. availability_domain [0 ]
1515 compartment_id = var. compartment_ocid
1616 display_name = " mushop-${ random_id . mushop_id . dec } -${ count . index } "
17- shape = local . instance_shape
17+ shape = var . instance_shape
1818 freeform_tags = local. common_tags
1919
2020 create_vnic_details {
@@ -26,11 +26,11 @@ resource "oci_core_instance" "app-instance" {
2626
2727 source_details {
2828 source_type = " image"
29- source_id = local . images [var . region ]
29+ source_id = lookup (data . oci_core_images . compute_images . images [0 ], " id " )
3030 }
3131
3232 metadata = {
33- ssh_authorized_keys = var.ssh_public_key
33+ ssh_authorized_keys = var.generate_public_ssh_key ? tls_private_key.compute_ssh_key.public_key_openssh : var.public_ssh_key
3434 user_data = base64encode (data. template_file . mushop . rendered )
3535 db_name = oci_database_autonomous_database.mushop_autonomous_database.db_name
3636 atp_pw = random_string.autonomous_database_wallet_password.result
@@ -42,39 +42,20 @@ resource "oci_core_instance" "app-instance" {
4242 assets_par = " https://objectstorage.${ var . region } .oraclecloud.com${ oci_objectstorage_preauthrequest . mushop_media_preauth . access_uri } "
4343 assets_url = " https://objectstorage.${ var . region } .oraclecloud.com/n/${ oci_objectstorage_bucket . mushop_media . namespace } /b/${ oci_objectstorage_bucket . mushop_media . name } /o/"
4444 }
45-
46- }
47-
48- // https://docs.cloud.oracle.com/iaas/images/image/4e74174f-0b44-4447-bb09-dc05b23cf3ee/
49- // Oracle-Linux-7.7-2019.08.28-0
50- locals {
51- images = {
52- ap-mumbai-1 = " ocid1.image.oc1.ap-mumbai-1.aaaaaaaanqnm77gq2dpmc2aih2ddlwlahuv2qwmokufb7zbi52v67pzkzycq"
53- ap-seoul-1 = " ocid1.image.oc1.ap-seoul-1.aaaaaaaav3lc5w7cvz5yr6hpjdubxupjeduzd5xvaroyhjg6vwqzsdvgus6q"
54- ap-sydney-1 = " ocid1.image.oc1.ap-sydney-1.aaaaaaaagtfumjxhosxrkgfci3dgwvsmp35ip5nbhy2rypxfh3rwtqsozkcq"
55- ap-tokyo-1 = " ocid1.image.oc1.ap-tokyo-1.aaaaaaaajousbvplzyrh727e3d4sb6bam5d2fomwhbtzatoun5sqcuvvfjnq"
56- ca-toronto-1 = " ocid1.image.oc1.ca-toronto-1.aaaaaaaavr35ze44lkflxffkhmt4xyamkfjpbjhsm5awxjwlnp3gpx7h7fgq"
57- eu-frankfurt-1 = " ocid1.image.oc1.eu-frankfurt-1.aaaaaaaa7gj6uot6tz6t34qjzvkldxtwse7gr5m7xvnh6xfm53ddxp3w37ja"
58- eu-zurich-1 = " ocid1.image.oc1.eu-zurich-1.aaaaaaaasl3mlhvgzhfglqqkwdbppmmgomkz6iyi42wjkceldqcpecg7jzgq"
59- sa-saopaulo-1 = " ocid1.image.oc1.sa-saopaulo-1.aaaaaaaawamujpmwxbjgrfeb66zpew5sgz4bimzb4wgcwhqdjyct53bucvoq"
60- uk-london-1 = " ocid1.image.oc1.uk-london-1.aaaaaaaa6trfxqtp5ib7yfgj725js3o6agntmv6vckarebsmacrhdxqojeya"
61- us-ashburn-1 = " ocid1.image.oc1.iad.aaaaaaaayuihpsm2nfkxztdkottbjtfjqhgod7hfuirt2rqlewxrmdlgg75q"
62- us-langley-1 = " ocid1.image.oc2.us-langley-1.aaaaaaaaazlspcasnl4ibjwu7g5ukiaqjp6xcbk5lqgtdsazd7v6evbkwxcq"
63- us-luke-1 = " ocid1.image.oc2.us-luke-1.aaaaaaaa73qnm5jktrwmkutf6iaigib4msieymk2s5r5iweq5yvqublgcx5q"
64- us-phoenix-1 = " ocid1.image.oc1.phx.aaaaaaaadtmpmfm77czi5ghi5zh7uvkguu6dsecsg7kuo3eigc5663und4za"
65- }
66-
67-
68- instance_shape = " VM.Standard.E2.1.Micro"
6945
70- availability_domain = [for limit in data . oci_limits_limit_values . test_limit_values : limit . limit_values [0 ]. availability_domain if limit . limit_values [0 ]. value > 0 ]
71-
72- num_nodes = 2
46+ }
7347
74- lb_shape = " 10Mbps-Micro"
48+ locals {
49+ availability_domain = [for limit in data . oci_limits_limit_values . test_limit_values : limit . limit_values [0 ]. availability_domain if limit . limit_values [0 ]. value > 0 ]
7550
7651 common_tags = {
7752 Reference = " Created by OCI QuickStart for Free Tier"
7853 }
7954
8055}
56+
57+ # Generate ssh keys to access Compute Nodes, if generate_public_ssh_key=true, applies to the Compute
58+ resource "tls_private_key" "compute_ssh_key" {
59+ algorithm = " RSA"
60+ rsa_bits = 2048
61+ }
0 commit comments