GoogleCloudPlatform/cloud-foundation-fabric

Project Factory Issue

Closed this issue ยท 10 comments

Describe the bug

I cannot find the object in the bucket. There is no file named 3-project-factory-providers.tf.

Environment

Terraform v1.7.4
on windows_amd64
+ provider registry.terraform.io/hashicorp/google v5.18.0
+ provider registry.terraform.io/hashicorp/google-beta v5.18.0
+ provider registry.terraform.io/hashicorp/local v2.4.1
+ provider registry.terraform.io/hashicorp/random v3.6.0
1e2d4fb7

To Reproduce
I followed the instructions to run the Project Factory stage and noticed that some files are missing.

3-project-factory-dev-providers.tf
3-project-factory-prod-providers.tf

Result
gcloud alpha storage cp gs://abc-prod-iac-core-outputs-0/providers/3-project-factory-providers.tf ./
Completed files 0 | 0B
ERROR: (gcloud.alpha.storage.cp) The following URLs matched no objects or files:
-gs://abc-prod-iac-core-outputs-0/providers/3-project-factory-providers.tf

Additional context
I have already reapplied the bootstrap stage, but the missing files still weren't created.
image

did you turn on the project factory in the fast flags? if not, do it in stage 0 and apply all stages up to and including 2 in succession

Closing this, feel free to move to a discussion as this does not look like a bug :)

Thank you for your fast reply. Now its working but I am getting a permission error:

Screenshot 2024-02-29 at 09 32 47

Do you know what the problem might be?

Missing billing permissions on the service account. Can you open a discussion and paste here your 0-globals.auto.tfvars? Redact IDs of course before sharing.

below is the 0-globals.auto.tfvars file details :

{"billing_account":{"id":"xxxxxx-xxxxxx-xxxxxx","is_org_level":true,"no_iam":false},"fast_features":{"data_platform":false,"gke":false,"project_factory":true,"sandbox":true,"teams":false},"groups":{"gcp-billing-admins":"group:gcp-billing-admins@xxx.com","gcp-devops":"group:gcp-devops@xxx.com","gcp-network-admins":"group:gcp-network-admins@xxx.com","gcp-organization-admins":"group:gcp-organization-admins@xxx.com","gcp-security-admins":"group:gcp-security-admins@xxx.com","gcp-support":"group:gcp-devops@xxx.com"},"locations":{"bq":"EU","gcs":"EU","logging":"global","pubsub":[]},"organization":{"customer_id":"Cxxxx","domain":"xxx.com","id":xxxxx},"prefix":"xxx"}

is it a variable in the variables file of the bootstrap that we need to adjust?

 "billing_account": {
    "id": "xxxxxx-xxxxxx-xxxxxx",
    "is_org_level": true,
    "no_iam": false
  }

Is your account in the org?

This is what you are telling FAST, but is it really true?

Hi Ludoo,

The billing account is not associated with the organization, as we have other projects assigned to a different billing account, and they are not permitted to use it.

Is it possible to have the billing account at the project level? If so, could you please advise on the quickest and simplest method to implement this?

It's explained in the FAST stage 0 docs, just set billing_account.is_org_level = false in your tfvars for stage 0, and reapply all stages in succession.