1+ //  Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
2+ //  Licensed under the Mozilla Public License v2.0
3+ 
4+ variable  "vm_multi_attach_instance_shape"  {
5+   default  =  " VM.Standard2.1" 
6+ }
7+ 
8+ resource  "oci_core_volume"  "test_block_volume_multi_attach"  {
9+   availability_domain  =  . oci_identity_availability_domain . ad . name 
10+   compartment_id       =  . compartment_ocid 
11+   display_name         =  " test_attach_existing_volume_on_instance_launch_1" 
12+   size_in_gbs          =  . db_size 
13+ }
14+ 
15+ resource  "oci_core_instance"  "test_vm_multi_attach_instance_launch"  {
16+   availability_domain  =  . oci_identity_availability_domain . ad . name 
17+   compartment_id       =  . compartment_ocid 
18+   display_name         =  " test_vm_multi_attach_instance" 
19+   shape                =  . vm_multi_attach_instance_shape 
20+ 
21+   create_vnic_details  {
22+     subnet_id         =  . test_subnet . id 
23+     display_name      =  " primary_vnic" 
24+     assign_public_ip  =  true 
25+     hostname_label    =  " tfexampleshinstance" 
26+   }
27+ 
28+   source_details  {
29+     source_type  =  " image" 
30+     source_id  =  . instance_image_ocid [var . region ]
31+     #  Apply this to set the size of the boot volume that is created for this instance.
32+     #  Otherwise, the default boot volume size of the image is used.
33+     #  This should only be specified when source_type is set to "image".
34+     # boot_volume_size_in_gbs = "60"
35+     kms_key_id  =  . kms_key_ocid 
36+   }
37+ 
38+   //  Create and attach a volume
39+   launch_volume_attachments  {
40+     type  =  " iscsi" 
41+     display_name  =  " test_create_and_attach_volume_on_launch_1" 
42+     launch_create_volume_details  {
43+       volume_creation_type  =  " ATTRIBUTES" 
44+       compartment_id  =  . compartment_ocid 
45+       display_name  =  " test_create_and_attach_volume_on_launch_1" 
46+       size_in_gbs  =  . db_size 
47+     }
48+   }
49+ 
50+   //  Create and attach a volume
51+   launch_volume_attachments  {
52+     type  =  " iscsi" 
53+     display_name  =  " test_create_and_attach_volume_on_launch_2" 
54+     launch_create_volume_details  {
55+       volume_creation_type  =  " ATTRIBUTES" 
56+       compartment_id  =  . compartment_ocid 
57+       display_name  =  " test_create_and_attach_volume_on_launch_2" 
58+       size_in_gbs  =  . db_size 
59+     }
60+   }
61+ 
62+   //  Attach an existing volume
63+   launch_volume_attachments  {
64+     type  =  " iscsi" 
65+     display_name  =  " test_attach_existing_volume_on_launch" 
66+     volume_id  =  . test_block_volume_multi_attach . id 
67+   }
68+ 
69+   #  Apply the following flag only if you wish to preserve the attached boot volume upon destroying this instance
70+   #  Setting this and destroying the instance will result in a boot volume that should be managed outside of this config.
71+   #  When changing this value, make sure to run 'terraform apply' so that it takes effect before the resource is destroyed.
72+   # preserve_boot_volume = true
73+ 
74+   //  Since preserve_data_volumes_created_at_launch is a required parameter for instances launched with volumes,
75+   //  defaulting it to false.
76+   preserve_data_volumes_created_at_launch  =  false 
77+ 
78+   metadata  =  
79+     ssh_authorized_keys =  var.ssh_public_key
80+     user_data           =  base64encode (file (" ./userdata/bootstrap" 
81+   }
82+   defined_tags  =  
83+     " ${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag2.name}"  =  " awesome-app-server" 
84+   }
85+ 
86+   freeform_tags  =  
87+     " freeformkey"  =  " freeformvalue" 
88+   }
89+   timeouts  {
90+     create  =  " 60m" 
91+   }
92+ }
0 commit comments