Skip to content

Commit 13f9ed3

Browse files
Merge pull request #1 from oracle-devrel/CloudFoundation
Cloud Foundation
2 parents 23bc131 + 78e05da commit 13f9ed3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+6622
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
resource "oci_core_instance" "instance" {
3+
4+
for_each = var.instance_params
5+
6+
availability_domain = each.value.availability_domain
7+
compartment_id = each.value.compartment_id
8+
display_name = each.value.display_name
9+
shape = each.value.shape
10+
11+
defined_tags = each.value.defined_tags
12+
freeform_tags = each.value.freeform_tags
13+
14+
create_vnic_details {
15+
subnet_id = each.value.create_vnic_details.subnet_id
16+
skip_source_dest_check = each.value.create_vnic_details.skip_source_dest_check
17+
}
18+
19+
shape_config {
20+
#Optional
21+
ocpus = each.value.ocpus
22+
}
23+
24+
source_details {
25+
source_type = each.value.source_type
26+
source_id = each.value.source_id
27+
}
28+
29+
metadata = each.value.metadata
30+
31+
instance_options {
32+
are_legacy_imds_endpoints_disabled = each.value.are_legacy_imds_endpoints_disabled
33+
}
34+
35+
timeouts {
36+
create = "${each.value.provisioning_timeout_mins}m"
37+
}
38+
39+
#prevent any metadata changes to destroy instance
40+
lifecycle {
41+
ignore_changes = [metadata, shape, shape_config]
42+
}
43+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
# Output the private and public IPs of the instance
3+
output "InstancePrivateIPs" {
4+
value = [ for b in oci_core_instance.instance : b.private_ip]
5+
}
6+
7+
output "InstancePublicIPs" {
8+
value = [ for b in oci_core_instance.instance : b.public_ip]
9+
}
10+
11+
output "InstanceOcids" {
12+
value = [ for b in oci_core_instance.instance : b.id]
13+
}
14+
15+
output "display_names" {
16+
value = [ for b in oci_core_instance.instance : b.display_name]
17+
}
18+
19+
output "InstanceShapes" {
20+
value = [ for b in oci_core_instance.instance : b.shape]
21+
}
22+
23+
output "AvailabilityDomains" {
24+
value = [ for b in oci_core_instance.instance : b.availability_domain]
25+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
variable "instance_params" {
2+
3+
type = map(object({
4+
5+
availability_domain = string
6+
compartment_id = string
7+
display_name = string
8+
shape = string
9+
10+
defined_tags = map(string)
11+
freeform_tags = map(string)
12+
13+
create_vnic_details = map(string)
14+
15+
ocpus = number
16+
17+
source_type = string
18+
source_id = string
19+
20+
metadata = map(string)
21+
22+
are_legacy_imds_endpoints_disabled = string
23+
24+
provisioning_timeout_mins = string
25+
26+
}))
27+
28+
}
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#Resource for ATP database
2+
3+
/*data "oci_kms_decrypted_data" "password" {
4+
ciphertext = "${var.kms_encrypted_value}"
5+
crypto_endpoint = "${var.kms_crypto_endpoint}"
6+
key_id = "${var.kms_key_id}"
7+
}*/
8+
9+
resource "oci_database_autonomous_database" "autonomous_database" {
10+
11+
#Required
12+
13+
compartment_id = var.compartment_ocid
14+
cpu_core_count = var.autonomous_database_cpu_core_count
15+
db_name = var.autonomous_database_db_name
16+
display_name = var.autonomous_database_db_name
17+
//admin_password = "${data.oci_kms_decrypted_data.password.plaintext}"
18+
admin_password = base64decode(var.autonomous_database_admin_password)
19+
data_storage_size_in_tbs = var.autonomous_database_data_storage_size_in_tbs
20+
21+
#Optional
22+
#admin_password = var.autonomous_database_admin_password
23+
#are_primary_whitelisted_ips_used = var.autonomous_database_are_primary_whitelisted_ips_used
24+
#autonomous_container_database_id = oci_database_autonomous_container_database.test_autonomous_container_database.id
25+
#autonomous_database_backup_id = oci_database_autonomous_database_backup.test_autonomous_database_backup.id
26+
#autonomous_database_id = oci_database_autonomous_database.test_autonomous_database.id
27+
#clone_type = var.autonomous_database_clone_type
28+
#customer_contacts {
29+
30+
#Optional
31+
#email = var.autonomous_database_customer_contacts_email
32+
#}
33+
#data_safe_status = var.autonomous_database_data_safe_status
34+
#db_version = var.autonomous_database_db_version
35+
#db_workload = var.autonomous_database_db_workload
36+
#defined_tags = var.autonomous_database_defined_tags
37+
#display_name = var.autonomous_database_display_name
38+
#freeform_tags = {"Department"= "Finance"}
39+
#is_access_control_enabled = var.autonomous_database_is_access_control_enabled
40+
#is_auto_scaling_enabled = var.autonomous_database_is_auto_scaling_enabled
41+
#is_data_guard_enabled = var.autonomous_database_is_data_guard_enabled
42+
#is_dedicated = var.autonomous_database_is_dedicated
43+
#is_free_tier = var.autonomous_database_is_free_tier
44+
#is_preview_version_with_service_terms_accepted = var.autonomous_database_is_preview_version_with_service_terms_accepted
45+
#kms_key_id = oci_kms_key.test_key.id
46+
#license_model = var.autonomous_database_license_model
47+
#nsg_ids = var.autonomous_database_nsg_ids
48+
#private_endpoint_label = var.autonomous_database_private_endpoint_label
49+
#refreshable_mode = var.autonomous_database_refreshable_mode
50+
#source = var.autonomous_database_source
51+
#source_id = oci_database_source.test_source.id
52+
#standby_whitelisted_ips = var.autonomous_database_standby_whitelisted_ips
53+
#subnet_id = oci_core_subnet.test_subnet.id
54+
#timestamp = var.autonomous_database_timestamp
55+
#vault_id = oci_kms_vault.test_vault.id
56+
#whitelisted_ips = var.autonomous_database_whitelisted_ips
57+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Output details of the autonomous database
2+
3+
output "atp_db_id" {
4+
value = join ("",oci_database_autonomous_database.autonomous_database.*.id)
5+
}
6+
7+
output "is_atp_db" {
8+
value = "true"
9+
}
10+
11+
/* resource "local_file" "db_pass" {
12+
//content = data.oci_kms_decrypted_data.password.plaintext
13+
content = base64decode(var.kms_encrypted_value)
14+
filename = "db_pass.txt"
15+
} */
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
#Tenancy Details
2+
3+
variable "tenancy_ocid" {}
4+
variable "compartment_ocid" {}
5+
6+
#Database
7+
8+
variable "autonomous_database_cpu_core_count"{}
9+
10+
variable "autonomous_database_db_name" {}
11+
12+
variable autonomous_database_admin_password {}
13+
14+
variable autonomous_database_data_storage_size_in_tbs {}
15+
16+
/* variable "kms_encrypted_value" {
17+
default = "V2xzQXRwRGIxMjM0Iw=="
18+
}
19+
20+
variable "kms_crypto_endpoint" {
21+
type = string
22+
default = "https://bjqmywdtaafak-crypto.kms.eu-frankfurt-1.oraclecloud.com"
23+
}
24+
25+
variable "kms_key_id" {
26+
default = "ocid1.key.oc1.eu-frankfurt-1.bjqmywdtaafak.abtheljr4na5bc7nxsqhjlagwybhkyafvvnq63rjtot4txgqiiafmzwwsvma"
27+
}
28+
*/
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
2+
resource "oci_core_instance" "instance" {
3+
4+
for_each = var.instance_params
5+
6+
availability_domain = each.value.availability_domain
7+
compartment_id = each.value.compartment_id
8+
display_name = each.value.display_name
9+
shape = each.value.shape
10+
11+
defined_tags = each.value.defined_tags
12+
freeform_tags = each.value.freeform_tags
13+
14+
create_vnic_details {
15+
subnet_id = each.value.subnet_id
16+
display_name = each.value.vnic_display_name
17+
assign_public_ip = each.value.assign_public_ip
18+
hostname_label = each.value.hostname_label
19+
}
20+
21+
shape_config {
22+
#Optional
23+
ocpus = each.value.ocpus
24+
}
25+
26+
source_details {
27+
source_type = each.value.source_type
28+
source_id = each.value.source_id
29+
}
30+
31+
metadata = each.value.metadata
32+
33+
instance_options {
34+
are_legacy_imds_endpoints_disabled = each.value.are_legacy_imds_endpoints_disabled
35+
}
36+
37+
fault_domain = each.value.fault_domain
38+
39+
timeouts {
40+
create = "${each.value.provisioning_timeout_mins}m"
41+
}
42+
43+
#prevent any metadata changes to destroy instance
44+
lifecycle {
45+
ignore_changes = [metadata, shape, shape_config]
46+
}
47+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
2+
# Output the private and public IPs of the instance
3+
output "InstancePrivateIPs" {
4+
value = [ for b in oci_core_instance.instance : b.private_ip]
5+
}
6+
7+
output "InstancePublicIPs" {
8+
value = [ for b in oci_core_instance.instance : b.public_ip]
9+
}
10+
11+
output "InstanceOcids" {
12+
value = [ for b in oci_core_instance.instance : b.id]
13+
}
14+
15+
output "display_names" {
16+
value = [ for b in oci_core_instance.instance : b.display_name]
17+
}
18+
19+
output "InstanceShapes" {
20+
value = [ for b in oci_core_instance.instance : b.shape]
21+
}
22+
23+
output "AvailabilityDomains" {
24+
value = [ for b in oci_core_instance.instance : b.availability_domain]
25+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
variable "instance_params" {
2+
3+
type = map(object({
4+
5+
availability_domain = string
6+
compartment_id = string
7+
display_name = string
8+
shape = string
9+
10+
defined_tags = map(string)
11+
freeform_tags = map(string)
12+
13+
subnet_id = string
14+
vnic_display_name = string
15+
assign_public_ip = string
16+
hostname_label = string
17+
18+
ocpus = number
19+
20+
source_type = string
21+
source_id = string
22+
23+
metadata = map(string)
24+
25+
are_legacy_imds_endpoints_disabled = string
26+
27+
fault_domain = string
28+
29+
provisioning_timeout_mins = string
30+
31+
}))
32+
33+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# TEMP WAY OF CREATING ORACLE SSH KEY FOR DEVELOPMENT
2+
resource "tls_private_key" "oracle_key" {
3+
algorithm = "RSA"
4+
rsa_bits = 4096
5+
}
6+
7+
# Creating OPC key for script copy
8+
resource "tls_private_key" "opc_key" {
9+
algorithm = "RSA"
10+
rsa_bits = 4096
11+
}
12+
13+
//For Load Balancer
14+
resource "tls_private_key" "ss_private_key" {
15+
16+
algorithm = "RSA"
17+
rsa_bits = 4096
18+
}
19+
20+
resource "tls_self_signed_cert" "demo_cert" {
21+
22+
key_algorithm = "RSA"
23+
private_key_pem = tls_private_key.ss_private_key.private_key_pem
24+
25+
subject {
26+
common_name = format("%s-%s", var.display_name,var.subnet_domain_name)
27+
organization = "Demo"
28+
organizational_unit = "FOR TESTING ONLY"
29+
}
30+
31+
#1 year validity
32+
validity_period_hours = 24 * 365
33+
34+
allowed_uses = [
35+
"digital_signature",
36+
"cert_signing",
37+
"crl_signing",
38+
]
39+
}

0 commit comments

Comments
 (0)