diff --git a/terraform/environments/dev/main.tf b/terraform/environments/dev/main.tf index d85ea2a..78d7337 100644 --- a/terraform/environments/dev/main.tf +++ b/terraform/environments/dev/main.tf @@ -15,23 +15,23 @@ provider "google" { module "network" { source = "../../modules/network" project_name = var.project_name - region = var.region - frontend_cidr = var.frontend_cidr - backend_cidr = var.backend_cidr - database_cidr = var.database_cidr + region = var.region + frontend_cidr = var.frontend_cidr + backend_cidr = var.backend_cidr + database_cidr = var.database_cidr ssh_source_ranges = var.ssh_source_ranges } module "compute" { - source = "../../modules/compute" - instance_type = var.instance_type - zone = var.zone + source = "../../modules/compute" + instance_type = var.instance_type + zone = var.zone frontend_subnet_id = module.network.subnets.frontend - backend_subnet_id = module.network.subnets.backend + backend_subnet_id = module.network.subnets.backend database_subnet_id = module.network.subnets.database } module "iam" { - source = "../../modules/iam" - project_id = var.project_id + source = "../../modules/iam" + project_id = var.project_id } \ No newline at end of file diff --git a/terraform/environments/dev/outputs.tf b/terraform/environments/dev/outputs.tf index 28112d1..7210beb 100644 --- a/terraform/environments/dev/outputs.tf +++ b/terraform/environments/dev/outputs.tf @@ -16,7 +16,7 @@ output "service_account_email" { output "service_account_key" { sensitive = true - value = module.iam.service_account_key + value = module.iam.service_account_key } output "vpc" { @@ -24,5 +24,5 @@ output "vpc" { } output "subnets" { - value = module.network.subnets + value = module.network.subnets } \ No newline at end of file diff --git a/terraform/environments/dev/terraform.tfstate b/terraform/environments/dev/terraform.tfstate index f5e311d..1c448f1 100644 --- a/terraform/environments/dev/terraform.tfstate +++ b/terraform/environments/dev/terraform.tfstate @@ -1,14 +1,14 @@ { "version": 4, "terraform_version": "1.14.1", - "serial": 12, + "serial": 28, "lineage": "7ef9decf-6c38-b2fc-8cc0-06d4c8d2121a", "outputs": { - "instance_names": { + "ip_internes": { "value": { - "backend": "backend-instance", - "database": "database-instance", - "frontend": "frontend-instance" + "backend": "10.0.2.2", + "database": "10.0.3.2", + "frontend": "10.0.1.2" }, "type": [ "object", @@ -18,8 +18,1041 @@ "frontend": "string" } ] + }, + "ip_public_frontend": { + "value": "34.155.14.126", + "type": "string" + }, + "nom_instances": { + "value": { + "backend": "vm-backend", + "database": "vm-database", + "frontend": "vm-frontend" + }, + "type": [ + "object", + { + "backend": "string", + "database": "string", + "frontend": "string" + } + ] + }, + "service_account_email": { + "value": "terraform@learned-iris-359617.iam.gserviceaccount.com", + "type": "string" + }, + "service_account_key": { + "value": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAibGVhcm5lZC1pcmlzLTM1OTYxNyIsCiAgInByaXZhdGVfa2V5X2lkIjogIjgyNGFhMTg0MDczMDI0MDJkNjU4ZWQwNmU1Yjg1OTY0YTlkYmFhMmQiLAogICJwcml2YXRlX2tleSI6ICItLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS1cbk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQ2QvSFpxcU1KdnNyVmRcbk96UWwyL3hhQjN4VFRlNHI0d0t0M1BCTFR0MzFoUzBUSXBSaUd4dmFoSHdWU2tmcENWa0o3Ui9LNUNYeXd6ZEpcbjdVU0lqdktJNmhFQXhENjhXODRoSExMYXkxMmhjT09yL0tWZWlhSHpqVUFDN1RyYkFiUHduTmxNbG5EaUhCamFcbmRycVVhSVJmc1cxOHE3OFB6bk5wKzRrY2tOYTVQbUNZdzVNTTk5SXBqOGlyeGVpMWJXNURVUEpabTVhVGpMdmNcbmVJbjVGNnRCRTJpdEx1U0JrcW5xekhTYXhoSTNhdFVuSlJTTi9LVWJyTnFvbGtKY095V2w5b21TSTRSWTdhM0lcblFaYTBsR3U3R29yMjF0bDNDeU9Ncy8vZWY2UjNSZ2RWWldSQUlkOGo5emNoQ2hnYm5lb1J1ekJ0M1hnRk45SjhcbktodlViRGJmQWdNQkFBRUNnZ0VBSERyVTlBa1V1VDNQSDRvcExzeW93bk9NK1J1M1A3dFFLcjRNYUFCL005Um9cbnNmOGZVWXB6aHkvZU5qV3dOTWxaVWljL1k1TXgzcmVZUlFyekVJMnVjOTJUVFRaRDJZZDBCVUdxQ2VPRjV3ZVRcbmZ4TmxmMGVMbTBmMWxMQk1NSDhVNXAwNFRQR2kyUnhaS294Rm1hZzFZeDRDcU9ETmdxY0t3M2pSVHJ2b3ltKzlcbmxHTWtGQUh3S0ZNY3pWS3doRUxnTHpiaXFnZlZ5dWdPSno3S01YWlM2bGNSSWtpU3JtZGlNeEVQODByYXUzcTRcbjc2RHVOeVB0Y1VpUElnWEJNMnR2WEdnM3ZoRmk2QUR2bDJBOFVBZmhXUWZVd0Y4aHNuKzBucnFPZHVxWkRJcEVcblV2UG1nc0NyWDlieTVUTzBWTEZ6c3IvN245Szk1RWJDSGNJY2dvN3BiUUtCZ1FETWdBRmRrdG80d1o0S3lrbTlcbmFFcjRHNzN6UDMwOTNDY1MyWllZeDN3NUNHbmpzVEM2SDZxOUhBQmJUU3g5RlVHOFNvRklGQ09LR1NXdjlLYmdcbjdSSk5DaTFxeTU0Nk82V1Bkb20reDVyb3NOVS9IOEYvTE82RXl1eG9TYjR3dVhnNTY3ODlKMDVadDlUeXQ2MXFcbkxvaXpVY050N3U2YThuWlFWc3VGdFVvWFd3S0JnUURGeGJ6YWtPSWFCMTVnTllIRTNPL1NobTBsdGJ2dTlibXhcbkJ3K3BrL2diQSt4dml0QzZrNGREL1V6YnJsRG44Z3ZMYnpnS0tsWmwvNXdMcmtQQ0U2QXdTTS9BYmVUOFFvT1RcbjJMa0txMll4OHlDUVp1TEQ5aDAxTVdXSzVEcWRyWjY5UGV3MHloUjZRRm5IQStIakVsNy9CY0VUOFRPMWowS25cbkorT3d4Q0Q1elFLQmdDODI0cG5USFBUN3B0eUE1ZE9JTDc3bTBNMUhmRWY2K3o1NzVBNm1pQVMyNzVPMVJqWENcbnQrM2ZlQ21jUU1oRVR5QUU1NkpYbS9qM1kxOGpraC9lUEZwekhoZEpHYWdDTzNCTEF2UjhLMFRNQndBQytlNjlcbjFmZnN6ZllxQ0hKQmNBT1hiVmpXS1YzSGRxL3ZQbWVFaE9VNTNIQVdPUnFuSGkvZ1NpNzlzelIvQW9HQkFMbEJcblFXY0c0aFI1cElqQWRqOCtxWkx0Z3A0WlB1Slc0TXNYank5TXdOSWxlYnIrTUFrbEdrYXdwZWI5d1NHVGxFTEtcbmVwYmpFNjFWb3drNkFwUndKOVF5MEJBem9KUS9oZHJlM201RklXUldsc0ZNN3N1YTViOG05elFFRjNnTjR5em5cbkxUUkJ1cTdOU290bWNwaHVZL2ZFbnhpY0R0RGFVaGdjQUdkYlFIeGRBb0dCQUtFenpvWDZTam9NOEc4S1JtRFlcbm55UEkxbXNucndGdlJjTnZwRjNMNVlEWnM3UGlHcmk3ajdDL2JaUHFnQ1ZzQU1BVDJNTUErTEx6ZElUODJXb1dcbkthSFZhUVRmZWVZaFI0R0lpeEVoMUhveldwNnpMU0taL20ycnN3TnN1WWdUam1FYUVOOFlkYVBkd1lEbllCaXpcblFkN0ZsZzIwakxIZXBqZ0JVazA3NGZYSVxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwKICAiY2xpZW50X2VtYWlsIjogInRlcnJhZm9ybUBsZWFybmVkLWlyaXMtMzU5NjE3LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwKICAiY2xpZW50X2lkIjogIjExMzI1MzY4MzEyMTcwMzI2OTQ1NiIsCiAgImF1dGhfdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi9hdXRoIiwKICAidG9rZW5fdXJpIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwKICAiYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS9jZXJ0cyIsCiAgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvdGVycmFmb3JtJTQwbGVhcm5lZC1pcmlzLTM1OTYxNy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsCiAgInVuaXZlcnNlX2RvbWFpbiI6ICJnb29nbGVhcGlzLmNvbSIKfQo=", + "type": "string", + "sensitive": true + }, + "subnets": { + "value": { + "backend": "projects/learned-iris-359617/regions/europe-west9/subnetworks/backend", + "database": "projects/learned-iris-359617/regions/europe-west9/subnetworks/database", + "frontend": "projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend" + }, + "type": [ + "object", + { + "backend": "string", + "database": "string", + "frontend": "string" + } + ] + }, + "vpc": { + "value": "projects/learned-iris-359617/global/networks/vpc-terraform", + "type": "string" } }, - "resources": [], + "resources": [ + { + "module": "module.compute", + "mode": "managed", + "type": "google_compute_instance", + "name": "vm_backend", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 6, + "attributes": { + "advanced_machine_features": [], + "allow_stopping_for_update": null, + "attached_disk": [], + "boot_disk": [ + { + "auto_delete": true, + "device_name": "persistent-disk-0", + "disk_encryption_key_raw": "", + "disk_encryption_key_sha256": "", + "initialize_params": [ + { + "enable_confidential_compute": false, + "image": "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20251111", + "labels": {}, + "provisioned_iops": 0, + "provisioned_throughput": 0, + "resource_manager_tags": null, + "resource_policies": [], + "size": 10, + "storage_pool": "", + "type": "pd-standard" + } + ], + "interface": "", + "kms_key_self_link": "", + "mode": "READ_WRITE", + "source": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/disks/vm-backend" + } + ], + "can_ip_forward": false, + "confidential_instance_config": [], + "cpu_platform": "Intel Broadwell", + "creation_timestamp": "2025-12-04T02:19:14.335-08:00", + "current_status": "RUNNING", + "deletion_protection": false, + "description": "", + "desired_status": null, + "effective_labels": { + "goog-terraform-provisioned": "true" + }, + "enable_display": false, + "guest_accelerator": [], + "hostname": "", + "id": "projects/learned-iris-359617/zones/europe-west9-b/instances/vm-backend", + "instance_id": "5542461964910649037", + "key_revocation_action_type": "", + "label_fingerprint": "vezUS-42LLM=", + "labels": null, + "machine_type": "e2-small", + "metadata": { + "enable-oslogin": "TRUE" + }, + "metadata_fingerprint": "rYvC-XMAZmM=", + "metadata_startup_script": null, + "min_cpu_platform": "", + "name": "vm-backend", + "network_interface": [ + { + "access_config": [], + "alias_ip_range": [], + "internal_ipv6_prefix_length": 0, + "ipv6_access_config": [], + "ipv6_access_type": "", + "ipv6_address": "", + "name": "nic0", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "network_ip": "10.0.2.2", + "nic_type": "", + "queue_count": 0, + "stack_type": "IPV4_ONLY", + "subnetwork": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/backend", + "subnetwork_project": "learned-iris-359617" + } + ], + "network_performance_config": [], + "params": [], + "project": "learned-iris-359617", + "reservation_affinity": [], + "resource_policies": null, + "scheduling": [ + { + "automatic_restart": true, + "instance_termination_action": "", + "local_ssd_recovery_timeout": [], + "max_run_duration": [], + "min_node_cpus": 0, + "node_affinities": [], + "on_host_maintenance": "MIGRATE", + "on_instance_stop_action": [], + "preemptible": false, + "provisioning_model": "STANDARD" + } + ], + "scratch_disk": [], + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/instances/vm-backend", + "service_account": [], + "shielded_instance_config": [ + { + "enable_integrity_monitoring": true, + "enable_secure_boot": false, + "enable_vtpm": true + } + ], + "tags": [ + "backend", + "ssh" + ], + "tags_fingerprint": "N2bbCLFli_k=", + "terraform_labels": { + "goog-terraform-provisioned": "true" + }, + "timeouts": null, + "zone": "europe-west9-b" + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "boot_disk" + }, + { + "type": "index", + "value": { + "value": 0, + "type": "number" + } + }, + { + "type": "get_attr", + "value": "disk_encryption_key_raw" + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiNiJ9", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform", + "module.network.google_compute_subnetwork.subnet_backend", + "module.network.google_compute_subnetwork.subnet_database", + "module.network.google_compute_subnetwork.subnet_frontend" + ] + } + ] + }, + { + "module": "module.compute", + "mode": "managed", + "type": "google_compute_instance", + "name": "vm_database", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 6, + "attributes": { + "advanced_machine_features": [], + "allow_stopping_for_update": null, + "attached_disk": [], + "boot_disk": [ + { + "auto_delete": true, + "device_name": "persistent-disk-0", + "disk_encryption_key_raw": "", + "disk_encryption_key_sha256": "", + "initialize_params": [ + { + "enable_confidential_compute": false, + "image": "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20251111", + "labels": {}, + "provisioned_iops": 0, + "provisioned_throughput": 0, + "resource_manager_tags": null, + "resource_policies": [], + "size": 20, + "storage_pool": "", + "type": "pd-standard" + } + ], + "interface": "", + "kms_key_self_link": "", + "mode": "READ_WRITE", + "source": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/disks/vm-database" + } + ], + "can_ip_forward": false, + "confidential_instance_config": [], + "cpu_platform": "Intel Broadwell", + "creation_timestamp": "2025-12-04T02:19:15.676-08:00", + "current_status": "RUNNING", + "deletion_protection": false, + "description": "", + "desired_status": null, + "effective_labels": { + "goog-terraform-provisioned": "true" + }, + "enable_display": false, + "guest_accelerator": [], + "hostname": "", + "id": "projects/learned-iris-359617/zones/europe-west9-b/instances/vm-database", + "instance_id": "5740049418512293581", + "key_revocation_action_type": "", + "label_fingerprint": "vezUS-42LLM=", + "labels": null, + "machine_type": "e2-small", + "metadata": { + "enable-oslogin": "TRUE" + }, + "metadata_fingerprint": "rYvC-XMAZmM=", + "metadata_startup_script": null, + "min_cpu_platform": "", + "name": "vm-database", + "network_interface": [ + { + "access_config": [], + "alias_ip_range": [], + "internal_ipv6_prefix_length": 0, + "ipv6_access_config": [], + "ipv6_access_type": "", + "ipv6_address": "", + "name": "nic0", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "network_ip": "10.0.3.2", + "nic_type": "", + "queue_count": 0, + "stack_type": "IPV4_ONLY", + "subnetwork": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/database", + "subnetwork_project": "learned-iris-359617" + } + ], + "network_performance_config": [], + "params": [], + "project": "learned-iris-359617", + "reservation_affinity": [], + "resource_policies": null, + "scheduling": [ + { + "automatic_restart": true, + "instance_termination_action": "", + "local_ssd_recovery_timeout": [], + "max_run_duration": [], + "min_node_cpus": 0, + "node_affinities": [], + "on_host_maintenance": "MIGRATE", + "on_instance_stop_action": [], + "preemptible": false, + "provisioning_model": "STANDARD" + } + ], + "scratch_disk": [], + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/instances/vm-database", + "service_account": [], + "shielded_instance_config": [ + { + "enable_integrity_monitoring": true, + "enable_secure_boot": false, + "enable_vtpm": true + } + ], + "tags": [ + "database", + "ssh" + ], + "tags_fingerprint": "22sTRfPQYj4=", + "terraform_labels": { + "goog-terraform-provisioned": "true" + }, + "timeouts": null, + "zone": "europe-west9-b" + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "boot_disk" + }, + { + "type": "index", + "value": { + "value": 0, + "type": "number" + } + }, + { + "type": "get_attr", + "value": "disk_encryption_key_raw" + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiNiJ9", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform", + "module.network.google_compute_subnetwork.subnet_backend", + "module.network.google_compute_subnetwork.subnet_database", + "module.network.google_compute_subnetwork.subnet_frontend" + ] + } + ] + }, + { + "module": "module.compute", + "mode": "managed", + "type": "google_compute_instance", + "name": "vm_frontend", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 6, + "attributes": { + "advanced_machine_features": [], + "allow_stopping_for_update": null, + "attached_disk": [], + "boot_disk": [ + { + "auto_delete": true, + "device_name": "persistent-disk-0", + "disk_encryption_key_raw": "", + "disk_encryption_key_sha256": "", + "initialize_params": [ + { + "enable_confidential_compute": false, + "image": "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20251111", + "labels": {}, + "provisioned_iops": 0, + "provisioned_throughput": 0, + "resource_manager_tags": null, + "resource_policies": [], + "size": 10, + "storage_pool": "", + "type": "pd-standard" + } + ], + "interface": "", + "kms_key_self_link": "", + "mode": "READ_WRITE", + "source": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/disks/vm-frontend" + } + ], + "can_ip_forward": false, + "confidential_instance_config": [], + "cpu_platform": "Intel Broadwell", + "creation_timestamp": "2025-12-04T02:19:14.943-08:00", + "current_status": "RUNNING", + "deletion_protection": false, + "description": "", + "desired_status": null, + "effective_labels": { + "goog-terraform-provisioned": "true" + }, + "enable_display": false, + "guest_accelerator": [], + "hostname": "", + "id": "projects/learned-iris-359617/zones/europe-west9-b/instances/vm-frontend", + "instance_id": "4759259491480690381", + "key_revocation_action_type": "", + "label_fingerprint": "vezUS-42LLM=", + "labels": null, + "machine_type": "e2-small", + "metadata": { + "enable-oslogin": "TRUE" + }, + "metadata_fingerprint": "rYvC-XMAZmM=", + "metadata_startup_script": null, + "min_cpu_platform": "", + "name": "vm-frontend", + "network_interface": [ + { + "access_config": [ + { + "nat_ip": "34.155.14.126", + "network_tier": "PREMIUM", + "public_ptr_domain_name": "" + } + ], + "alias_ip_range": [], + "internal_ipv6_prefix_length": 0, + "ipv6_access_config": [], + "ipv6_access_type": "", + "ipv6_address": "", + "name": "nic0", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "network_ip": "10.0.1.2", + "nic_type": "", + "queue_count": 0, + "stack_type": "IPV4_ONLY", + "subnetwork": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend", + "subnetwork_project": "learned-iris-359617" + } + ], + "network_performance_config": [], + "params": [], + "project": "learned-iris-359617", + "reservation_affinity": [], + "resource_policies": null, + "scheduling": [ + { + "automatic_restart": true, + "instance_termination_action": "", + "local_ssd_recovery_timeout": [], + "max_run_duration": [], + "min_node_cpus": 0, + "node_affinities": [], + "on_host_maintenance": "MIGRATE", + "on_instance_stop_action": [], + "preemptible": false, + "provisioning_model": "STANDARD" + } + ], + "scratch_disk": [], + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/instances/vm-frontend", + "service_account": [], + "shielded_instance_config": [ + { + "enable_integrity_monitoring": true, + "enable_secure_boot": false, + "enable_vtpm": true + } + ], + "tags": [ + "frontend", + "ssh" + ], + "tags_fingerprint": "sermMtqzdso=", + "terraform_labels": { + "goog-terraform-provisioned": "true" + }, + "timeouts": null, + "zone": "europe-west9-b" + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "boot_disk" + }, + { + "type": "index", + "value": { + "value": 0, + "type": "number" + } + }, + { + "type": "get_attr", + "value": "disk_encryption_key_raw" + } + ] + ], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiNiJ9", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform", + "module.network.google_compute_subnetwork.subnet_backend", + "module.network.google_compute_subnetwork.subnet_database", + "module.network.google_compute_subnetwork.subnet_frontend" + ] + } + ] + }, + { + "module": "module.iam", + "mode": "data", + "type": "google_client_openid_userinfo", + "name": "me", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "email": "julian.gallego180105@gmail.com", + "id": "julian.gallego180105@gmail.com" + }, + "sensitive_attributes": [], + "identity_schema_version": 0 + } + ] + }, + { + "module": "module.iam", + "mode": "managed", + "type": "google_os_login_ssh_public_key", + "name": "cache", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "expiration_time_usec": "", + "fingerprint": "759cb1178c9ee9fc58d6d3fb0fe01a97a2516fa89d439ed63786411a3fe60ef9", + "id": "users/julian.gallego180105@gmail.com/sshPublicKeys/759cb1178c9ee9fc58d6d3fb0fe01a97a2516fa89d439ed63786411a3fe60ef9", + "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwvtrSp4IaaEFQ3u9xcyKKlWpucIeZFyXguamjg3+MOwBZmHBptnNd1i/2hv4q+ezA1Jq1SEqZ4uNeKB9P76Q43Nv+pqYkPxm8lfueU/ZrEomjpseEZEHipHyD5WQd+idrbrHqqcISkIktyyFvSEbDELqfe4+IvvR1zvsHXA/onisJ6lCwoDKSXwFp/wWhuzEILpzE5EGXsX4E/lbieWradVLDbvF0QNDBlcYc1zfuYQ8BG4rKcvw7xwqr243UzPBKWndd63IqbNOBfi8V1jqj96mP6kddohxl+Caz5lsh66Pp97GDnSAn9jNk8HAI3Ws0K540PSII5AqgdRJEbuI1Y0saUP3p1uDkysosYSqJU/SAxux00E/2/rLfdvaf7czEwHECAvEcLdvmceOqHJrKh2pSgb5MZ1oq3E6jMvCAiJNT0n6i+iRalGarl46CY6rQakEq3d84pgt7lH1mN3ZstKWJocppFMZRaCPdwgtTwbBTDPJm8TZ85QbtfyZumZU= julian_gallego180105_gmail_com\n", + "project": "learned-iris-359617", + "timeouts": null, + "user": "julian.gallego180105@gmail.com" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", + "dependencies": [ + "module.iam.data.google_client_openid_userinfo.me" + ] + } + ] + }, + { + "module": "module.iam", + "mode": "managed", + "type": "google_project_iam_binding", + "name": "custom_service_account", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwZFHafOG5o=", + "id": "learned-iris-359617/roles/viewer", + "members": [ + "serviceAccount:terraform@learned-iris-359617.iam.gserviceaccount.com" + ], + "project": "learned-iris-359617", + "role": "roles/viewer" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "module.iam.google_service_account.service_account" + ] + } + ] + }, + { + "module": "module.iam", + "mode": "managed", + "type": "google_service_account", + "name": "service_account", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "account_id": "terraform", + "create_ignore_already_exists": null, + "description": "", + "disabled": false, + "display_name": "terraform", + "email": "terraform@learned-iris-359617.iam.gserviceaccount.com", + "id": "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com", + "member": "serviceAccount:terraform@learned-iris-359617.iam.gserviceaccount.com", + "name": "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com", + "project": "learned-iris-359617", + "timeouts": null, + "unique_id": "113253683121703269456" + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjozMDAwMDAwMDAwMDB9fQ==" + } + ] + }, + { + "module": "module.iam", + "mode": "managed", + "type": "google_service_account_key", + "name": "mykey", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com/keys/824aa18407302402d658ed06e5b85964a9dbaa2d", + "keepers": null, + "key_algorithm": "KEY_ALG_RSA_2048", + "name": "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com/keys/824aa18407302402d658ed06e5b85964a9dbaa2d", + "private_key": "ewogICJ0eXBlIjogInNlcnZpY2VfYWNjb3VudCIsCiAgInByb2plY3RfaWQiOiAibGVhcm5lZC1pcmlzLTM1OTYxNyIsCiAgInByaXZhdGVfa2V5X2lkIjogIjgyNGFhMTg0MDczMDI0MDJkNjU4ZWQwNmU1Yjg1OTY0YTlkYmFhMmQiLAogICJwcml2YXRlX2tleSI6ICItLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS1cbk1JSUV2Z0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktnd2dnU2tBZ0VBQW9JQkFRQ2QvSFpxcU1KdnNyVmRcbk96UWwyL3hhQjN4VFRlNHI0d0t0M1BCTFR0MzFoUzBUSXBSaUd4dmFoSHdWU2tmcENWa0o3Ui9LNUNYeXd6ZEpcbjdVU0lqdktJNmhFQXhENjhXODRoSExMYXkxMmhjT09yL0tWZWlhSHpqVUFDN1RyYkFiUHduTmxNbG5EaUhCamFcbmRycVVhSVJmc1cxOHE3OFB6bk5wKzRrY2tOYTVQbUNZdzVNTTk5SXBqOGlyeGVpMWJXNURVUEpabTVhVGpMdmNcbmVJbjVGNnRCRTJpdEx1U0JrcW5xekhTYXhoSTNhdFVuSlJTTi9LVWJyTnFvbGtKY095V2w5b21TSTRSWTdhM0lcblFaYTBsR3U3R29yMjF0bDNDeU9Ncy8vZWY2UjNSZ2RWWldSQUlkOGo5emNoQ2hnYm5lb1J1ekJ0M1hnRk45SjhcbktodlViRGJmQWdNQkFBRUNnZ0VBSERyVTlBa1V1VDNQSDRvcExzeW93bk9NK1J1M1A3dFFLcjRNYUFCL005Um9cbnNmOGZVWXB6aHkvZU5qV3dOTWxaVWljL1k1TXgzcmVZUlFyekVJMnVjOTJUVFRaRDJZZDBCVUdxQ2VPRjV3ZVRcbmZ4TmxmMGVMbTBmMWxMQk1NSDhVNXAwNFRQR2kyUnhaS294Rm1hZzFZeDRDcU9ETmdxY0t3M2pSVHJ2b3ltKzlcbmxHTWtGQUh3S0ZNY3pWS3doRUxnTHpiaXFnZlZ5dWdPSno3S01YWlM2bGNSSWtpU3JtZGlNeEVQODByYXUzcTRcbjc2RHVOeVB0Y1VpUElnWEJNMnR2WEdnM3ZoRmk2QUR2bDJBOFVBZmhXUWZVd0Y4aHNuKzBucnFPZHVxWkRJcEVcblV2UG1nc0NyWDlieTVUTzBWTEZ6c3IvN245Szk1RWJDSGNJY2dvN3BiUUtCZ1FETWdBRmRrdG80d1o0S3lrbTlcbmFFcjRHNzN6UDMwOTNDY1MyWllZeDN3NUNHbmpzVEM2SDZxOUhBQmJUU3g5RlVHOFNvRklGQ09LR1NXdjlLYmdcbjdSSk5DaTFxeTU0Nk82V1Bkb20reDVyb3NOVS9IOEYvTE82RXl1eG9TYjR3dVhnNTY3ODlKMDVadDlUeXQ2MXFcbkxvaXpVY050N3U2YThuWlFWc3VGdFVvWFd3S0JnUURGeGJ6YWtPSWFCMTVnTllIRTNPL1NobTBsdGJ2dTlibXhcbkJ3K3BrL2diQSt4dml0QzZrNGREL1V6YnJsRG44Z3ZMYnpnS0tsWmwvNXdMcmtQQ0U2QXdTTS9BYmVUOFFvT1RcbjJMa0txMll4OHlDUVp1TEQ5aDAxTVdXSzVEcWRyWjY5UGV3MHloUjZRRm5IQStIakVsNy9CY0VUOFRPMWowS25cbkorT3d4Q0Q1elFLQmdDODI0cG5USFBUN3B0eUE1ZE9JTDc3bTBNMUhmRWY2K3o1NzVBNm1pQVMyNzVPMVJqWENcbnQrM2ZlQ21jUU1oRVR5QUU1NkpYbS9qM1kxOGpraC9lUEZwekhoZEpHYWdDTzNCTEF2UjhLMFRNQndBQytlNjlcbjFmZnN6ZllxQ0hKQmNBT1hiVmpXS1YzSGRxL3ZQbWVFaE9VNTNIQVdPUnFuSGkvZ1NpNzlzelIvQW9HQkFMbEJcblFXY0c0aFI1cElqQWRqOCtxWkx0Z3A0WlB1Slc0TXNYank5TXdOSWxlYnIrTUFrbEdrYXdwZWI5d1NHVGxFTEtcbmVwYmpFNjFWb3drNkFwUndKOVF5MEJBem9KUS9oZHJlM201RklXUldsc0ZNN3N1YTViOG05elFFRjNnTjR5em5cbkxUUkJ1cTdOU290bWNwaHVZL2ZFbnhpY0R0RGFVaGdjQUdkYlFIeGRBb0dCQUtFenpvWDZTam9NOEc4S1JtRFlcbm55UEkxbXNucndGdlJjTnZwRjNMNVlEWnM3UGlHcmk3ajdDL2JaUHFnQ1ZzQU1BVDJNTUErTEx6ZElUODJXb1dcbkthSFZhUVRmZWVZaFI0R0lpeEVoMUhveldwNnpMU0taL20ycnN3TnN1WWdUam1FYUVOOFlkYVBkd1lEbllCaXpcblFkN0ZsZzIwakxIZXBqZ0JVazA3NGZYSVxuLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLVxuIiwKICAiY2xpZW50X2VtYWlsIjogInRlcnJhZm9ybUBsZWFybmVkLWlyaXMtMzU5NjE3LmlhbS5nc2VydmljZWFjY291bnQuY29tIiwKICAiY2xpZW50X2lkIjogIjExMzI1MzY4MzEyMTcwMzI2OTQ1NiIsCiAgImF1dGhfdXJpIjogImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi9hdXRoIiwKICAidG9rZW5fdXJpIjogImh0dHBzOi8vb2F1dGgyLmdvb2dsZWFwaXMuY29tL3Rva2VuIiwKICAiYXV0aF9wcm92aWRlcl94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92MS9jZXJ0cyIsCiAgImNsaWVudF94NTA5X2NlcnRfdXJsIjogImh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL3JvYm90L3YxL21ldGFkYXRhL3g1MDkvdGVycmFmb3JtJTQwbGVhcm5lZC1pcmlzLTM1OTYxNy5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsCiAgInVuaXZlcnNlX2RvbWFpbiI6ICJnb29nbGVhcGlzLmNvbSIKfQo=", + "private_key_type": "TYPE_GOOGLE_CREDENTIALS_FILE", + "public_key": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvRENDQWVTZ0F3SUJBZ0lJVmlWbXNhdnBXRzR3RFFZSktvWklodmNOQVFFRkJRQXdJREVlTUJ3R0ExVUUKQXd3Vk1URXpNalV6Tmpnek1USXhOekF6TWpZNU5EVTJNQ0FYRFRJMU1USXdOREV3TVRnME4xb1lEems1T1RreApNak14TWpNMU9UVTVXakFnTVI0d0hBWURWUVFEREJVeE1UTXlOVE0yT0RNeE1qRTNNRE15TmprME5UWXdnZ0VpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ2QvSFpxcU1KdnNyVmRPelFsMi94YUIzeFQKVGU0cjR3S3QzUEJMVHQzMWhTMFRJcFJpR3h2YWhId1ZTa2ZwQ1ZrSjdSL0s1Q1h5d3pkSjdVU0lqdktJNmhFQQp4RDY4Vzg0aEhMTGF5MTJoY09Pci9LVmVpYUh6alVBQzdUcmJBYlB3bk5sTWxuRGlIQmphZHJxVWFJUmZzVzE4CnE3OFB6bk5wKzRrY2tOYTVQbUNZdzVNTTk5SXBqOGlyeGVpMWJXNURVUEpabTVhVGpMdmNlSW41RjZ0QkUyaXQKTHVTQmtxbnF6SFNheGhJM2F0VW5KUlNOL0tVYnJOcW9sa0pjT3lXbDlvbVNJNFJZN2EzSVFaYTBsR3U3R29yMgoxdGwzQ3lPTXMvL2VmNlIzUmdkVlpXUkFJZDhqOXpjaENoZ2JuZW9SdXpCdDNYZ0ZOOUo4S2h2VWJEYmZBZ01CCkFBR2pPREEyTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CWUdBMVVkSlFFQi93UU0KTUFvR0NDc0dBUVVGQndNQ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQVNBdXIxNGNsZ2ZJUTE1QXlJRVQrMQpyZjFWRkpIM1doY2Jhd1k2STAxaTU2N3pQOTZyc0tvQWw2K3FnUm5DUEJ0YnJPL0h2K0RTWXA1VXlnMkJNZXpIClRNbkNTQVdsN0pIOHBvTVNjV3dIbmY4NFdDbnpLbEtsNDhSdExxMjVsT0FQZzBHZmF3MURRWFZIVUVtcWNQWUcKcHJpeVJ6cU5tNEVMUTZxbnZJcmlidFR3NlFxVE9kWnJWMUxLMUk1UGl4U0lGNGh0VnF0SDhGazN3eVBRUXgxQQpibXNlNGdhaXlvYmw1djVMMk5ZU3o2ODlZQzVKOWxiWkpsYlNHWDMzRWdQcUtJeXpST3ltalN6b0dsWk5UUUxWCjcrWS9yTm00YnFteTJQcFBvLzEvV3crbDF2eHhDeEgzL0dJa3hzbjRRajJtZDJ1OUx4NStzSVlrZzI4WlhkYVAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=", + "public_key_data": null, + "public_key_type": "TYPE_X509_PEM_FILE", + "service_account_id": "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com", + "valid_after": "2025-12-04T10:18:47Z", + "valid_before": "9999-12-31T23:59:59Z" + }, + "sensitive_attributes": [ + [ + { + "type": "get_attr", + "value": "private_key" + } + ] + ], + "identity_schema_version": 0, + "private": "bnVsbA==", + "dependencies": [ + "module.iam.google_service_account.service_account" + ] + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_firewall", + "name": "allow_backend_database", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "allow": [ + { + "ports": [ + "3306" + ], + "protocol": "tcp" + } + ], + "creation_timestamp": "2025-12-04T02:18:52.154-08:00", + "deny": [], + "description": "", + "destination_ranges": [], + "direction": "INGRESS", + "disabled": false, + "enable_logging": null, + "id": "projects/learned-iris-359617/global/firewalls/allow-backend-database", + "log_config": [], + "name": "allow-backend-database", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "priority": 1000, + "project": "learned-iris-359617", + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-backend-database", + "source_ranges": null, + "source_service_accounts": null, + "source_tags": [ + "backend" + ], + "target_service_accounts": null, + "target_tags": [ + "database" + ], + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform" + ] + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_firewall", + "name": "allow_frontend_backend", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "allow": [ + { + "ports": [ + "8000" + ], + "protocol": "tcp" + } + ], + "creation_timestamp": "2025-12-04T02:18:52.571-08:00", + "deny": [], + "description": "", + "destination_ranges": [], + "direction": "INGRESS", + "disabled": false, + "enable_logging": null, + "id": "projects/learned-iris-359617/global/firewalls/allow-frontend-backend", + "log_config": [], + "name": "allow-frontend-backend", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "priority": 1000, + "project": "learned-iris-359617", + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-frontend-backend", + "source_ranges": null, + "source_service_accounts": null, + "source_tags": [ + "frontend" + ], + "target_service_accounts": null, + "target_tags": [ + "backend" + ], + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform" + ] + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_firewall", + "name": "allow_ssh_all", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "allow": [ + { + "ports": [ + "22" + ], + "protocol": "tcp" + } + ], + "creation_timestamp": "2025-12-04T02:18:52.572-08:00", + "deny": [], + "description": "", + "destination_ranges": [], + "direction": "INGRESS", + "disabled": false, + "enable_logging": null, + "id": "projects/learned-iris-359617/global/firewalls/allow-ssh-all", + "log_config": [], + "name": "allow-ssh-all", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "priority": 1000, + "project": "learned-iris-359617", + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-ssh-all", + "source_ranges": [ + "0.0.0.0/0" + ], + "source_service_accounts": null, + "source_tags": null, + "target_service_accounts": null, + "target_tags": [ + "ssh" + ], + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform" + ] + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_firewall", + "name": "allow_user_frontend", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "allow": [ + { + "ports": [ + "80", + "443" + ], + "protocol": "tcp" + } + ], + "creation_timestamp": "2025-12-04T02:18:52.683-08:00", + "deny": [], + "description": "", + "destination_ranges": [], + "direction": "INGRESS", + "disabled": false, + "enable_logging": null, + "id": "projects/learned-iris-359617/global/firewalls/allow-user-frontend", + "log_config": [], + "name": "allow-user-frontend", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "priority": 1000, + "project": "learned-iris-359617", + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-user-frontend", + "source_ranges": [ + "0.0.0.0/0" + ], + "source_service_accounts": null, + "source_tags": null, + "target_service_accounts": null, + "target_tags": [ + "frontend" + ], + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH0sInNjaGVtYV92ZXJzaW9uIjoiMSJ9", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform" + ] + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_network", + "name": "vpc_terraform", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "auto_create_subnetworks": false, + "delete_default_routes_on_create": false, + "description": "", + "enable_ula_internal_ipv6": false, + "gateway_ipv4": "", + "id": "projects/learned-iris-359617/global/networks/vpc-terraform", + "internal_ipv6_range": "", + "mtu": 0, + "name": "vpc-terraform", + "network_firewall_policy_enforcement_order": "AFTER_CLASSIC_FIREWALL", + "numeric_id": "3957870700590326041", + "project": "learned-iris-359617", + "routing_mode": "REGIONAL", + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_subnetwork", + "name": "subnet_backend", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "creation_timestamp": "2025-12-04T02:18:52.438-08:00", + "description": "", + "external_ipv6_prefix": "", + "fingerprint": null, + "gateway_address": "10.0.2.1", + "id": "projects/learned-iris-359617/regions/europe-west9/subnetworks/backend", + "internal_ipv6_prefix": "", + "ip_cidr_range": "10.0.2.0/24", + "ipv6_access_type": "", + "ipv6_cidr_range": "", + "log_config": [], + "name": "backend", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "private_ip_google_access": false, + "private_ipv6_google_access": "DISABLE_GOOGLE_ACCESS", + "project": "learned-iris-359617", + "purpose": "PRIVATE", + "region": "europe-west9", + "reserved_internal_range": "", + "role": "", + "secondary_ip_range": [], + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/backend", + "send_secondary_ip_range_if_empty": null, + "stack_type": "IPV4_ONLY", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform" + ] + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_subnetwork", + "name": "subnet_database", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "creation_timestamp": "2025-12-04T02:18:52.541-08:00", + "description": "", + "external_ipv6_prefix": "", + "fingerprint": null, + "gateway_address": "10.0.3.1", + "id": "projects/learned-iris-359617/regions/europe-west9/subnetworks/database", + "internal_ipv6_prefix": "", + "ip_cidr_range": "10.0.3.0/24", + "ipv6_access_type": "", + "ipv6_cidr_range": "", + "log_config": [], + "name": "database", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "private_ip_google_access": false, + "private_ipv6_google_access": "DISABLE_GOOGLE_ACCESS", + "project": "learned-iris-359617", + "purpose": "PRIVATE", + "region": "europe-west9", + "reserved_internal_range": "", + "role": "", + "secondary_ip_range": [], + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/database", + "send_secondary_ip_range_if_empty": null, + "stack_type": "IPV4_ONLY", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform" + ] + } + ] + }, + { + "module": "module.network", + "mode": "managed", + "type": "google_compute_subnetwork", + "name": "subnet_frontend", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "creation_timestamp": "2025-12-04T02:18:52.462-08:00", + "description": "", + "external_ipv6_prefix": "", + "fingerprint": null, + "gateway_address": "10.0.1.1", + "id": "projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend", + "internal_ipv6_prefix": "", + "ip_cidr_range": "10.0.1.0/24", + "ipv6_access_type": "", + "ipv6_cidr_range": "", + "log_config": [], + "name": "frontend", + "network": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform", + "private_ip_google_access": false, + "private_ipv6_google_access": "DISABLE_GOOGLE_ACCESS", + "project": "learned-iris-359617", + "purpose": "PRIVATE", + "region": "europe-west9", + "reserved_internal_range": "", + "role": "", + "secondary_ip_range": [], + "self_link": "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend", + "send_secondary_ip_range_if_empty": null, + "stack_type": "IPV4_ONLY", + "timeouts": null + }, + "sensitive_attributes": [], + "identity_schema_version": 0, + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", + "dependencies": [ + "module.network.google_compute_network.vpc_terraform" + ] + } + ] + } + ], "check_results": null } diff --git a/terraform/environments/dev/terraform.tfstate.backup b/terraform/environments/dev/terraform.tfstate.backup index 82179b2..f5e311d 100644 --- a/terraform/environments/dev/terraform.tfstate.backup +++ b/terraform/environments/dev/terraform.tfstate.backup @@ -1,7 +1,7 @@ { "version": 4, "terraform_version": "1.14.1", - "serial": 7, + "serial": 12, "lineage": "7ef9decf-6c38-b2fc-8cc0-06d4c8d2121a", "outputs": { "instance_names": { diff --git a/terraform/environments/dev/variables.tf b/terraform/environments/dev/variables.tf index 26952d6..3ac8e93 100644 --- a/terraform/environments/dev/variables.tf +++ b/terraform/environments/dev/variables.tf @@ -43,12 +43,12 @@ variable "project_id" { variable "instance_type" { description = "type de l'instance" - type = string - default = "e2-small" + type = string + default = "e2-small" } variable "zone" { description = "Nom de la zone" - type = string - default = "europe-west9-b" + type = string + default = "europe-west9-b" } \ No newline at end of file diff --git a/terraform_show b/terraform_show new file mode 100644 index 0000000..64e5609 --- /dev/null +++ b/terraform_show @@ -0,0 +1,553 @@ +# module.compute.google_compute_instance.vm_backend: +resource "google_compute_instance" "vm_backend" { + can_ip_forward = false + cpu_platform = "Intel Broadwell" + creation_timestamp = "2025-12-04T02:19:14.335-08:00" + current_status = "RUNNING" + deletion_protection = false + description = null + effective_labels = { + "goog-terraform-provisioned" = "true" + } + enable_display = false + hostname = null + id = "projects/learned-iris-359617/zones/europe-west9-b/instances/vm-backend" + instance_id = "5542461964910649037" + key_revocation_action_type = null + label_fingerprint = "vezUS-42LLM=" + machine_type = "e2-small" + metadata = { + "enable-oslogin" = "TRUE" + } + metadata_fingerprint = "rYvC-XMAZmM=" + min_cpu_platform = null + name = "vm-backend" + project = "learned-iris-359617" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/instances/vm-backend" + tags = [ + "backend", + "ssh", + ] + tags_fingerprint = "N2bbCLFli_k=" + terraform_labels = { + "goog-terraform-provisioned" = "true" + } + zone = "europe-west9-b" + + boot_disk { + auto_delete = true + device_name = "persistent-disk-0" + disk_encryption_key_raw = (sensitive value) + disk_encryption_key_sha256 = null + interface = null + kms_key_self_link = null + mode = "READ_WRITE" + source = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/disks/vm-backend" + + initialize_params { + enable_confidential_compute = false + image = "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20251111" + labels = {} + provisioned_iops = 0 + provisioned_throughput = 0 + resource_policies = [] + size = 10 + storage_pool = null + type = "pd-standard" + } + } + + network_interface { + internal_ipv6_prefix_length = 0 + ipv6_access_type = null + ipv6_address = null + name = "nic0" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + network_ip = "10.0.2.2" + nic_type = null + queue_count = 0 + stack_type = "IPV4_ONLY" + subnetwork = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/backend" + subnetwork_project = "learned-iris-359617" + } + + scheduling { + automatic_restart = true + instance_termination_action = null + min_node_cpus = 0 + on_host_maintenance = "MIGRATE" + preemptible = false + provisioning_model = "STANDARD" + } + + shielded_instance_config { + enable_integrity_monitoring = true + enable_secure_boot = false + enable_vtpm = true + } +} + +# module.compute.google_compute_instance.vm_database: +resource "google_compute_instance" "vm_database" { + can_ip_forward = false + cpu_platform = "Intel Broadwell" + creation_timestamp = "2025-12-04T02:19:15.676-08:00" + current_status = "RUNNING" + deletion_protection = false + description = null + effective_labels = { + "goog-terraform-provisioned" = "true" + } + enable_display = false + hostname = null + id = "projects/learned-iris-359617/zones/europe-west9-b/instances/vm-database" + instance_id = "5740049418512293581" + key_revocation_action_type = null + label_fingerprint = "vezUS-42LLM=" + machine_type = "e2-small" + metadata = { + "enable-oslogin" = "TRUE" + } + metadata_fingerprint = "rYvC-XMAZmM=" + min_cpu_platform = null + name = "vm-database" + project = "learned-iris-359617" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/instances/vm-database" + tags = [ + "database", + "ssh", + ] + tags_fingerprint = "22sTRfPQYj4=" + terraform_labels = { + "goog-terraform-provisioned" = "true" + } + zone = "europe-west9-b" + + boot_disk { + auto_delete = true + device_name = "persistent-disk-0" + disk_encryption_key_raw = (sensitive value) + disk_encryption_key_sha256 = null + interface = null + kms_key_self_link = null + mode = "READ_WRITE" + source = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/disks/vm-database" + + initialize_params { + enable_confidential_compute = false + image = "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20251111" + labels = {} + provisioned_iops = 0 + provisioned_throughput = 0 + resource_policies = [] + size = 20 + storage_pool = null + type = "pd-standard" + } + } + + network_interface { + internal_ipv6_prefix_length = 0 + ipv6_access_type = null + ipv6_address = null + name = "nic0" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + network_ip = "10.0.3.2" + nic_type = null + queue_count = 0 + stack_type = "IPV4_ONLY" + subnetwork = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/database" + subnetwork_project = "learned-iris-359617" + } + + scheduling { + automatic_restart = true + instance_termination_action = null + min_node_cpus = 0 + on_host_maintenance = "MIGRATE" + preemptible = false + provisioning_model = "STANDARD" + } + + shielded_instance_config { + enable_integrity_monitoring = true + enable_secure_boot = false + enable_vtpm = true + } +} + +# module.compute.google_compute_instance.vm_frontend: +resource "google_compute_instance" "vm_frontend" { + can_ip_forward = false + cpu_platform = "Intel Broadwell" + creation_timestamp = "2025-12-04T02:19:14.943-08:00" + current_status = "RUNNING" + deletion_protection = false + description = null + effective_labels = { + "goog-terraform-provisioned" = "true" + } + enable_display = false + hostname = null + id = "projects/learned-iris-359617/zones/europe-west9-b/instances/vm-frontend" + instance_id = "4759259491480690381" + key_revocation_action_type = null + label_fingerprint = "vezUS-42LLM=" + machine_type = "e2-small" + metadata = { + "enable-oslogin" = "TRUE" + } + metadata_fingerprint = "rYvC-XMAZmM=" + min_cpu_platform = null + name = "vm-frontend" + project = "learned-iris-359617" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/instances/vm-frontend" + tags = [ + "frontend", + "ssh", + ] + tags_fingerprint = "sermMtqzdso=" + terraform_labels = { + "goog-terraform-provisioned" = "true" + } + zone = "europe-west9-b" + + boot_disk { + auto_delete = true + device_name = "persistent-disk-0" + disk_encryption_key_raw = (sensitive value) + disk_encryption_key_sha256 = null + interface = null + kms_key_self_link = null + mode = "READ_WRITE" + source = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/zones/europe-west9-b/disks/vm-frontend" + + initialize_params { + enable_confidential_compute = false + image = "https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-11-bullseye-v20251111" + labels = {} + provisioned_iops = 0 + provisioned_throughput = 0 + resource_policies = [] + size = 10 + storage_pool = null + type = "pd-standard" + } + } + + network_interface { + internal_ipv6_prefix_length = 0 + ipv6_access_type = null + ipv6_address = null + name = "nic0" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + network_ip = "10.0.1.2" + nic_type = null + queue_count = 0 + stack_type = "IPV4_ONLY" + subnetwork = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend" + subnetwork_project = "learned-iris-359617" + + access_config { + nat_ip = "34.155.14.126" + network_tier = "PREMIUM" + public_ptr_domain_name = null + } + } + + scheduling { + automatic_restart = true + instance_termination_action = null + min_node_cpus = 0 + on_host_maintenance = "MIGRATE" + preemptible = false + provisioning_model = "STANDARD" + } + + shielded_instance_config { + enable_integrity_monitoring = true + enable_secure_boot = false + enable_vtpm = true + } +} +# module.iam.data.google_client_openid_userinfo.me: +data "google_client_openid_userinfo" "me" { + email = "julian.gallego180105@gmail.com" + id = "julian.gallego180105@gmail.com" +} + +# module.iam.google_os_login_ssh_public_key.cache: +resource "google_os_login_ssh_public_key" "cache" { + expiration_time_usec = null + fingerprint = "759cb1178c9ee9fc58d6d3fb0fe01a97a2516fa89d439ed63786411a3fe60ef9" + id = "users/julian.gallego180105@gmail.com/sshPublicKeys/759cb1178c9ee9fc58d6d3fb0fe01a97a2516fa89d439ed63786411a3fe60ef9" + key = <<-EOT + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCwvtrSp4IaaEFQ3u9xcyKKlWpucIeZFyXguamjg3+MOwBZmHBptnNd1i/2hv4q+ezA1Jq1SEqZ4uNeKB9P76Q43Nv+pqYkPxm8lfueU/ZrEomjpseEZEHipHyD5WQd+idrbrHqqcISkIktyyFvSEbDELqfe4+IvvR1zvsHXA/onisJ6lCwoDKSXwFp/wWhuzEILpzE5EGXsX4E/lbieWradVLDbvF0QNDBlcYc1zfuYQ8BG4rKcvw7xwqr243UzPBKWndd63IqbNOBfi8V1jqj96mP6kddohxl+Caz5lsh66Pp97GDnSAn9jNk8HAI3Ws0K540PSII5AqgdRJEbuI1Y0saUP3p1uDkysosYSqJU/SAxux00E/2/rLfdvaf7czEwHECAvEcLdvmceOqHJrKh2pSgb5MZ1oq3E6jMvCAiJNT0n6i+iRalGarl46CY6rQakEq3d84pgt7lH1mN3ZstKWJocppFMZRaCPdwgtTwbBTDPJm8TZ85QbtfyZumZU= julian_gallego180105_gmail_com + EOT + project = "learned-iris-359617" + user = "julian.gallego180105@gmail.com" +} + +# module.iam.google_project_iam_binding.custom_service_account: +resource "google_project_iam_binding" "custom_service_account" { + etag = "BwZFHafOG5o=" + id = "learned-iris-359617/roles/viewer" + members = [ + "serviceAccount:terraform@learned-iris-359617.iam.gserviceaccount.com", + ] + project = "learned-iris-359617" + role = "roles/viewer" +} + +# module.iam.google_service_account.service_account: +resource "google_service_account" "service_account" { + account_id = "terraform" + description = null + disabled = false + display_name = "terraform" + email = "terraform@learned-iris-359617.iam.gserviceaccount.com" + id = "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com" + member = "serviceAccount:terraform@learned-iris-359617.iam.gserviceaccount.com" + name = "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com" + project = "learned-iris-359617" + unique_id = "113253683121703269456" +} + +# module.iam.google_service_account_key.mykey: +resource "google_service_account_key" "mykey" { + id = "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com/keys/824aa18407302402d658ed06e5b85964a9dbaa2d" + key_algorithm = "KEY_ALG_RSA_2048" + name = "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com/keys/824aa18407302402d658ed06e5b85964a9dbaa2d" + private_key = (sensitive value) + private_key_type = "TYPE_GOOGLE_CREDENTIALS_FILE" + public_key = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvRENDQWVTZ0F3SUJBZ0lJVmlWbXNhdnBXRzR3RFFZSktvWklodmNOQVFFRkJRQXdJREVlTUJ3R0ExVUUKQXd3Vk1URXpNalV6Tmpnek1USXhOekF6TWpZNU5EVTJNQ0FYRFRJMU1USXdOREV3TVRnME4xb1lEems1T1RreApNak14TWpNMU9UVTVXakFnTVI0d0hBWURWUVFEREJVeE1UTXlOVE0yT0RNeE1qRTNNRE15TmprME5UWXdnZ0VpCk1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQkR3QXdnZ0VLQW9JQkFRQ2QvSFpxcU1KdnNyVmRPelFsMi94YUIzeFQKVGU0cjR3S3QzUEJMVHQzMWhTMFRJcFJpR3h2YWhId1ZTa2ZwQ1ZrSjdSL0s1Q1h5d3pkSjdVU0lqdktJNmhFQQp4RDY4Vzg0aEhMTGF5MTJoY09Pci9LVmVpYUh6alVBQzdUcmJBYlB3bk5sTWxuRGlIQmphZHJxVWFJUmZzVzE4CnE3OFB6bk5wKzRrY2tOYTVQbUNZdzVNTTk5SXBqOGlyeGVpMWJXNURVUEpabTVhVGpMdmNlSW41RjZ0QkUyaXQKTHVTQmtxbnF6SFNheGhJM2F0VW5KUlNOL0tVYnJOcW9sa0pjT3lXbDlvbVNJNFJZN2EzSVFaYTBsR3U3R29yMgoxdGwzQ3lPTXMvL2VmNlIzUmdkVlpXUkFJZDhqOXpjaENoZ2JuZW9SdXpCdDNYZ0ZOOUo4S2h2VWJEYmZBZ01CCkFBR2pPREEyTUF3R0ExVWRFd0VCL3dRQ01BQXdEZ1lEVlIwUEFRSC9CQVFEQWdlQU1CWUdBMVVkSlFFQi93UU0KTUFvR0NDc0dBUVVGQndNQ01BMEdDU3FHU0liM0RRRUJCUVVBQTRJQkFRQVNBdXIxNGNsZ2ZJUTE1QXlJRVQrMQpyZjFWRkpIM1doY2Jhd1k2STAxaTU2N3pQOTZyc0tvQWw2K3FnUm5DUEJ0YnJPL0h2K0RTWXA1VXlnMkJNZXpIClRNbkNTQVdsN0pIOHBvTVNjV3dIbmY4NFdDbnpLbEtsNDhSdExxMjVsT0FQZzBHZmF3MURRWFZIVUVtcWNQWUcKcHJpeVJ6cU5tNEVMUTZxbnZJcmlidFR3NlFxVE9kWnJWMUxLMUk1UGl4U0lGNGh0VnF0SDhGazN3eVBRUXgxQQpibXNlNGdhaXlvYmw1djVMMk5ZU3o2ODlZQzVKOWxiWkpsYlNHWDMzRWdQcUtJeXpST3ltalN6b0dsWk5UUUxWCjcrWS9yTm00YnFteTJQcFBvLzEvV3crbDF2eHhDeEgzL0dJa3hzbjRRajJtZDJ1OUx4NStzSVlrZzI4WlhkYVAKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" + public_key_type = "TYPE_X509_PEM_FILE" + service_account_id = "projects/learned-iris-359617/serviceAccounts/terraform@learned-iris-359617.iam.gserviceaccount.com" + valid_after = "2025-12-04T10:18:47Z" + valid_before = "9999-12-31T23:59:59Z" +} +# module.network.google_compute_firewall.allow_backend_database: +resource "google_compute_firewall" "allow_backend_database" { + creation_timestamp = "2025-12-04T02:18:52.154-08:00" + description = null + destination_ranges = [] + direction = "INGRESS" + disabled = false + id = "projects/learned-iris-359617/global/firewalls/allow-backend-database" + name = "allow-backend-database" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + priority = 1000 + project = "learned-iris-359617" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-backend-database" + source_tags = [ + "backend", + ] + target_tags = [ + "database", + ] + + allow { + ports = [ + "3306", + ] + protocol = "tcp" + } +} + +# module.network.google_compute_firewall.allow_frontend_backend: +resource "google_compute_firewall" "allow_frontend_backend" { + creation_timestamp = "2025-12-04T02:18:52.571-08:00" + description = null + destination_ranges = [] + direction = "INGRESS" + disabled = false + id = "projects/learned-iris-359617/global/firewalls/allow-frontend-backend" + name = "allow-frontend-backend" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + priority = 1000 + project = "learned-iris-359617" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-frontend-backend" + source_tags = [ + "frontend", + ] + target_tags = [ + "backend", + ] + + allow { + ports = [ + "8000", + ] + protocol = "tcp" + } +} + +# module.network.google_compute_firewall.allow_ssh_all: +resource "google_compute_firewall" "allow_ssh_all" { + creation_timestamp = "2025-12-04T02:18:52.572-08:00" + description = null + destination_ranges = [] + direction = "INGRESS" + disabled = false + id = "projects/learned-iris-359617/global/firewalls/allow-ssh-all" + name = "allow-ssh-all" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + priority = 1000 + project = "learned-iris-359617" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-ssh-all" + source_ranges = [ + "0.0.0.0/0", + ] + target_tags = [ + "ssh", + ] + + allow { + ports = [ + "22", + ] + protocol = "tcp" + } +} + +# module.network.google_compute_firewall.allow_user_frontend: +resource "google_compute_firewall" "allow_user_frontend" { + creation_timestamp = "2025-12-04T02:18:52.683-08:00" + description = null + destination_ranges = [] + direction = "INGRESS" + disabled = false + id = "projects/learned-iris-359617/global/firewalls/allow-user-frontend" + name = "allow-user-frontend" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + priority = 1000 + project = "learned-iris-359617" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/firewalls/allow-user-frontend" + source_ranges = [ + "0.0.0.0/0", + ] + target_tags = [ + "frontend", + ] + + allow { + ports = [ + "80", + "443", + ] + protocol = "tcp" + } +} + +# module.network.google_compute_network.vpc_terraform: +resource "google_compute_network" "vpc_terraform" { + auto_create_subnetworks = false + delete_default_routes_on_create = false + description = null + enable_ula_internal_ipv6 = false + gateway_ipv4 = null + id = "projects/learned-iris-359617/global/networks/vpc-terraform" + internal_ipv6_range = null + mtu = 0 + name = "vpc-terraform" + network_firewall_policy_enforcement_order = "AFTER_CLASSIC_FIREWALL" + numeric_id = "3957870700590326041" + project = "learned-iris-359617" + routing_mode = "REGIONAL" + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" +} + +# module.network.google_compute_subnetwork.subnet_backend: +resource "google_compute_subnetwork" "subnet_backend" { + creation_timestamp = "2025-12-04T02:18:52.438-08:00" + description = null + external_ipv6_prefix = null + gateway_address = "10.0.2.1" + id = "projects/learned-iris-359617/regions/europe-west9/subnetworks/backend" + internal_ipv6_prefix = null + ip_cidr_range = "10.0.2.0/24" + ipv6_access_type = null + ipv6_cidr_range = null + name = "backend" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + private_ip_google_access = false + private_ipv6_google_access = "DISABLE_GOOGLE_ACCESS" + project = "learned-iris-359617" + purpose = "PRIVATE" + region = "europe-west9" + reserved_internal_range = null + role = null + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/backend" + stack_type = "IPV4_ONLY" +} + +# module.network.google_compute_subnetwork.subnet_database: +resource "google_compute_subnetwork" "subnet_database" { + creation_timestamp = "2025-12-04T02:18:52.541-08:00" + description = null + external_ipv6_prefix = null + gateway_address = "10.0.3.1" + id = "projects/learned-iris-359617/regions/europe-west9/subnetworks/database" + internal_ipv6_prefix = null + ip_cidr_range = "10.0.3.0/24" + ipv6_access_type = null + ipv6_cidr_range = null + name = "database" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + private_ip_google_access = false + private_ipv6_google_access = "DISABLE_GOOGLE_ACCESS" + project = "learned-iris-359617" + purpose = "PRIVATE" + region = "europe-west9" + reserved_internal_range = null + role = null + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/database" + stack_type = "IPV4_ONLY" +} + +# module.network.google_compute_subnetwork.subnet_frontend: +resource "google_compute_subnetwork" "subnet_frontend" { + creation_timestamp = "2025-12-04T02:18:52.462-08:00" + description = null + external_ipv6_prefix = null + gateway_address = "10.0.1.1" + id = "projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend" + internal_ipv6_prefix = null + ip_cidr_range = "10.0.1.0/24" + ipv6_access_type = null + ipv6_cidr_range = null + name = "frontend" + network = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/global/networks/vpc-terraform" + private_ip_google_access = false + private_ipv6_google_access = "DISABLE_GOOGLE_ACCESS" + project = "learned-iris-359617" + purpose = "PRIVATE" + region = "europe-west9" + reserved_internal_range = null + role = null + self_link = "https://www.googleapis.com/compute/v1/projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend" + stack_type = "IPV4_ONLY" +} + + +Outputs: + +ip_internes = { + backend = "10.0.2.2" + database = "10.0.3.2" + frontend = "10.0.1.2" +} +ip_public_frontend = "34.155.14.126" +nom_instances = { + backend = "vm-backend" + database = "vm-database" + frontend = "vm-frontend" +} +service_account_email = "terraform@learned-iris-359617.iam.gserviceaccount.com" +service_account_key = (sensitive value) +subnets = { + backend = "projects/learned-iris-359617/regions/europe-west9/subnetworks/backend" + database = "projects/learned-iris-359617/regions/europe-west9/subnetworks/database" + frontend = "projects/learned-iris-359617/regions/europe-west9/subnetworks/frontend" +} +vpc = "projects/learned-iris-359617/global/networks/vpc-terraform"