|
16 | 16 |
|
17 | 17 | module "project" {
|
18 | 18 | source = "terraform-google-modules/project-factory/google"
|
19 |
| - version = "~> 17.0" |
| 19 | + version = "~> 18.0" |
20 | 20 |
|
21 | 21 | name = "ci-sql-db"
|
22 | 22 | random_project_id = "true"
|
23 | 23 | org_id = var.org_id
|
24 |
| - folder_id = var.folder_id |
| 24 | + folder_id = google_folder.autokey_folder.folder_id |
25 | 25 | billing_account = var.billing_account
|
26 | 26 | deletion_policy = "DELETE"
|
27 | 27 |
|
@@ -54,3 +54,56 @@ resource "google_project_service_identity" "workflos_sa" {
|
54 | 54 | project = module.project.project_id
|
55 | 55 | service = "workflows.googleapis.com"
|
56 | 56 | }
|
| 57 | + |
| 58 | +resource "google_folder" "autokey_folder" { |
| 59 | + provider = google-beta |
| 60 | + display_name = "ci-sql-db-folder" |
| 61 | + parent = "folders/${var.folder_id}" |
| 62 | + deletion_protection = false |
| 63 | +} |
| 64 | + |
| 65 | +module "autokey-project" { |
| 66 | + source = "terraform-google-modules/project-factory/google" |
| 67 | + version = "~> 18.0" |
| 68 | + |
| 69 | + name = "ci-sql-db-autokey" |
| 70 | + random_project_id = "true" |
| 71 | + org_id = var.org_id |
| 72 | + folder_id = google_folder.autokey_folder.folder_id |
| 73 | + billing_account = var.billing_account |
| 74 | + deletion_policy = "DELETE" |
| 75 | + |
| 76 | + activate_apis = [ |
| 77 | + "cloudkms.googleapis.com", |
| 78 | + ] |
| 79 | +} |
| 80 | + |
| 81 | +resource "time_sleep" "wait_enable_service_api" { |
| 82 | + depends_on = [module.autokey-project] |
| 83 | + create_duration = "30s" |
| 84 | +} |
| 85 | + |
| 86 | +resource "google_project_service_identity" "kms_service_agent" { |
| 87 | + provider = google-beta |
| 88 | + service = "cloudkms.googleapis.com" |
| 89 | + project = module.autokey-project.project_id |
| 90 | + depends_on = [time_sleep.wait_enable_service_api] |
| 91 | +} |
| 92 | + |
| 93 | +resource "time_sleep" "wait_service_agent" { |
| 94 | + depends_on = [google_project_service_identity.kms_service_agent] |
| 95 | + create_duration = "10s" |
| 96 | +} |
| 97 | + |
| 98 | +resource "google_project_iam_member" "autokey_project_admin" { |
| 99 | + provider = google-beta |
| 100 | + project = module.autokey-project.project_id |
| 101 | + role = "roles/cloudkms.admin" |
| 102 | + member = "serviceAccount:service-${module.autokey-project.project_number}@gcp-sa-cloudkms.iam.gserviceaccount.com" |
| 103 | + depends_on = [time_sleep.wait_service_agent] |
| 104 | +} |
| 105 | + |
| 106 | +resource "time_sleep" "wait_srv_acc_permissions" { |
| 107 | + create_duration = "10s" |
| 108 | + depends_on = [google_project_iam_member.autokey_project_admin] |
| 109 | +} |
0 commit comments