From f7bf576b533ff947776039caeb34b600f0e6208c Mon Sep 17 00:00:00 2001 From: Chris Christiansen Date: Tue, 26 May 2026 05:22:11 +0000 Subject: [PATCH] =?UTF-8?q?fix(terraform):=20remove=20unmanageable=20resou?= =?UTF-8?q?rces=20=E2=80=94=20Cloud=20Run=20via=20CI/CD,=20Pub/Sub=20email?= =?UTF-8?q?=20invalid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- infrastructure/terraform/main.tf | 55 +- infrastructure/terraform/outputs.tf | 9 +- infrastructure/terraform/terraform.tfstate | 508 +++++++++++++ .../terraform.tfstate.1779772782.backup | 711 +++++++++++++++++ .../terraform/terraform.tfstate.backup | 715 ++++++++++++++++++ infrastructure/terraform/terraform.tfvars | 8 + infrastructure/terraform/tfapply.txt | 230 ++++++ 7 files changed, 2204 insertions(+), 32 deletions(-) create mode 100644 infrastructure/terraform/terraform.tfstate create mode 100644 infrastructure/terraform/terraform.tfstate.1779772782.backup create mode 100644 infrastructure/terraform/terraform.tfstate.backup create mode 100644 infrastructure/terraform/terraform.tfvars create mode 100644 infrastructure/terraform/tfapply.txt diff --git a/infrastructure/terraform/main.tf b/infrastructure/terraform/main.tf index 84746a2..fbf7308 100644 --- a/infrastructure/terraform/main.tf +++ b/infrastructure/terraform/main.tf @@ -13,7 +13,6 @@ resource "google_project_service" "apis" { "run.googleapis.com", "artifactregistry.googleapis.com", "cloudbuild.googleapis.com", - "cloudbuildv2.googleapis.com", "secretmanager.googleapis.com", "monitoring.googleapis.com", "logging.googleapis.com", @@ -65,30 +64,30 @@ resource "google_artifact_registry_repository" "repo" { format = "DOCKER" } -resource "google_cloud_run_v2_service" "agent_service" { - name = var.cloud_run_service_name - location = var.cloud_run_region - - template { - service_account = google_service_account.agent_sa.email - - containers { - image = var.container_image - env { - name = "CUSTOMER_ID" - value = var.customer_id - } - } - } - - depends_on = [google_project_service.apis] -} - -resource "google_cloud_run_v2_service_iam_member" "invoker" { - project = var.project_id - location = google_cloud_run_v2_service.agent_service.location - name = google_cloud_run_v2_service.agent_service.name - role = "roles/run.invoker" - member = "user:chris.christiansen@vauco.no" -} - +# Managed via Cloud Build CI/CD — not Terraform +# resource "google_cloud_run_v2_service" "agent_service" { +# name = var.cloud_run_service_name +# location = var.cloud_run_region +# +# template { +# service_account = google_service_account.agent_sa.email +# +# containers { +# image = var.container_image +# env { +# name = "CUSTOMER_ID" +# value = var.customer_id +# } +# } +# } +# +# depends_on = [google_project_service.apis] +# } +# +# resource "google_cloud_run_v2_service_iam_member" "invoker" { +# project = var.project_id +# location = google_cloud_run_v2_service.agent_service.location +# name = google_cloud_run_v2_service.agent_service.name +# role = "roles/run.invoker" +# member = "user:chris.christiansen@vauco.no" +# } diff --git a/infrastructure/terraform/outputs.tf b/infrastructure/terraform/outputs.tf index 00c3087..7c0ee8a 100644 --- a/infrastructure/terraform/outputs.tf +++ b/infrastructure/terraform/outputs.tf @@ -1,7 +1,8 @@ -output "cloud_run_url" { - description = "The URL of the Cloud Run service." - value = google_cloud_run_v2_service.agent_service.uri -} +# Managed via Cloud Build CI/CD — not Terraform +# output "cloud_run_url" { +# description = "The URL of the Cloud Run service." +# value = google_cloud_run_v2_service.agent_service.uri +# } output "service_account_email" { description = "The email of the service account." diff --git a/infrastructure/terraform/terraform.tfstate b/infrastructure/terraform/terraform.tfstate new file mode 100644 index 0000000..d860d92 --- /dev/null +++ b/infrastructure/terraform/terraform.tfstate @@ -0,0 +1,508 @@ +{ + "version": 4, + "terraform_version": "1.15.4", + "serial": 41, + "lineage": "88d46b78-a06c-f64f-5e21-905b6f0583d9", + "outputs": { + "artifact_registry_url": { + "value": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images", + "type": "string" + }, + "service_account_email": { + "value": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "type": "string" + } + }, + "resources": [ + { + "mode": "managed", + "type": "google_artifact_registry_repository", + "name": "repo", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "cleanup_policies": [], + "cleanup_policy_dry_run": false, + "create_time": "2026-05-26T05:04:46.779216Z", + "deletion_policy": "DELETE", + "description": "", + "docker_config": [], + "effective_labels": { + "goog-terraform-provisioned": "true" + }, + "format": "DOCKER", + "id": "projects/propane-will-491900-m5/locations/europe-west1/repositories/agent-images", + "kms_key_name": "", + "labels": {}, + "location": "europe-west1", + "maven_config": [], + "mode": "STANDARD_REPOSITORY", + "name": "agent-images", + "project": "propane-will-491900-m5", + "registry_uri": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images", + "remote_repository_config": [], + "repository_id": "agent-images", + "terraform_labels": { + "goog-terraform-provisioned": "true" + }, + "timeouts": null, + "update_time": "2026-05-26T05:04:46.779216Z", + "virtual_repository_config": [], + "vulnerability_scanning_config": [ + { + "enablement_config": "", + "enablement_state": "SCANNING_DISABLED", + "enablement_state_reason": "API containerscanning.googleapis.com is not enabled." + } + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "location": "europe-west1", + "project": "propane-will-491900-m5", + "repository_id": "agent-images" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "google_project_iam_member", + "name": "agent_sa_roles", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "index_key": "roles/aiplatform.user", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/aiplatform.user/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/aiplatform.user" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/cloudtrace.agent", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/cloudtrace.agent/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/cloudtrace.agent" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/logging.logWriter", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/logging.logWriter/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/logging.logWriter" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/monitoring.metricWriter", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/monitoring.metricWriter/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/monitoring.metricWriter" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/run.invoker", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/run.invoker/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/run.invoker" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/secretmanager.secretAccessor", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/secretmanager.secretAccessor/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/secretmanager.secretAccessor" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/storage.objectAdmin", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/storage.objectAdmin/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/storage.objectAdmin" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + } + ] + }, + { + "mode": "managed", + "type": "google_project_service", + "name": "apis", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "index_key": "aiplatform.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/aiplatform.googleapis.com", + "project": "propane-will-491900-m5", + "service": "aiplatform.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "artifactregistry.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/artifactregistry.googleapis.com", + "project": "propane-will-491900-m5", + "service": "artifactregistry.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudbilling.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudbilling.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudbilling.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudbuild.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudbuild.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudbuild.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudfunctions.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudfunctions.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudfunctions.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudresourcemanager.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudresourcemanager.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudresourcemanager.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudtrace.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudtrace.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudtrace.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "iam.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/iam.googleapis.com", + "project": "propane-will-491900-m5", + "service": "iam.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "logging.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/logging.googleapis.com", + "project": "propane-will-491900-m5", + "service": "logging.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "monitoring.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/monitoring.googleapis.com", + "project": "propane-will-491900-m5", + "service": "monitoring.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "pubsub.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/pubsub.googleapis.com", + "project": "propane-will-491900-m5", + "service": "pubsub.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "run.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/run.googleapis.com", + "project": "propane-will-491900-m5", + "service": "run.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "secretmanager.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/secretmanager.googleapis.com", + "project": "propane-will-491900-m5", + "service": "secretmanager.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "storage.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/storage.googleapis.com", + "project": "propane-will-491900-m5", + "service": "storage.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + } + ] + }, + { + "mode": "managed", + "type": "google_pubsub_topic", + "name": "billing_alerts", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "effective_labels": {}, + "id": "projects/propane-will-491900-m5/topics/billing-alert-auto-teardown", + "ingestion_data_source_settings": [], + "kms_key_name": "", + "labels": {}, + "message_retention_duration": "", + "message_storage_policy": [], + "message_transforms": [], + "name": "billing-alert-auto-teardown", + "project": "propane-will-491900-m5", + "schema_settings": [], + "tags": null, + "terraform_labels": {}, + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "name": "billing-alert-auto-teardown", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMCJ9" + } + ] + }, + { + "mode": "managed", + "type": "google_service_account", + "name": "agent_sa", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "account_id": "osvauco-agent-sa", + "create_ignore_already_exists": null, + "deletion_policy": "DELETE", + "description": "", + "disabled": false, + "display_name": "OSVauco Agent Runner SA", + "email": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "id": "projects/propane-will-491900-m5/serviceAccounts/osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "name": "projects/propane-will-491900-m5/serviceAccounts/osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "timeouts": null, + "unique_id": "100050809037592029700" + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "email": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDB9fQ==" + } + ] + } + ], + "check_results": null +} diff --git a/infrastructure/terraform/terraform.tfstate.1779772782.backup b/infrastructure/terraform/terraform.tfstate.1779772782.backup new file mode 100644 index 0000000..d70c00b --- /dev/null +++ b/infrastructure/terraform/terraform.tfstate.1779772782.backup @@ -0,0 +1,711 @@ +{ + "version": 4, + "terraform_version": "1.15.4", + "serial": 40, + "lineage": "88d46b78-a06c-f64f-5e21-905b6f0583d9", + "outputs": { + "artifact_registry_url": { + "value": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images", + "type": "string" + }, + "service_account_email": { + "value": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "type": "string" + } + }, + "resources": [ + { + "mode": "managed", + "type": "google_artifact_registry_repository", + "name": "repo", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "cleanup_policies": [], + "cleanup_policy_dry_run": false, + "create_time": "2026-05-26T05:04:46.779216Z", + "deletion_policy": "DELETE", + "description": "", + "docker_config": [], + "effective_labels": { + "goog-terraform-provisioned": "true" + }, + "format": "DOCKER", + "id": "projects/propane-will-491900-m5/locations/europe-west1/repositories/agent-images", + "kms_key_name": "", + "labels": {}, + "location": "europe-west1", + "maven_config": [], + "mode": "STANDARD_REPOSITORY", + "name": "agent-images", + "project": "propane-will-491900-m5", + "registry_uri": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images", + "remote_repository_config": [], + "repository_id": "agent-images", + "terraform_labels": { + "goog-terraform-provisioned": "true" + }, + "timeouts": null, + "update_time": "2026-05-26T05:04:46.779216Z", + "virtual_repository_config": [], + "vulnerability_scanning_config": [ + { + "enablement_config": "", + "enablement_state": "SCANNING_DISABLED", + "enablement_state_reason": "API containerscanning.googleapis.com is not enabled." + } + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "location": "europe-west1", + "project": "propane-will-491900-m5", + "repository_id": "agent-images" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "google_cloud_run_v2_service", + "name": "agent_service", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "annotations": {}, + "binary_authorization": [], + "build_config": [], + "client": "", + "client_version": "", + "conditions": [ + { + "execution_reason": "", + "last_transition_time": "2026-05-26T05:14:25.798237Z", + "message": "Revision 'osvauco-agent-00007-zlm' is not ready and cannot serve traffic. Image 'europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images/osvauco-agent:latest' not found.", + "reason": "REVISION_FAILED", + "revision_reason": "", + "severity": "", + "state": "CONDITION_FAILED", + "type": "RoutesReady" + }, + { + "execution_reason": "", + "last_transition_time": "2026-05-26T05:14:25.805972Z", + "message": "Image 'europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images/osvauco-agent:latest' not found.", + "reason": "", + "revision_reason": "", + "severity": "", + "state": "CONDITION_FAILED", + "type": "ConfigurationsReady" + } + ], + "create_time": "2026-05-25T22:48:32.969598Z", + "creator": "chris.christiansen@vauco.no", + "custom_audiences": [], + "default_uri_disabled": false, + "delete_time": "", + "deletion_policy": "DELETE", + "deletion_protection": true, + "description": "", + "effective_annotations": {}, + "effective_labels": {}, + "etag": "\"CLHY1NAGEMjMn60B/cHJvamVjdHMvcHJvcGFuZS13aWxsLTQ5MTkwMC1tNS9sb2NhdGlvbnMvZXVyb3BlLXdlc3QxL3NlcnZpY2VzL29zdmF1Y28tYWdlbnQ\"", + "expire_time": "", + "generation": "7", + "iap_enabled": false, + "id": "projects/propane-will-491900-m5/locations/europe-west1/services/osvauco-agent", + "ingress": "INGRESS_TRAFFIC_ALL", + "invoker_iam_disabled": false, + "labels": {}, + "last_modifier": "chris.christiansen@vauco.no", + "latest_created_revision": "projects/propane-will-491900-m5/locations/europe-west1/services/osvauco-agent/revisions/osvauco-agent-00007-zlm", + "latest_ready_revision": "projects/propane-will-491900-m5/locations/europe-west1/services/osvauco-agent/revisions/osvauco-agent-00006-282", + "launch_stage": "GA", + "location": "europe-west1", + "multi_region_settings": [], + "name": "osvauco-agent", + "observed_generation": "7", + "project": "propane-will-491900-m5", + "reconciling": false, + "scaling": [ + { + "manual_instance_count": 0, + "max_instance_count": 20, + "min_instance_count": 0, + "scaling_mode": "" + } + ], + "template": [ + { + "annotations": {}, + "containers": [ + { + "args": [], + "base_image_uri": "", + "build_info": [], + "command": [], + "depends_on": [], + "env": [ + { + "name": "CUSTOMER_ID", + "value": "osvauco", + "value_source": [] + } + ], + "image": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images/osvauco-agent:latest", + "liveness_probe": [], + "name": "", + "ports": [ + { + "container_port": 8080, + "name": "http1" + } + ], + "readiness_probe": [], + "resources": [ + { + "cpu_idle": true, + "limits": { + "cpu": "1000m", + "memory": "512Mi" + }, + "startup_cpu_boost": true + } + ], + "startup_probe": [ + { + "failure_threshold": 1, + "grpc": [], + "http_get": [], + "initial_delay_seconds": 0, + "period_seconds": 240, + "tcp_socket": [ + { + "port": 8080 + } + ], + "timeout_seconds": 240 + } + ], + "volume_mounts": [], + "working_dir": "" + } + ], + "encryption_key": "", + "execution_environment": "", + "gpu_zonal_redundancy_disabled": false, + "health_check_disabled": false, + "labels": {}, + "max_instance_request_concurrency": 80, + "node_selector": [], + "revision": "", + "scaling": [ + { + "max_instance_count": 20, + "min_instance_count": 0 + } + ], + "service_account": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "session_affinity": false, + "timeout": "300s", + "volumes": [], + "vpc_access": [] + } + ], + "terminal_condition": [ + { + "execution_reason": "", + "last_transition_time": "2026-05-26T05:14:25.876842Z", + "message": "Revision 'osvauco-agent-00007-zlm' is not ready and cannot serve traffic. Image 'europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images/osvauco-agent:latest' not found.", + "reason": "REVISION_FAILED", + "revision_reason": "", + "severity": "", + "state": "CONDITION_FAILED", + "type": "Ready" + } + ], + "terraform_labels": {}, + "timeouts": null, + "traffic": [ + { + "percent": 100, + "revision": "", + "tag": "", + "type": "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST" + } + ], + "traffic_statuses": [ + { + "percent": 100, + "revision": "", + "tag": "", + "type": "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST", + "uri": "" + } + ], + "uid": "ca411fe9-555a-4e83-9e97-d7ee9c1de497", + "update_time": "2026-05-26T05:14:25.363325Z", + "uri": "https://osvauco-agent-zjbqp3prqq-ew.a.run.app", + "urls": [ + "https://osvauco-agent-357036551735.europe-west1.run.app", + "https://osvauco-agent-zjbqp3prqq-ew.a.run.app" + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "location": "europe-west1", + "name": "osvauco-agent", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", + "dependencies": [ + "google_project_service.apis", + "google_service_account.agent_sa" + ] + } + ] + }, + { + "mode": "managed", + "type": "google_project_iam_member", + "name": "agent_sa_roles", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "index_key": "roles/aiplatform.user", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/aiplatform.user/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/aiplatform.user" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/cloudtrace.agent", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/cloudtrace.agent/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/cloudtrace.agent" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/logging.logWriter", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/logging.logWriter/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/logging.logWriter" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/monitoring.metricWriter", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/monitoring.metricWriter/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/monitoring.metricWriter" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/run.invoker", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/run.invoker/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/run.invoker" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/secretmanager.secretAccessor", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/secretmanager.secretAccessor/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/secretmanager.secretAccessor" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/storage.objectAdmin", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/storage.objectAdmin/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/storage.objectAdmin" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + } + ] + }, + { + "mode": "managed", + "type": "google_project_service", + "name": "apis", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "index_key": "aiplatform.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/aiplatform.googleapis.com", + "project": "propane-will-491900-m5", + "service": "aiplatform.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "artifactregistry.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/artifactregistry.googleapis.com", + "project": "propane-will-491900-m5", + "service": "artifactregistry.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudbilling.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudbilling.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudbilling.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudbuild.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudbuild.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudbuild.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudfunctions.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudfunctions.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudfunctions.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudresourcemanager.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudresourcemanager.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudresourcemanager.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudtrace.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudtrace.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudtrace.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "iam.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/iam.googleapis.com", + "project": "propane-will-491900-m5", + "service": "iam.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "logging.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/logging.googleapis.com", + "project": "propane-will-491900-m5", + "service": "logging.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "monitoring.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/monitoring.googleapis.com", + "project": "propane-will-491900-m5", + "service": "monitoring.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "pubsub.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/pubsub.googleapis.com", + "project": "propane-will-491900-m5", + "service": "pubsub.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "run.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/run.googleapis.com", + "project": "propane-will-491900-m5", + "service": "run.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "secretmanager.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/secretmanager.googleapis.com", + "project": "propane-will-491900-m5", + "service": "secretmanager.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "storage.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/storage.googleapis.com", + "project": "propane-will-491900-m5", + "service": "storage.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + } + ] + }, + { + "mode": "managed", + "type": "google_pubsub_topic", + "name": "billing_alerts", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "effective_labels": {}, + "id": "projects/propane-will-491900-m5/topics/billing-alert-auto-teardown", + "ingestion_data_source_settings": [], + "kms_key_name": "", + "labels": {}, + "message_retention_duration": "", + "message_storage_policy": [], + "message_transforms": [], + "name": "billing-alert-auto-teardown", + "project": "propane-will-491900-m5", + "schema_settings": [], + "tags": null, + "terraform_labels": {}, + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "name": "billing-alert-auto-teardown", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMCJ9" + } + ] + }, + { + "mode": "managed", + "type": "google_service_account", + "name": "agent_sa", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "account_id": "osvauco-agent-sa", + "create_ignore_already_exists": null, + "deletion_policy": "DELETE", + "description": "", + "disabled": false, + "display_name": "OSVauco Agent Runner SA", + "email": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "id": "projects/propane-will-491900-m5/serviceAccounts/osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "name": "projects/propane-will-491900-m5/serviceAccounts/osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "timeouts": null, + "unique_id": "100050809037592029700" + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "email": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDB9fQ==" + } + ] + } + ], + "check_results": null +} diff --git a/infrastructure/terraform/terraform.tfstate.backup b/infrastructure/terraform/terraform.tfstate.backup new file mode 100644 index 0000000..23262cd --- /dev/null +++ b/infrastructure/terraform/terraform.tfstate.backup @@ -0,0 +1,715 @@ +{ + "version": 4, + "terraform_version": "1.15.4", + "serial": 38, + "lineage": "88d46b78-a06c-f64f-5e21-905b6f0583d9", + "outputs": { + "artifact_registry_url": { + "value": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images", + "type": "string" + }, + "cloud_run_url": { + "value": "https://osvauco-agent-zjbqp3prqq-ew.a.run.app", + "type": "string" + }, + "service_account_email": { + "value": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "type": "string" + } + }, + "resources": [ + { + "mode": "managed", + "type": "google_artifact_registry_repository", + "name": "repo", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "cleanup_policies": [], + "cleanup_policy_dry_run": false, + "create_time": "2026-05-26T05:04:46.779216Z", + "deletion_policy": "DELETE", + "description": "", + "docker_config": [], + "effective_labels": { + "goog-terraform-provisioned": "true" + }, + "format": "DOCKER", + "id": "projects/propane-will-491900-m5/locations/europe-west1/repositories/agent-images", + "kms_key_name": "", + "labels": {}, + "location": "europe-west1", + "maven_config": [], + "mode": "STANDARD_REPOSITORY", + "name": "agent-images", + "project": "propane-will-491900-m5", + "registry_uri": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images", + "remote_repository_config": [], + "repository_id": "agent-images", + "terraform_labels": { + "goog-terraform-provisioned": "true" + }, + "timeouts": null, + "update_time": "2026-05-26T05:04:46.779216Z", + "virtual_repository_config": [], + "vulnerability_scanning_config": [ + { + "enablement_config": "", + "enablement_state": "SCANNING_DISABLED", + "enablement_state_reason": "API containerscanning.googleapis.com is not enabled." + } + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "location": "europe-west1", + "project": "propane-will-491900-m5", + "repository_id": "agent-images" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "google_cloud_run_v2_service", + "name": "agent_service", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "annotations": {}, + "binary_authorization": [], + "build_config": [], + "client": "", + "client_version": "", + "conditions": [ + { + "execution_reason": "", + "last_transition_time": "2026-05-25T23:44:19.852735Z", + "message": "", + "reason": "", + "revision_reason": "", + "severity": "", + "state": "CONDITION_SUCCEEDED", + "type": "RoutesReady" + }, + { + "execution_reason": "", + "last_transition_time": "2026-05-25T23:44:18.643827Z", + "message": "", + "reason": "", + "revision_reason": "", + "severity": "", + "state": "CONDITION_SUCCEEDED", + "type": "ConfigurationsReady" + } + ], + "create_time": "2026-05-25T22:48:32.969598Z", + "creator": "chris.christiansen@vauco.no", + "custom_audiences": [], + "default_uri_disabled": false, + "delete_time": "", + "deletion_policy": "DELETE", + "deletion_protection": true, + "description": "", + "effective_annotations": {}, + "effective_labels": {}, + "etag": "\"CLi909AGEOjL0mg/cHJvamVjdHMvcHJvcGFuZS13aWxsLTQ5MTkwMC1tNS9sb2NhdGlvbnMvZXVyb3BlLXdlc3QxL3NlcnZpY2VzL29zdmF1Y28tYWdlbnQ\"", + "expire_time": "", + "generation": "6", + "iap_enabled": false, + "id": "projects/propane-will-491900-m5/locations/europe-west1/services/osvauco-agent", + "ingress": "INGRESS_TRAFFIC_ALL", + "invoker_iam_disabled": false, + "labels": {}, + "last_modifier": "chris.christiansen@vauco.no", + "latest_created_revision": "projects/propane-will-491900-m5/locations/europe-west1/services/osvauco-agent/revisions/osvauco-agent-00006-282", + "latest_ready_revision": "projects/propane-will-491900-m5/locations/europe-west1/services/osvauco-agent/revisions/osvauco-agent-00006-282", + "launch_stage": "GA", + "location": "europe-west1", + "multi_region_settings": [], + "name": "osvauco-agent", + "observed_generation": "6", + "project": "propane-will-491900-m5", + "reconciling": false, + "scaling": [ + { + "manual_instance_count": 0, + "max_instance_count": 20, + "min_instance_count": 0, + "scaling_mode": "" + } + ], + "template": [ + { + "annotations": {}, + "containers": [ + { + "args": [], + "base_image_uri": "", + "build_info": [], + "command": [], + "depends_on": [], + "env": [ + { + "name": "CUSTOMER_ID", + "value": "osvauco", + "value_source": [] + } + ], + "image": "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images/osvauco-agent:latest", + "liveness_probe": [], + "name": "", + "ports": [ + { + "container_port": 8080, + "name": "http1" + } + ], + "readiness_probe": [], + "resources": [ + { + "cpu_idle": true, + "limits": { + "cpu": "1000m", + "memory": "512Mi" + }, + "startup_cpu_boost": true + } + ], + "startup_probe": [ + { + "failure_threshold": 1, + "grpc": [], + "http_get": [], + "initial_delay_seconds": 0, + "period_seconds": 240, + "tcp_socket": [ + { + "port": 8080 + } + ], + "timeout_seconds": 240 + } + ], + "volume_mounts": [], + "working_dir": "" + } + ], + "encryption_key": "", + "execution_environment": "", + "gpu_zonal_redundancy_disabled": false, + "health_check_disabled": false, + "labels": {}, + "max_instance_request_concurrency": 80, + "node_selector": [], + "revision": "", + "scaling": [ + { + "max_instance_count": 20, + "min_instance_count": 0 + } + ], + "service_account": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "session_affinity": false, + "timeout": "300s", + "volumes": [], + "vpc_access": [] + } + ], + "terminal_condition": [ + { + "execution_reason": "", + "last_transition_time": "2026-05-25T23:44:19.877967Z", + "message": "", + "reason": "", + "revision_reason": "", + "severity": "", + "state": "CONDITION_SUCCEEDED", + "type": "Ready" + } + ], + "terraform_labels": {}, + "timeouts": null, + "traffic": [ + { + "percent": 100, + "revision": "", + "tag": "", + "type": "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST" + } + ], + "traffic_statuses": [ + { + "percent": 100, + "revision": "", + "tag": "", + "type": "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST", + "uri": "" + } + ], + "uid": "ca411fe9-555a-4e83-9e97-d7ee9c1de497", + "update_time": "2026-05-25T23:43:52.219457Z", + "uri": "https://osvauco-agent-zjbqp3prqq-ew.a.run.app", + "urls": [ + "https://osvauco-agent-357036551735.europe-west1.run.app", + "https://osvauco-agent-zjbqp3prqq-ew.a.run.app" + ] + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "location": "europe-west1", + "name": "osvauco-agent", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", + "dependencies": [ + "google_project_service.apis", + "google_service_account.agent_sa" + ] + } + ] + }, + { + "mode": "managed", + "type": "google_project_iam_member", + "name": "agent_sa_roles", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "index_key": "roles/aiplatform.user", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/aiplatform.user/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/aiplatform.user" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/cloudtrace.agent", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/cloudtrace.agent/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/cloudtrace.agent" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/logging.logWriter", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/logging.logWriter/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/logging.logWriter" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/monitoring.metricWriter", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/monitoring.metricWriter/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/monitoring.metricWriter" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/run.invoker", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/run.invoker/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/run.invoker" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/secretmanager.secretAccessor", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/secretmanager.secretAccessor/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/secretmanager.secretAccessor" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + }, + { + "index_key": "roles/storage.objectAdmin", + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZSsY9DBZ4=", + "id": "propane-will-491900-m5/roles/storage.objectAdmin/serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "role": "roles/storage.objectAdmin" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "google_service_account.agent_sa" + ] + } + ] + }, + { + "mode": "managed", + "type": "google_project_service", + "name": "apis", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "index_key": "aiplatform.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/aiplatform.googleapis.com", + "project": "propane-will-491900-m5", + "service": "aiplatform.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "artifactregistry.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/artifactregistry.googleapis.com", + "project": "propane-will-491900-m5", + "service": "artifactregistry.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudbilling.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudbilling.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudbilling.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudbuild.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudbuild.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudbuild.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudfunctions.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudfunctions.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudfunctions.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudresourcemanager.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudresourcemanager.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudresourcemanager.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "cloudtrace.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/cloudtrace.googleapis.com", + "project": "propane-will-491900-m5", + "service": "cloudtrace.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "iam.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/iam.googleapis.com", + "project": "propane-will-491900-m5", + "service": "iam.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "logging.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/logging.googleapis.com", + "project": "propane-will-491900-m5", + "service": "logging.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "monitoring.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/monitoring.googleapis.com", + "project": "propane-will-491900-m5", + "service": "monitoring.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "pubsub.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/pubsub.googleapis.com", + "project": "propane-will-491900-m5", + "service": "pubsub.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "run.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/run.googleapis.com", + "project": "propane-will-491900-m5", + "service": "run.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "secretmanager.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/secretmanager.googleapis.com", + "project": "propane-will-491900-m5", + "service": "secretmanager.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "storage.googleapis.com", + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "disable_dependent_services": true, + "disable_on_destroy": null, + "id": "propane-will-491900-m5/storage.googleapis.com", + "project": "propane-will-491900-m5", + "service": "storage.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + } + ] + }, + { + "mode": "managed", + "type": "google_pubsub_topic", + "name": "billing_alerts", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "deletion_policy": "DELETE", + "effective_labels": {}, + "id": "projects/propane-will-491900-m5/topics/billing-alert-auto-teardown", + "ingestion_data_source_settings": [], + "kms_key_name": "", + "labels": {}, + "message_retention_duration": "", + "message_storage_policy": [], + "message_transforms": [], + "name": "billing-alert-auto-teardown", + "project": "propane-will-491900-m5", + "schema_settings": [], + "tags": null, + "terraform_labels": {}, + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "name": "billing-alert-auto-teardown", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMCJ9" + } + ] + }, + { + "mode": "managed", + "type": "google_service_account", + "name": "agent_sa", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "account_id": "osvauco-agent-sa", + "create_ignore_already_exists": null, + "deletion_policy": "DELETE", + "description": "", + "disabled": false, + "display_name": "OSVauco Agent Runner SA", + "email": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "id": "projects/propane-will-491900-m5/serviceAccounts/osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "member": "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "name": "projects/propane-will-491900-m5/serviceAccounts/osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5", + "timeouts": null, + "unique_id": "100050809037592029700" + }, + "sensitive_attributes": [], + "identity_schema_version": 1, + "identity": { + "email": "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com", + "project": "propane-will-491900-m5" + }, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDB9fQ==" + } + ] + } + ], + "check_results": null +} diff --git a/infrastructure/terraform/terraform.tfvars b/infrastructure/terraform/terraform.tfvars new file mode 100644 index 0000000..39bc911 --- /dev/null +++ b/infrastructure/terraform/terraform.tfvars @@ -0,0 +1,8 @@ +project_id = "propane-will-491900-m5" +region = "europe-west1" +alert_email = "chris.christiansen@vauco.no" +billing_account_id = "0171F6-057E6B-A260BA" +cloud_run_region = "europe-west1" +artifact_region = "europe-west1" +cloud_run_service_name = "osvauco-agent" +artifact_repo_name = "agent-images" \ No newline at end of file diff --git a/infrastructure/terraform/tfapply.txt b/infrastructure/terraform/tfapply.txt new file mode 100644 index 0000000..a37f358 --- /dev/null +++ b/infrastructure/terraform/tfapply.txt @@ -0,0 +1,230 @@ +google_project_service.apis["run.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/run.googleapis.com] +google_project_service.apis["monitoring.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/monitoring.googleapis.com] +google_project_service.apis["secretmanager.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/secretmanager.googleapis.com] +google_project_service.apis["iam.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/iam.googleapis.com] +google_project_service.apis["cloudtrace.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/cloudtrace.googleapis.com] +google_artifact_registry_repository.repo: Refreshing state... [id=projects/propane-will-491900-m5/locations/europe-west1/repositories/agent-images] +google_project_service.apis["cloudresourcemanager.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/cloudresourcemanager.googleapis.com] +google_project_service.apis["aiplatform.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/aiplatform.googleapis.com] +google_project_service.apis["cloudbuild.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/cloudbuild.googleapis.com] +google_project_service.apis["cloudfunctions.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/cloudfunctions.googleapis.com] +google_project_service.apis["pubsub.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/pubsub.googleapis.com] +google_project_service.apis["logging.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/logging.googleapis.com] +google_project_service.apis["storage.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/storage.googleapis.com] +google_project_service.apis["artifactregistry.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/artifactregistry.googleapis.com] +google_project_service.apis["cloudbilling.googleapis.com"]: Refreshing state... [id=propane-will-491900-m5/cloudbilling.googleapis.com] + +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + + create + +Terraform will perform the following actions: + + # google_cloud_run_v2_service.agent_service will be created + + resource "google_cloud_run_v2_service" "agent_service" { + + conditions = (known after apply) + + create_time = (known after apply) + + creator = (known after apply) + + delete_time = (known after apply) + + deletion_policy = "DELETE" + + deletion_protection = true + + effective_annotations = (known after apply) + + effective_labels = { + + "goog-terraform-provisioned" = "true" + } + + etag = (known after apply) + + expire_time = (known after apply) + + generation = (known after apply) + + id = (known after apply) + + ingress = (known after apply) + + last_modifier = (known after apply) + + latest_created_revision = (known after apply) + + latest_ready_revision = (known after apply) + + launch_stage = (known after apply) + + location = "europe-west1" + + name = "osvauco-agent" + + observed_generation = (known after apply) + + project = "propane-will-491900-m5" + + reconciling = (known after apply) + + terminal_condition = (known after apply) + + terraform_labels = { + + "goog-terraform-provisioned" = "true" + } + + traffic_statuses = (known after apply) + + uid = (known after apply) + + update_time = (known after apply) + + uri = (known after apply) + + urls = (known after apply) + + + scaling (known after apply) + + + template { + + max_instance_request_concurrency = (known after apply) + + service_account = "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + timeout = (known after apply) + + + containers { + + build_info = (known after apply) + + image = "europe-west1-docker.pkg.dev/propane-will-491900-m5/agent-images/osvauco-agent:latest" + + + env { + + name = "CUSTOMER_ID" + + value = "osvauco" + } + + + ports (known after apply) + + + resources (known after apply) + + + startup_probe (known after apply) + } + + + scaling (known after apply) + } + + + traffic (known after apply) + } + + # google_cloud_run_v2_service_iam_member.invoker will be created + + resource "google_cloud_run_v2_service_iam_member" "invoker" { + + etag = (known after apply) + + id = (known after apply) + + location = "europe-west1" + + member = "user:chris.christiansen@vauco.no" + + name = "osvauco-agent" + + project = "propane-will-491900-m5" + + role = "roles/run.invoker" + } + + # google_project_iam_member.agent_sa_roles["roles/aiplatform.user"] will be created + + resource "google_project_iam_member" "agent_sa_roles" { + + etag = (known after apply) + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + project = "propane-will-491900-m5" + + role = "roles/aiplatform.user" + } + + # google_project_iam_member.agent_sa_roles["roles/cloudtrace.agent"] will be created + + resource "google_project_iam_member" "agent_sa_roles" { + + etag = (known after apply) + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + project = "propane-will-491900-m5" + + role = "roles/cloudtrace.agent" + } + + # google_project_iam_member.agent_sa_roles["roles/logging.logWriter"] will be created + + resource "google_project_iam_member" "agent_sa_roles" { + + etag = (known after apply) + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + project = "propane-will-491900-m5" + + role = "roles/logging.logWriter" + } + + # google_project_iam_member.agent_sa_roles["roles/monitoring.metricWriter"] will be created + + resource "google_project_iam_member" "agent_sa_roles" { + + etag = (known after apply) + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + project = "propane-will-491900-m5" + + role = "roles/monitoring.metricWriter" + } + + # google_project_iam_member.agent_sa_roles["roles/run.invoker"] will be created + + resource "google_project_iam_member" "agent_sa_roles" { + + etag = (known after apply) + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + project = "propane-will-491900-m5" + + role = "roles/run.invoker" + } + + # google_project_iam_member.agent_sa_roles["roles/secretmanager.secretAccessor"] will be created + + resource "google_project_iam_member" "agent_sa_roles" { + + etag = (known after apply) + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + project = "propane-will-491900-m5" + + role = "roles/secretmanager.secretAccessor" + } + + # google_project_iam_member.agent_sa_roles["roles/storage.objectAdmin"] will be created + + resource "google_project_iam_member" "agent_sa_roles" { + + etag = (known after apply) + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + project = "propane-will-491900-m5" + + role = "roles/storage.objectAdmin" + } + + # google_project_service.apis["cloudbuildv2.googleapis.com"] will be created + + resource "google_project_service" "apis" { + + deletion_policy = "DELETE" + + disable_dependent_services = true + + id = (known after apply) + + project = "propane-will-491900-m5" + + service = "cloudbuildv2.googleapis.com" + } + + # google_pubsub_subscription.billing_alerts_sub will be created + + resource "google_pubsub_subscription" "billing_alerts_sub" { + + ack_deadline_seconds = (known after apply) + + deletion_policy = "DELETE" + + effective_labels = { + + "goog-terraform-provisioned" = "true" + } + + id = (known after apply) + + message_retention_duration = "604800s" + + name = "billing-alert-subscription" + + project = "propane-will-491900-m5" + + terraform_labels = { + + "goog-terraform-provisioned" = "true" + } + + topic = "billing-alert-auto-teardown" + + + expiration_policy (known after apply) + + + push_config { + + push_endpoint = "mailto:chris.christiansen@vauco.no" + } + } + + # google_pubsub_topic.billing_alerts will be created + + resource "google_pubsub_topic" "billing_alerts" { + + deletion_policy = "DELETE" + + effective_labels = { + + "goog-terraform-provisioned" = "true" + } + + id = (known after apply) + + name = "billing-alert-auto-teardown" + + project = "propane-will-491900-m5" + + terraform_labels = { + + "goog-terraform-provisioned" = "true" + } + + + message_storage_policy (known after apply) + } + + # google_service_account.agent_sa will be created + + resource "google_service_account" "agent_sa" { + + account_id = "osvauco-agent-sa" + + deletion_policy = "DELETE" + + disabled = false + + display_name = "OSVauco Agent Runner SA" + + email = "osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + id = (known after apply) + + member = "serviceAccount:osvauco-agent-sa@propane-will-491900-m5.iam.gserviceaccount.com" + + name = (known after apply) + + project = "propane-will-491900-m5" + + unique_id = (known after apply) + } + +Plan: 13 to add, 0 to change, 0 to destroy. + +Changes to Outputs: + + cloud_run_url = (known after apply) +google_service_account.agent_sa: Creating... +google_project_service.apis["cloudbuildv2.googleapis.com"]: Creating... +google_pubsub_topic.billing_alerts: Creating...