1+ # # Copyright (c) 2020, Oracle and/or its affiliates.
2+ # # All rights reserved. The Universal Permissive License (UPL), Version 1.0 as shown at http://oss.oracle.com/licenses/upl
3+
14resource "oci_core_instance" "BastionHost" {
25 availability_domain = data. oci_identity_availability_domains . ADs . availability_domains [0 ][" name" ]
36 compartment_id = var. compartment_ocid
47 display_name = " BastionHost"
58 shape = var. BastionShape
69
10+ dynamic "shape_config" {
11+ for_each = local. is_flexible_bastion_shape ? [1 ] : []
12+ content {
13+ memory_in_gbs = var. Bastion_Flex_Shape_Memory
14+ ocpus = var. Bastion_Flex_Shape_OCPUS
15+ }
16+ }
17+
718 create_vnic_details {
819 subnet_id = oci_core_subnet. BastionSubnetAD1 . id
920 skip_source_dest_check = true
1021 }
1122
1223 metadata = {
13- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
14- user_data = base64encode ( file (var . BastionBootStrap ))
24+ ssh_authorized_keys = var.ssh_public_key
25+ user_data = data.template_cloudinit_config.cloud_init_bastion.rendered
1526 }
1627
1728 source_details {
18- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
29+ source_id = lookup (data. oci_core_images . InstanceImageOCID_Bastion . images [0 ], " id" )
1930 source_type = " image"
2031 }
2132
@@ -31,6 +42,15 @@ resource "oci_core_instance" "ESMasterNode1" {
3142 compartment_id = var. compartment_ocid
3243 display_name = " ESMasterNode1"
3344 shape = var. MasterNodeShape
45+
46+ dynamic "shape_config" {
47+ for_each = local. is_flexible_masternode_shape ? [1 ] : []
48+ content {
49+ memory_in_gbs = var. MasterNode_Flex_Shape_Memory
50+ ocpus = var. MasterNode_Flex_Shape_OCPUS
51+ }
52+ }
53+
3454 depends_on = [oci_core_instance . BastionHost ]
3555
3656 create_vnic_details {
@@ -39,11 +59,12 @@ resource "oci_core_instance" "ESMasterNode1" {
3959 }
4060
4161 metadata = {
42- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
62+ ssh_authorized_keys = var.ssh_public_key
63+ user_data = data.template_cloudinit_config.cloud_init.rendered
4364 }
4465
4566 source_details {
46- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
67+ source_id = lookup (data. oci_core_images . InstanceImageOCID_MasterNode . images [0 ], " id" )
4768 source_type = " image"
4869 boot_volume_size_in_gbs = var. BootVolSize
4970 }
@@ -60,6 +81,15 @@ resource "oci_core_instance" "ESMasterNode2" {
6081 compartment_id = var. compartment_ocid
6182 display_name = " ESMasterNode2"
6283 shape = var. MasterNodeShape
84+
85+ dynamic "shape_config" {
86+ for_each = local. is_flexible_masternode_shape ? [1 ] : []
87+ content {
88+ memory_in_gbs = var. MasterNode_Flex_Shape_Memory
89+ ocpus = var. MasterNode_Flex_Shape_OCPUS
90+ }
91+ }
92+
6393 depends_on = [oci_core_instance . BastionHost ]
6494
6595 create_vnic_details {
@@ -68,11 +98,12 @@ resource "oci_core_instance" "ESMasterNode2" {
6898 }
6999
70100 metadata = {
71- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
101+ ssh_authorized_keys = var.ssh_public_key
102+ user_data = data.template_cloudinit_config.cloud_init.rendered
72103 }
73104
74105 source_details {
75- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
106+ source_id = lookup (data. oci_core_images . InstanceImageOCID_MasterNode . images [0 ], " id" )
76107 source_type = " image"
77108 boot_volume_size_in_gbs = var. BootVolSize
78109 }
@@ -89,6 +120,15 @@ resource "oci_core_instance" "ESMasterNode3" {
89120 compartment_id = var. compartment_ocid
90121 display_name = " ESMasterNode3"
91122 shape = var. MasterNodeShape
123+
124+ dynamic "shape_config" {
125+ for_each = local. is_flexible_masternode_shape ? [1 ] : []
126+ content {
127+ memory_in_gbs = var. MasterNode_Flex_Shape_Memory
128+ ocpus = var. MasterNode_Flex_Shape_OCPUS
129+ }
130+ }
131+
92132 depends_on = [oci_core_instance . BastionHost ]
93133
94134 create_vnic_details {
@@ -97,11 +137,12 @@ resource "oci_core_instance" "ESMasterNode3" {
97137 }
98138
99139 metadata = {
100- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
140+ ssh_authorized_keys = var.ssh_public_key
141+ user_data = data.template_cloudinit_config.cloud_init.rendered
101142 }
102143
103144 source_details {
104- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
145+ source_id = lookup (data. oci_core_images . InstanceImageOCID_MasterNode . images [0 ], " id" )
105146 source_type = " image"
106147 boot_volume_size_in_gbs = var. BootVolSize
107148 }
@@ -118,18 +159,29 @@ resource "oci_core_instance" "ESDataNode1" {
118159 compartment_id = var. compartment_ocid
119160 display_name = " ESDataNode1"
120161 shape = var. DataNodeShape
162+
163+ dynamic "shape_config" {
164+ for_each = local. is_flexible_datanode_shape ? [1 ] : []
165+ content {
166+ memory_in_gbs = var. DataNode_Flex_Shape_Memory
167+ ocpus = var. DataNode_Flex_Shape_OCPUS
168+ }
169+ }
170+
121171 depends_on = [oci_core_instance . BastionHost ]
122172
123173 create_vnic_details {
124174 subnet_id = oci_core_subnet. PrivSubnetAD1 . id
125175 assign_public_ip = false
126176 }
177+
127178 metadata = {
128- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
179+ ssh_authorized_keys = var.ssh_public_key
180+ user_data = data.template_cloudinit_config.cloud_init.rendered
129181 }
130182
131183 source_details {
132- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
184+ source_id = lookup (data. oci_core_images . InstanceImageOCID_DataNode . images [0 ], " id" )
133185 source_type = " image"
134186 boot_volume_size_in_gbs = var. BootVolSize
135187 }
@@ -146,6 +198,15 @@ resource "oci_core_instance" "ESDataNode2" {
146198 compartment_id = var. compartment_ocid
147199 display_name = " ESDataNode2"
148200 shape = var. DataNodeShape
201+
202+ dynamic "shape_config" {
203+ for_each = local. is_flexible_datanode_shape ? [1 ] : []
204+ content {
205+ memory_in_gbs = var. DataNode_Flex_Shape_Memory
206+ ocpus = var. DataNode_Flex_Shape_OCPUS
207+ }
208+ }
209+
149210 depends_on = [oci_core_instance . BastionHost ]
150211
151212 create_vnic_details {
@@ -154,11 +215,12 @@ resource "oci_core_instance" "ESDataNode2" {
154215 }
155216
156217 metadata = {
157- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
218+ ssh_authorized_keys = var.ssh_public_key
219+ user_data = data.template_cloudinit_config.cloud_init.rendered
158220 }
159221
160222 source_details {
161- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
223+ source_id = lookup (data. oci_core_images . InstanceImageOCID_DataNode . images [0 ], " id" )
162224 source_type = " image"
163225 boot_volume_size_in_gbs = var. BootVolSize
164226 }
@@ -175,6 +237,15 @@ resource "oci_core_instance" "ESDataNode3" {
175237 compartment_id = var. compartment_ocid
176238 display_name = " ESDataNode3"
177239 shape = var. DataNodeShape
240+
241+ dynamic "shape_config" {
242+ for_each = local. is_flexible_datanode_shape ? [1 ] : []
243+ content {
244+ memory_in_gbs = var. DataNode_Flex_Shape_Memory
245+ ocpus = var. DataNode_Flex_Shape_OCPUS
246+ }
247+ }
248+
178249 depends_on = [oci_core_instance . BastionHost ]
179250
180251 create_vnic_details {
@@ -183,11 +254,12 @@ resource "oci_core_instance" "ESDataNode3" {
183254 }
184255
185256 metadata = {
186- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
257+ ssh_authorized_keys = var.ssh_public_key
258+ user_data = data.template_cloudinit_config.cloud_init.rendered
187259 }
188260
189261 source_details {
190- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
262+ source_id = lookup (data. oci_core_images . InstanceImageOCID_DataNode . images [0 ], " id" )
191263 source_type = " image"
192264 boot_volume_size_in_gbs = var. BootVolSize
193265 }
@@ -204,6 +276,15 @@ resource "oci_core_instance" "ESDataNode4" {
204276 compartment_id = var. compartment_ocid
205277 display_name = " ESDataNode4"
206278 shape = var. DataNodeShape
279+
280+ dynamic "shape_config" {
281+ for_each = local. is_flexible_datanode_shape ? [1 ] : []
282+ content {
283+ memory_in_gbs = var. DataNode_Flex_Shape_Memory
284+ ocpus = var. DataNode_Flex_Shape_OCPUS
285+ }
286+ }
287+
207288 depends_on = [oci_core_instance . BastionHost ]
208289
209290 create_vnic_details {
@@ -212,11 +293,12 @@ resource "oci_core_instance" "ESDataNode4" {
212293 }
213294
214295 metadata = {
215- ssh_authorized_keys = tls_private_key.public_private_key_pair.public_key_openssh
296+ ssh_authorized_keys = var.ssh_public_key
297+ user_data = data.template_cloudinit_config.cloud_init.rendered
216298 }
217299
218300 source_details {
219- source_id = lookup (data. oci_core_images . InstanceImageOCID . images [0 ], " id" )
301+ source_id = lookup (data. oci_core_images . InstanceImageOCID_DataNode . images [0 ], " id" )
220302 source_type = " image"
221303 boot_volume_size_in_gbs = var. BootVolSize
222304 }
0 commit comments