GoogleCloudPlatform / pbmm-on-gcp-onboarding

GCP Canadian Public Sector Landing Zone overlay on top of the TEF via CFT modules - a secure cloud foundation
https://cloud.google.com/architecture/security-foundations
Apache License 2.0
45 stars 56 forks source link

organization_id, billing_id, folder_id fill/unfill script for parameter automation and commit obfuscation - in leu of templating #41

Closed fmichaelobrien closed 7 months ago

fmichaelobrien commented 2 years ago

In leu of terragrunt or helm like templating - add a script to write/unwrite all the IDs specific to the customer

fill replaces ....

unfill resets - in prep of commit obfuscation

targets

    modified:   environments/bootstrap/bootstrap.auto.tfvars
    modified:   environments/bootstrap/organization-config.auto.tfvars
    modified:   environments/common/common.auto.tfvars
    modified:   environments/nonprod/nonp-network.auto.tfvars
    modified:   environments/prod/perimeter-network.auto.tfvars
    modified:   environments/prod/prod-network.auto.tfvars
fmichaelobrien commented 2 years ago
diff --git a/environments/bootstrap/bootstrap.auto.tfvars b/environments/bootstrap/bootstrap.auto.tfvars
index 4524b35..e7e3d48 100644
--- a/environments/bootstrap/bootstrap.auto.tfvars
+++ b/environments/bootstrap/bootstrap.auto.tfvars
@@ -14,8 +14,10 @@
 bootstrap = {
   userDefinedString           = "" # REQUIRED EDIT Appended to project name/id
   additionalUserDefinedString = "" # OPTIONAL EDIT Additional appended string
-  billingAccount              = "" # REQUIRED EDIT Billing Account in the format of ######-######-######
-  parent                      = "" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
+  billingAccount              = "REPLACE_WITH_BILLING_ID" # REQUIRED EDIT Billing Account in the format of ######-######-######
+  # switch out root_node depending on whether you are running directly off the organization or a folder
+  #parent                      = "organizations/REPLACE_ORGANIZATION_ID" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
+  parent                      = "folders/REPLACE_FOLDER_ID" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
   terraformDeploymentAccount  = "" # REQUIRED EDIT Name of a service account to be created (alphanumeric before the at sign) used to deploy the terraform code
   bootstrapEmail              = "user:" # REQUIRED EDIT In the form of 'user:user@email.com
   region                      = "" # REQUIRED EDIT Region name. northamerica-northeast1
diff --git a/environments/bootstrap/organization-config.auto.tfvars b/environments/bootstrap/organization-config.auto.tfvars
index c30ba19..50c7cb8 100644
--- a/environments/bootstrap/organization-config.auto.tfvars
+++ b/environments/bootstrap/organization-config.auto.tfvars
@@ -5,17 +5,19 @@
 */

 organization_config = {
-  org_id          = "" # REQUIRED EDIT Numeric portion only '#############'"
+  org_id          = "REPLACE_ORGANIZATION_ID" # REQUIRED EDIT Numeric portion only '#############'"
   default_region  = "" # REQUIRED EDIT Cloudbuild Region
   department_code = "" # REQUIRED EDIT Two Characters. Capitol and then lowercase 
   owner           = "" # REQUIRED EDIT Used in naming standard
   environment     = "" # REQUIRED EDIT S-Sandbox P-Production Q-Quality D-development
   location        = "" # REQUIRED EDIT Location used for resources. Currently northamerica-northeast1 is available
   labels          = {} # REQUIRED EDIT Object used for resource labels
-  root_node       = "" # REQUIRED EDIT format "organizations/#############" or "folders/#############"
+  #root_node       = "organizations/REPLACE_ORGANIZATION_ID" # REQUIRED EDIT format "organizations/#############" or "folders/#############"
+  root_node       = "folders/REPLACE_FOLDER_ID" # REQUIRED EDIT format "organizations/#############" or "folders/#############"
+  
   contacts = {
     "user@email.com" = ["ALL"] # REQUIRED EDIT Essential Contacts for notifications. Must be in the form EMAIL -> [NOTIFICATION_TYPES]
   }
-  billing_account = "" # REQUIRED EDIT Format of ######-######-######
+  billing_account = "REPLACE_WITH_BILLING_ID" # REQUIRED EDIT Format of ######-######-######
 }

diff --git a/environments/common/common.auto.tfvars b/environments/common/common.auto.tfvars
index de95cde..8bce00f 100644
--- a/environments/common/common.auto.tfvars
+++ b/environments/common/common.auto.tfvars
@@ -17,7 +17,9 @@ org_policies = {
   ]
 }
 folders = {
-  parent = "" #REQUIRED Edit, format "organizations/#############" or "folders/#############"
+   # switch out parent depending on whether you are running directly off the organization or a folder
+  #parent = "organizations/REPLACE_ORGANIZATION_ID" #REQUIRED Edit, format "organizations/#############" or "folders/#############"
+  parent = "folders/REPLACE_FOLDER_ID" #REQUIRED Edit, format "organizations/#############" or "folders/#############"
   names  = ["Infrastructure", "Sandbox", "Workloads", "Audit and Security", "Automation", "Shared Services"] # Production, NonProduction and Platform are included in the module
   subfolders_1 = {
     SharedInfrastructure = "Infrastructure"
@@ -45,7 +47,7 @@ access_context_manager = { # REQUIRED OBJECT. VPC Service Controls object.
 audit = {                                  # REQUIRED OBJECT. Must include an audit object.
   user_defined_string            = "audit" # REQUIRED EDIT. Must be globally unique, used for the audit project
   additional_user_defined_string = ""      # OPTIONAL EDIT. Optionally append a value to the end of the user defined string.
-  billing_account                = ""      # REQUIRED EDIT. Define the audit billing account
+  billing_account                = "REPLACE_WITH_BILLING_ID"      # REQUIRED EDIT. Define the audit billing account
   audit_streams = {
     prod = {
       bucket_name          = ""                     # REQUIRED EDIT. Must be globally unique, used for the audit bucket
@@ -96,7 +98,7 @@ folder_iam = [
 organization_iam = [
   {
     member       = "group:group@test.domain.net" # REQUIRED EDIT. user:user@google.com, group:users@google.com,serviceAccount:robot@PROJECT.iam.gserviceaccount.com
-    organization = "" #Insert your Ord ID here, format ############
+    organization = "REPLACE_ORGANIZATION_ID" #Insert your Ord ID here, format ############
     roles = [
       "roles/viewer",
     ]
@@ -105,7 +107,7 @@ organization_iam = [

 guardrails = {
   user_defined_string = "guardrails" # Optional EDIT. Must be unique. Defines the guardrails project 
-  billing_account     = "" # REQUIRED EDIT. Billing Account in the format of ######-######-######
+  billing_account     = "REPLACE_WITH_BILLING_ID" # REQUIRED EDIT. Billing Account in the format of ######-######-######
   org_id_scan_list = [     # REQUIRED EDIT. Organization Id list for service account to have cloud asset viewer permission
   ]
   org_client = false #Set to true if deploying remote client landing zone.  Otherwise set to false if deploying for core organization landing zone.
diff --git a/environments/nonprod/nonp-network.auto.tfvars b/environments/nonprod/nonp-network.auto.tfvars
index ec4da8d..e36ada8 100644
--- a/environments/nonprod/nonp-network.auto.tfvars
+++ b/environments/nonprod/nonp-network.auto.tfvars
@@ -7,7 +7,7 @@
 nonprod_host_net = {
   user_defined_string            = "" # Must be globally unique. Used to create project name
   additional_user_defined_string = ""
-  billing_account                = "######-######-######"
+  billing_account                = "REPLACE_WITH_BILLING_ID" #"######-######-######"
   services                       = ["logging.googleapis.com" , "dns.googleapis.com"]
   networks = [
     {
diff --git a/environments/prod/perimeter-network.auto.tfvars b/environments/prod/perimeter-network.auto.tfvars
index c8a26a9..f4beffb 100644
--- a/environments/prod/perimeter-network.auto.tfvars
+++ b/environments/prod/perimeter-network.auto.tfvars
@@ -6,8 +6,8 @@

 public_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
-  additional_user_defined_string = "perimeter"
-  billing_account                = "" #####-#####-#####
+  additional_user_defined_string = "perim" # check 61 char aggregate limit
+  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   labels                         = {}
   networks = [
@@ -42,8 +42,8 @@ public_perimeter_net = {
 }
 private_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
-  additional_user_defined_string = "perimeter"
-  billing_account                = "" #####-#####-#####
+  additional_user_defined_string = "perim" # check 61 char aggregate limit
+  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   networks = [
     {
@@ -77,8 +77,8 @@ private_perimeter_net = {

 ha_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
-  additional_user_defined_string = "perimeter"
-  billing_account                = "" #####-#####-#####
+  additional_user_defined_string = "perim" # check 61 char agreggate limit
+  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   networks = [
     {
@@ -113,8 +113,8 @@ ha_perimeter_net = {

 management_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
-  additional_user_defined_string = "perimeter"
-  billing_account                = "" #####-#####-#####
+  additional_user_defined_string = "perim" # check 61 char aggregate limit
+  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   networks = [
     {
diff --git a/environments/prod/prod-network.auto.tfvars b/environments/prod/prod-network.auto.tfvars
index e40b1b6..ac274be 100644
--- a/environments/prod/prod-network.auto.tfvars
+++ b/environments/prod/prod-network.auto.tfvars
@@ -7,7 +7,7 @@
 prod_host_net = {
   user_defined_string            = "" # Must be globally unique. Used to create project name
   additional_user_defined_string = ""
-  billing_account                = "######-######-######"
+  billing_account                = "REPLACE_WITH_BILLING_ID" ######-######-######"
   services                       = ["logging.googleapis.com"]
   networks = [
     {
fmichaelobrien commented 2 years ago

TESTING

fmichaelobrien-macbookpro:pbmm-on-gcp-onboarding fmichaelobrien$ ./writeids.sh -c fill -b 1111-2222-3333 -o 4444-5555-9999 -f 012345678901
replacing IDs: billing: 1111-2222-3333 organization: 4444-5555-9999 folder: 012345678901 from placeholders
environments/bootstrap/bootstrap.auto.tfvars pass - fill:true
environments/bootstrap/organization-config.auto.tfvars pass - fill:true
environments/common/common.auto.tfvars pass - fill:true
environments/nonprod/nonp-network.auto.tfvars pass - fill:true
environments/prod/perimeter-network.auto.tfvars pass - fill:true
environments/prod/prod-network.auto.tfvars pass - fill:true

  (use "git restore <file>..." to discard changes in working directory)
    modified:   environments/bootstrap/bootstrap.auto.tfvars
    modified:   environments/bootstrap/organization-config.auto.tfvars
    modified:   environments/common/common.auto.tfvars
    modified:   environments/nonprod/nonp-network.auto.tfvars
    modified:   environments/prod/perimeter-network.auto.tfvars
    modified:   environments/prod/prod-network.auto.tfvars

fmichaelobrien-macbookpro:pbmm-on-gcp-onboarding fmichaelobrien$ git diff
diff --git a/environments/bootstrap/bootstrap.auto.tfvars b/environments/bootstrap/bootstrap.auto.tfvars
index e7e3d48..adecc6c 100644
--- a/environments/bootstrap/bootstrap.auto.tfvars
+++ b/environments/bootstrap/bootstrap.auto.tfvars
@@ -14,10 +14,10 @@
 bootstrap = {
   userDefinedString           = "" # REQUIRED EDIT Appended to project name/id
   additionalUserDefinedString = "" # OPTIONAL EDIT Additional appended string
-  billingAccount              = "REPLACE_WITH_BILLING_ID" # REQUIRED EDIT Billing Account in the format of ######-######-######
+  billingAccount              = "1111-2222-3333" # REQUIRED EDIT Billing Account in the format of ######-######-######
   # switch out root_node depending on whether you are running directly off the organization or a folder
-  #parent                      = "organizations/REPLACE_ORGANIZATION_ID" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
-  parent                      = "folders/REPLACE_FOLDER_ID" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
+  #parent                      = "organizations/4444-5555-9999" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
+  parent                      = "folders/012345678901" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
   terraformDeploymentAccount  = "" # REQUIRED EDIT Name of a service account to be created (alphanumeric before the at sign) used to deploy the terraform code
   bootstrapEmail              = "user:" # REQUIRED EDIT In the form of 'user:user@email.com
   region                      = "" # REQUIRED EDIT Region name. northamerica-northeast1
diff --git a/environments/bootstrap/organization-config.auto.tfvars b/environments/bootstrap/organization-config.auto.tfvars
index 50c7cb8..f342e9b 100644
--- a/environments/bootstrap/organization-config.auto.tfvars
+++ b/environments/bootstrap/organization-config.auto.tfvars
@@ -5,19 +5,19 @@
 */

 organization_config = {
-  org_id          = "REPLACE_ORGANIZATION_ID" # REQUIRED EDIT Numeric portion only '#############'"
+  org_id          = "4444-5555-9999" # REQUIRED EDIT Numeric portion only '#############'"
   default_region  = "" # REQUIRED EDIT Cloudbuild Region
   department_code = "" # REQUIRED EDIT Two Characters. Capitol and then lowercase 
   owner           = "" # REQUIRED EDIT Used in naming standard
   environment     = "" # REQUIRED EDIT S-Sandbox P-Production Q-Quality D-development
   location        = "" # REQUIRED EDIT Location used for resources. Currently northamerica-northeast1 is available
   labels          = {} # REQUIRED EDIT Object used for resource labels
-  #root_node       = "organizations/REPLACE_ORGANIZATION_ID" # REQUIRED EDIT format "organizations/#############" or "folders/#############"
-  root_node       = "folders/REPLACE_FOLDER_ID" # REQUIRED EDIT format "organizations/#############" or "folders/#############"
+  #root_node       = "organizations/4444-5555-9999" # REQUIRED EDIT format "organizations/#############" or "folders/#############"
+  root_node       = "folders/012345678901" # REQUIRED EDIT format "organizations/#############" or "folders/#############"

   contacts = {
     "user@email.com" = ["ALL"] # REQUIRED EDIT Essential Contacts for notifications. Must be in the form EMAIL -> [NOTIFICATION_TYPES]
   }
-  billing_account = "REPLACE_WITH_BILLING_ID" # REQUIRED EDIT Format of ######-######-######
+  billing_account = "1111-2222-3333" # REQUIRED EDIT Format of ######-######-######
 }

diff --git a/environments/common/common.auto.tfvars b/environments/common/common.auto.tfvars
index 8bce00f..4abc63f 100644
--- a/environments/common/common.auto.tfvars
+++ b/environments/common/common.auto.tfvars
@@ -18,8 +18,8 @@ org_policies = {
 }
 folders = {
    # switch out parent depending on whether you are running directly off the organization or a folder
-  #parent = "organizations/REPLACE_ORGANIZATION_ID" #REQUIRED Edit, format "organizations/#############" or "folders/#############"
-  parent = "folders/REPLACE_FOLDER_ID" #REQUIRED Edit, format "organizations/#############" or "folders/#############"
+  #parent = "organizations/4444-5555-9999" #REQUIRED Edit, format "organizations/#############" or "folders/#############"
+  parent = "folders/012345678901" #REQUIRED Edit, format "organizations/#############" or "folders/#############"
   names  = ["Infrastructure", "Sandbox", "Workloads", "Audit and Security", "Automation", "Shared Services"] # Production, NonProduction and Platform are included in the module
   subfolders_1 = {
     SharedInfrastructure = "Infrastructure"
@@ -47,7 +47,7 @@ access_context_manager = { # REQUIRED OBJECT. VPC Service Controls object.
 audit = {                                  # REQUIRED OBJECT. Must include an audit object.
   user_defined_string            = "audit" # REQUIRED EDIT. Must be globally unique, used for the audit project
   additional_user_defined_string = ""      # OPTIONAL EDIT. Optionally append a value to the end of the user defined string.
-  billing_account                = "REPLACE_WITH_BILLING_ID"      # REQUIRED EDIT. Define the audit billing account
+  billing_account                = "1111-2222-3333"      # REQUIRED EDIT. Define the audit billing account
   audit_streams = {
     prod = {
       bucket_name          = ""                     # REQUIRED EDIT. Must be globally unique, used for the audit bucket
@@ -98,7 +98,7 @@ folder_iam = [
 organization_iam = [
   {
     member       = "group:group@test.domain.net" # REQUIRED EDIT. user:user@google.com, group:users@google.com,serviceAccount:robot@PROJECT.iam.gserviceaccount.com
-    organization = "REPLACE_ORGANIZATION_ID" #Insert your Ord ID here, format ############
+    organization = "4444-5555-9999" #Insert your Ord ID here, format ############
     roles = [
       "roles/viewer",
     ]
@@ -107,7 +107,7 @@ organization_iam = [

 guardrails = {
   user_defined_string = "guardrails" # Optional EDIT. Must be unique. Defines the guardrails project 
-  billing_account     = "REPLACE_WITH_BILLING_ID" # REQUIRED EDIT. Billing Account in the format of ######-######-######
+  billing_account     = "1111-2222-3333" # REQUIRED EDIT. Billing Account in the format of ######-######-######
   org_id_scan_list = [     # REQUIRED EDIT. Organization Id list for service account to have cloud asset viewer permission
   ]
   org_client = false #Set to true if deploying remote client landing zone.  Otherwise set to false if deploying for core organization landing zone.
diff --git a/environments/nonprod/nonp-network.auto.tfvars b/environments/nonprod/nonp-network.auto.tfvars
index e36ada8..dd9ed34 100644
--- a/environments/nonprod/nonp-network.auto.tfvars
+++ b/environments/nonprod/nonp-network.auto.tfvars
@@ -7,7 +7,7 @@
 nonprod_host_net = {
   user_defined_string            = "" # Must be globally unique. Used to create project name
   additional_user_defined_string = ""
-  billing_account                = "REPLACE_WITH_BILLING_ID" #"######-######-######"
+  billing_account                = "1111-2222-3333" #"######-######-######"
   services                       = ["logging.googleapis.com" , "dns.googleapis.com"]
   networks = [
     {
diff --git a/environments/prod/perimeter-network.auto.tfvars b/environments/prod/perimeter-network.auto.tfvars
index f4beffb..4462577 100644
--- a/environments/prod/perimeter-network.auto.tfvars
+++ b/environments/prod/perimeter-network.auto.tfvars
@@ -7,7 +7,7 @@
 public_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
   additional_user_defined_string = "perim" # check 61 char aggregate limit
-  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
+  billing_account                = "1111-2222-3333" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   labels                         = {}
   networks = [
@@ -43,7 +43,7 @@ public_perimeter_net = {
 private_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
   additional_user_defined_string = "perim" # check 61 char aggregate limit
-  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
+  billing_account                = "1111-2222-3333" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   networks = [
     {
@@ -78,7 +78,7 @@ private_perimeter_net = {
 ha_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
   additional_user_defined_string = "perim" # check 61 char agreggate limit
-  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
+  billing_account                = "1111-2222-3333" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   networks = [
     {
@@ -114,7 +114,7 @@ ha_perimeter_net = {
 management_perimeter_net = {
   user_defined_string            = "prod" # must be globally unique
   additional_user_defined_string = "perim" # check 61 char aggregate limit
-  billing_account                = "REPLACE_WITH_BILLING_ID" #####-#####-#####
+  billing_account                = "1111-2222-3333" #####-#####-#####
   services                       = ["logging.googleapis.com"]
   networks = [
     {
diff --git a/environments/prod/prod-network.auto.tfvars b/environments/prod/prod-network.auto.tfvars
index ac274be..de75ecd 100644
--- a/environments/prod/prod-network.auto.tfvars
+++ b/environments/prod/prod-network.auto.tfvars
@@ -7,7 +7,7 @@
 prod_host_net = {
   user_defined_string            = "" # Must be globally unique. Used to create project name
   additional_user_defined_string = ""
-  billing_account                = "REPLACE_WITH_BILLING_ID" ######-######-######"
+  billing_account                = "1111-2222-3333" ######-######-######"
   services                       = ["logging.googleapis.com"]
   networks = [
     {

undo

fmichaelobrien-macbookpro:pbmm-on-gcp-onboarding fmichaelobrien$ ./writeids.sh -c unfill -b 1111-2222-3333 -o 4444-5555-9999 -f 012345678901
reverting IDs: billing: 1111-2222-3333 organization: 4444-5555-9999 folder: 012345678901 to placeholders
environments/bootstrap/bootstrap.auto.tfvars pass - fill:false
environments/bootstrap/organization-config.auto.tfvars pass - fill:false
environments/common/common.auto.tfvars pass - fill:false
environments/nonprod/nonp-network.auto.tfvars pass - fill:false
environments/prod/perimeter-network.auto.tfvars pass - fill:false
environments/prod/prod-network.auto.tfvars pass - fill:false
fmichaelobrien-macbookpro:pbmm-on-gcp-onboarding fmichaelobrien$ git status
On branch fmichaelobrien
Your branch is up to date with 'origin/fmichaelobrien'.

Untracked files:
fmichaelobrien commented 2 years ago

Additional testing

 without a default project
  if [[ -z "$PROJECT_ID" ]]
  then
      PROJECT_ID=$(gcloud config list --format 'value(core.project)')
      if [[ -z "$PROJECT_ID" ]]
      then
          echo "Run the following before starting the script so we can derive the org/billing ids from the project:"
          echo "gcloud config set project <project_id>"
          exit 1

fmichaelobrien-macbookpro:pbmm-on-gcp-onboarding fmichaelobrien$ ./writeids.sh -c fill -b 1111-2222-3333 -o 4444-5555-9999 -f 012345678901
Run the following before starting the script so we can derive the org/billing ids from the project:
gcloud config set project <project_id>
obriensystems commented 2 years ago

Testing on alternate org on local gcloud cli (not shell.cloud.google.com yet)

michaelobrien@mbp7 pbmm-on-gcp-onboarding % ./writeids.sh -c fill -f 012345678901
Derived organization_id: 8.....40
You do not currently have this command group installed.  Using it 
requires the installation of components: [alpha]

Your current Google Cloud CLI version is: 378.0.0
Installing components from version: 378.0.0

┌──────────────────────────────────────────────┐
│     These components will be installed.      │
├───────────────────────┬────────────┬─────────┤
│          Name         │  Version   │   Size  │
├───────────────────────┼────────────┼─────────┤
│ gcloud Alpha Commands │ 2022.03.18 │ < 1 MiB │
└───────────────────────┴────────────┴─────────┘

For the latest full release notes, please visit:
  https://cloud.google.com/sdk/release_notes

Do you want to continue (Y/n)?  y

╔════════════════════════════════════════════════════════════╗
╠═ Creating update staging area                             ═╣
╠════════════════════════════════════════════════════════════╣
╠═ Installing: gcloud Alpha Commands                        ═╣
╠════════════════════════════════════════════════════════════╣
╠═ Creating backup and activating new installation          ═╣
╚════════════════════════════════════════════════════════════╝

Performing post processing steps...done.                                                                                                                                                                                                            

Update done!

Restarting command:
  $ gcloud alpha billing projects describe landingzone-stg --format=value(billingAccountName)

Derived billing_id: 0...B
replacing IDs: billing: 0.....B organization: 84...0 folder: 012345678901 from placeholders
environments/bootstrap/bootstrap.auto.tfvars pass - fill:true
environments/bootstrap/organization-config.auto.tfvars pass - fill:true
environments/common/common.auto.tfvars pass - fill:true
environments/nonprod/nonp-network.auto.tfvars pass - fill:true
environments/prod/perimeter-network.auto.tfvars pass - fill:true
environments/prod/prod-network.auto.tfvars pass - fill:true
michaelobrien@mbp7 pbmm-on-gcp-onboarding % git status
On branch fmichaelobrien
Your branch is up to date with 'origin/fmichaelobrien'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   environments/bootstrap/bootstrap.auto.tfvars
    modified:   environments/bootstrap/organization-config.auto.tfvars
    modified:   environments/common/common.auto.tfvars
    modified:   environments/nonprod/nonp-network.auto.tfvars
    modified:   environments/prod/perimeter-network.auto.tfvars
    modified:   environments/prod/prod-network.auto.tfvars

no changes added to commit (use "git add" and/or "git commit -a")
michaelobrien@mbp7 pbmm-on-gcp-onboarding % git diff
diff --git a/environments/bootstrap/bootstrap.auto.tfvars b/environments/bootstrap/bootstrap.auto.tfvars
index e7e3d48..fa0da4b 100644
--- a/environments/bootstrap/bootstrap.auto.tfvars
+++ b/environments/bootstrap/bootstrap.auto.tfvars
@@ -14,10 +14,10 @@
 bootstrap = {
   userDefinedString           = "" # REQUIRED EDIT Appended to project name/id
   additionalUserDefinedString = "" # OPTIONAL EDIT Additional appended string
-  billingAccount              = "REPLACE_WITH_BILLING_ID" # REQUIRED EDIT Billing Account in the format of ######-######-######
+  billingAccount              = "01....B" # REQUIRED EDIT Billing Account in the format of ######-######-######
   # switch out root_node depending on whether you are running directly off the organization or a folder
-  #parent                      = "organizations/REPLACE_ORGANIZATION_ID" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
-  parent                      = "folders/REPLACE_FOLDER_ID" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
+  #parent                      = "organizations/84...40" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
+  parent                      = "folders/012345678901" # REQUIRED EDIT Node in format "organizations/#############" or "folders/#############"
   terraformDeploymentAccount  = "" # REQUIRED EDIT Name of a service account to be created (alphanumeric before the at sign) used to deploy the terraform code
   bootstrapEmail              = "user:" # REQUIRED EDIT In the form of 'user:user@email.com

michaelobrien@mbp7 pbmm-on-gcp-onboarding % ./writeids.sh -c unfill -f 012345678901
Derived organization_id: 8....0
Derived billing_id: 0...3B
reverting IDs: billing: 0...B organization: 8..0 folder: 012345678901 to placeholders
environments/bootstrap/bootstrap.auto.tfvars pass - fill:false
environments/bootstrap/organization-config.auto.tfvars pass - fill:false
environments/common/common.auto.tfvars pass - fill:false
environments/nonprod/nonp-network.auto.tfvars pass - fill:false
environments/prod/perimeter-network.auto.tfvars pass - fill:false
environments/prod/prod-network.auto.tfvars pass - fill:false
michaelobrien@mbp7 pbmm-on-gcp-onboarding % git status
On branch fmichaelobrien
Your branch is up to date with 'origin/fmichaelobrien'.

nothing to commit, working tree clean
....
fmichaelobrien commented 2 years ago

Try to move the options to a combo yaml/derivation

obriensystems commented 7 months ago

20240406: Closing issue during retrofit/rebase of this TEF V1 based/modified repo to TEF V4 standards This issue may participate in the LZ refactor after rebase Query on all issues related to the older V1 version via the tag https://github.com/GoogleCloudPlatform/pbmm-on-gcp-onboarding/labels/2024-pre-tef-v4