From bf3f2b93676d9749d92bc7eedbb27985b1c45e92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wiktor=20Niesiob=C4=99dzki?= Date: Thu, 20 Jun 2024 12:44:43 +0200 Subject: [PATCH] Add example, tests and fix for Google APIs PSC endpoint (#2369) Co-authored-by: Ludovico Magnocavallo --- modules/net-address/README.md | 19 ++++++++++ modules/net-address/psc.tf | 2 +- .../psc-service-attachment-all-apis.yaml | 38 +++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 tests/modules/net_address/examples/psc-service-attachment-all-apis.yaml diff --git a/modules/net-address/README.md b/modules/net-address/README.md index 5f53063368..f5d91d4e64 100644 --- a/modules/net-address/README.md +++ b/modules/net-address/README.md @@ -141,6 +141,25 @@ module "addresses" { # tftest modules=2 resources=3 fixtures=fixtures/cloudsql-instance.tf inventory=psc-service-attachment.yaml e2e ``` +Specify `vpc-sc` or `all-apis` in `psc_service_attachment_link` to targe Google APIs. +```hcl +module "addresses" { + source = "./fabric/modules/net-address" + project_id = var.project_id + psc_addresses = { + googleapis = { + address = "10.0.32.32" + network = var.vpc.self_link + service_attachment = { + psc_service_attachment_link = "all-apis" + } + } + } +} +# tftest modules=1 resources=2 inventory=psc-service-attachment-all-apis.yaml e2e +``` + + ### IPSec Interconnect addresses diff --git a/modules/net-address/psc.tf b/modules/net-address/psc.tf index 2fbf75788f..90d848f283 100644 --- a/modules/net-address/psc.tf +++ b/modules/net-address/psc.tf @@ -67,7 +67,7 @@ resource "google_compute_global_forwarding_rule" "psc_consumer" { for_each = { for name, psc in local.global_psc : name => psc if psc.service_attachment != null } name = coalesce(each.value.name, each.key) project = var.project_id - subnetwork = each.value.subnet_self_link + network = each.value.network ip_address = google_compute_global_address.psc[each.key].self_link load_balancing_scheme = "" target = each.value.service_attachment.psc_service_attachment_link diff --git a/tests/modules/net_address/examples/psc-service-attachment-all-apis.yaml b/tests/modules/net_address/examples/psc-service-attachment-all-apis.yaml new file mode 100644 index 0000000000..638c975086 --- /dev/null +++ b/tests/modules/net_address/examples/psc-service-attachment-all-apis.yaml @@ -0,0 +1,38 @@ +# Copyright 2024 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +values: + module.addresses.google_compute_global_address.psc["googleapis"]: + address: 10.0.32.32 + address_type: INTERNAL + description: Terraform managed. + name: googleapis + network: projects/xxx/global/networks/aaa + project: project-id + purpose: PRIVATE_SERVICE_CONNECT + module.addresses.google_compute_global_forwarding_rule.psc_consumer["googleapis"]: + load_balancing_scheme: '' + metadata_filters: [] + name: googleapis + network: projects/xxx/global/networks/aaa + port_range: null + project: project-id + source_ip_ranges: null + target: all-apis + +counts: + google_compute_global_address: 1 + google_compute_global_forwarding_rule: 1 + modules: 1 + resources: 2