From 571fa04dba4853e6b9118d7db5ec122f477e7633 Mon Sep 17 00:00:00 2001 From: Kat Inskip Date: Sat, 8 Jun 2024 17:49:11 -0700 Subject: [PATCH] feat(oci): define separate distinct provider instances --- tf/oci_common_private_network.tf | 26 +++++++++++++---- tf/oci_common_private_network/oci_provider.tf | 28 ------------------- tf/oci_common_private_network/vcn.tf | 4 +++ tf/oci_compartment_bootstrap.tf | 19 ++++++++++--- tf/oci_compartment_bootstrap/compartment.tf | 4 +++ tf/oci_compartment_bootstrap/oci_provider.tf | 28 ------------------- tf/terraform.tf | 11 ++++++++ 7 files changed, 55 insertions(+), 65 deletions(-) delete mode 100644 tf/oci_common_private_network/oci_provider.tf delete mode 100644 tf/oci_compartment_bootstrap/oci_provider.tf diff --git a/tf/oci_common_private_network.tf b/tf/oci_common_private_network.tf index 1151af14..33e113b6 100644 --- a/tf/oci_common_private_network.tf +++ b/tf/oci_common_private_network.tf @@ -1,3 +1,15 @@ +/* +# https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformgettingstarted.htm +# https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformproviderconfiguration.htm +provider "oci" { + alias = "oci_compartment" + private_key = module.oci_compartment_bootstrap.child_compartment_key_value + region = var.oci_compartment_bootstrap_region + tenancy_ocid = module.oci_compartment_bootstrap.child_compartment_id + user_ocid = module.oci_compartment_bootstrap.child_user_id + fingerprint = module.oci_compartment_bootstrap.child_compartment_key_fingerprint +} + module "oci_common_private_network" { source = "./oci_common_private_network" @@ -7,9 +19,13 @@ module "oci_common_private_network" { display_name = "CoreNetwork" dns_label = "core" - private_key = module.oci_compartment_bootstrap.child_compartment_key_value - region = var.oci_compartment_bootstrap_region tenancy_ocid = module.oci_compartment_bootstrap.child_compartment_id - user_ocid = module.oci_compartment_bootstrap.child_user_id - fingerprint = module.oci_compartment_bootstrap.child_compartment_key_fingerprint -} \ No newline at end of file + + providers = { + oci = oci.oci_compartment + } + + depends_on = [ + module.oci_compartment_bootstrap + ] +}*/ \ No newline at end of file diff --git a/tf/oci_common_private_network/oci_provider.tf b/tf/oci_common_private_network/oci_provider.tf deleted file mode 100644 index c33a34b9..00000000 --- a/tf/oci_common_private_network/oci_provider.tf +++ /dev/null @@ -1,28 +0,0 @@ -variable "tenancy_ocid" { - type = string -} - -variable "user_ocid" { - type = string -} - -variable "private_key" { - type = string -} - -variable "region" { - type = string -} - -variable "fingerprint" { - type = string -} - -# https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformgettingstarted.htm -provider "oci" { - tenancy_ocid = var.tenancy_ocid - user_ocid = var.user_ocid - private_key = var.private_key - region = var.region - fingerprint = var.fingerprint -} \ No newline at end of file diff --git a/tf/oci_common_private_network/vcn.tf b/tf/oci_common_private_network/vcn.tf index 4f977e84..dc8f1f7f 100644 --- a/tf/oci_common_private_network/vcn.tf +++ b/tf/oci_common_private_network/vcn.tf @@ -1,3 +1,7 @@ +variable "tenancy_ocid" { + type = string +} + variable "cidr_blocks" { type = list(string) } diff --git a/tf/oci_compartment_bootstrap.tf b/tf/oci_compartment_bootstrap.tf index da137318..8263858b 100644 --- a/tf/oci_compartment_bootstrap.tf +++ b/tf/oci_compartment_bootstrap.tf @@ -20,10 +20,10 @@ variable "oci_compartment_bootstrap_fingerprint" { type = string } -# OCI Compartment Bootstrap -module "oci_compartment_bootstrap" { - source = "./oci_compartment_bootstrap" - +# https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformgettingstarted.htm +# https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformproviderconfiguration.htm +provider "oci" { + alias = "oci_root" private_key = var.oci_compartment_bootstrap_private_key region = var.oci_compartment_bootstrap_region tenancy_ocid = var.oci_compartment_bootstrap_tenancy_ocid @@ -31,6 +31,17 @@ module "oci_compartment_bootstrap" { fingerprint = var.oci_compartment_bootstrap_fingerprint } +# OCI Compartment Bootstrap +module "oci_compartment_bootstrap" { + source = "./oci_compartment_bootstrap" + + tenancy_ocid = var.oci_compartment_bootstrap_tenancy_ocid + + providers = { + oci = oci.oci_root + } +} + output "oci_compartment_bootstrap_child_user_id" { value = module.oci_compartment_bootstrap.child_user_id } diff --git a/tf/oci_compartment_bootstrap/compartment.tf b/tf/oci_compartment_bootstrap/compartment.tf index 196f29f1..d5a3fa92 100644 --- a/tf/oci_compartment_bootstrap/compartment.tf +++ b/tf/oci_compartment_bootstrap/compartment.tf @@ -1,3 +1,7 @@ +variable "tenancy_ocid" { + type = string +} + resource "oci_identity_compartment" "this" { # Compartment ID is Tenancy ID for this case compartment_id = var.tenancy_ocid diff --git a/tf/oci_compartment_bootstrap/oci_provider.tf b/tf/oci_compartment_bootstrap/oci_provider.tf deleted file mode 100644 index c33a34b9..00000000 --- a/tf/oci_compartment_bootstrap/oci_provider.tf +++ /dev/null @@ -1,28 +0,0 @@ -variable "tenancy_ocid" { - type = string -} - -variable "user_ocid" { - type = string -} - -variable "private_key" { - type = string -} - -variable "region" { - type = string -} - -variable "fingerprint" { - type = string -} - -# https://docs.oracle.com/en-us/iaas/Content/API/SDKDocs/terraformgettingstarted.htm -provider "oci" { - tenancy_ocid = var.tenancy_ocid - user_ocid = var.user_ocid - private_key = var.private_key - region = var.region - fingerprint = var.fingerprint -} \ No newline at end of file diff --git a/tf/terraform.tf b/tf/terraform.tf index a608d712..88eed687 100644 --- a/tf/terraform.tf +++ b/tf/terraform.tf @@ -1,5 +1,16 @@ terraform { required_providers { + # Vendor: Hashicorp + tls = { + source = "hashicorp/tls" + version = "4.0.5" + } + # Vendor: Oracle + oci = { + source = "oracle/oci" + version = "5.45.0" + configuration_aliases = [ oci.oci_root, oci.oci_compartment ] + } hcloud = { source = "hetznercloud/hcloud" version = "1.38.2"