From f7093a9d48e526a596778165783cc43a48a54857 Mon Sep 17 00:00:00 2001 From: Lin Lin Date: Wed, 29 Jul 2026 21:07:04 +0000 Subject: [PATCH 1/5] feat(networkservices): generate AgentConnectivityTemplate and add to Agent Gateway --- .../AgentConnectivityTemplate.yaml | 143 ++++++++++++++++++ .../networkservices/AgentGateway.yaml | 7 + ...s_agent_connectivity_template_name.go.tmpl | 20 +++ ..._agent_connectivity_template_basic.tf.tmpl | 14 ++ ...etwork_services_agent_gateway_full.tf.tmpl | 15 ++ 5 files changed, 199 insertions(+) create mode 100644 mmv1/products/networkservices/AgentConnectivityTemplate.yaml create mode 100644 mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl create mode 100644 mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl diff --git a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml new file mode 100644 index 000000000000..0de04b384d2a --- /dev/null +++ b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml @@ -0,0 +1,143 @@ +--- +name: AgentConnectivityTemplate +description: | + AgentConnectivityTemplate represents a reusable network configuration. +references: + guides: + api: https://cloud.google.com/network-services/docs/reference/network-services/rest/v1/projects.locations.agentConnectivityTemplates +docs: +base_url: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates +self_link: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates/{{name}} +create_url: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates?agentConnectivityTemplateId={{name}} +update_mask: true +update_verb: PATCH +import_format: + - projects/{{project}}/locations/{{location}}/agentConnectivityTemplates/{{name}} +timeouts: + insert_minutes: 30 + update_minutes: 30 + delete_minutes: 30 +async: + type: OpAsync + operation: + base_url: '{{op_id}}' + actions: [create, delete, update] + result: + resource_inside_response: true +autogen_async: true +samples: + - name: network_services_agent_connectivity_template_basic + primary_resource_id: default + steps: + - name: network_services_agent_connectivity_template_basic + resource_id_vars: + name: my-connectivity-template + test_env_vars: + project: PROJECT_NAME +parameters: + - name: name + type: String + description: | + Name of the AgentConnectivityTemplate resource. + required: true + ignore_read: true + custom_expand: templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl + - name: location + type: String + description: | + The location of the AgentConnectivityTemplate. + url_param_only: true + required: true +properties: + - name: createTime + type: Time + description: | + The timestamp when the resource was created. + output: true + - name: updateTime + type: Time + description: | + The timestamp when the resource was updated. + output: true + - name: labels + type: KeyValueLabels + description: | + Set of label tags associated with the AgentConnectivityTemplate resource. + - name: description + type: String + description: | + A free-text description of the resource. Max length 1024 characters. + - name: etag + type: Fingerprint + description: | + Etag of the resource. + If this is provided, it must match the server's etag. If the provided etag + does not match the server's etag, the request will fail with a 409 ABORTED + error. + - name: accessTypes + type: Array + description: | + The types of network access provided to the gateway. + Both PUBLIC and PRIVATE can be configured. + item_type: + type: Enum + enum_values: + - PUBLIC + - PRIVATE + - name: accessPath + type: Enum + required: true + immutable: true + description: | + The path of the access. + The path is immutable once set. Exactly one path can be set. + enum_values: + - CLIENT_TO_AGENT + - AGENT_TO_ANYWHERE + - name: egressNetworkConfig + type: NestedObject + description: | + Configuration for egress network traffic. + properties: + - name: networkAttachment + type: String + description: | + The network attachment resource name. + Format: projects/{project}/regions/{region}/networkAttachments/{network_attachment_id} + diff_suppress_func: tpgresource.CompareSelfLinkOrResourceName + - name: dnsPeeringConfig + type: NestedObject + description: | + DNS peering configuration for the AgentConnectivityTemplate. + When set, the gateway will resolve queries for the configured + `domains` via Cloud DNS in the specified `targetNetwork`. + properties: + - name: domains + type: Array + required: true + description: | + The list of domain names to peer for DNS resolution. Each entry + must be a fully qualified domain name ending with a dot + (for example, `example.com.`). + item_type: + type: String + - name: targetProject + type: String + required: true + description: | + The ID of the project that hosts the target VPC network for DNS + peering. + - name: targetNetwork + type: String + required: true + diff_suppress_func: tpgresource.CompareSelfLinkOrResourceName + description: | + The URI of the target VPC network for DNS peering. Must be of the + form `projects/{project}/global/networks/{network}`. + - name: vpcEgress + type: Enum + description: | + The VPC egress setting. + enum_values: + - ALL_TRAFFIC + - PRIVATE_RANGES_ONLY diff --git a/mmv1/products/networkservices/AgentGateway.yaml b/mmv1/products/networkservices/AgentGateway.yaml index c9de04be12af..b76c7c1171a2 100644 --- a/mmv1/products/networkservices/AgentGateway.yaml +++ b/mmv1/products/networkservices/AgentGateway.yaml @@ -162,6 +162,13 @@ properties: `//agentregistry.googleapis.com/{version}/projects/{{project}}/locations/{{location}}` item_type: type: String + - name: agentConnectivityTemplate + type: String + diff_suppress_func: tpgresource.ProjectNumberDiffSuppress + description: | + The resource name of the AgentConnectivityTemplate. + Must be of format + `projects/{{project}}/locations/{{location}}/agentConnectivityTemplates/{{agent_connectivity_template}}` - name: networkConfig type: NestedObject description: | diff --git a/mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl b/mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl new file mode 100644 index 000000000000..ab02b767fe19 --- /dev/null +++ b/mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl @@ -0,0 +1,20 @@ +func expandNetworkServicesAgentConnectivityTemplateName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { + if v == nil { + return nil, nil + } + + project, err := tpgresource.GetProject(d, config) + if err != nil { + return nil, err + } + + location := d.Get("location").(string) + name := v.(string) + + // If name is already a full resource name, return it as-is. + if strings.HasPrefix(name, "projects/") { + return name, nil + } + + return fmt.Sprintf("projects/%s/locations/%s/agentConnectivityTemplates/%s", project, location, name), nil +} diff --git a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl new file mode 100644 index 000000000000..c5c4ff6a280a --- /dev/null +++ b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl @@ -0,0 +1,14 @@ +data "google_project" "project" {} + +resource "google_network_services_agent_connectivity_template" "{{$.PrimaryResourceId}}" { + name = "{{index $.ResourceIdVars "name"}}" + location = "us-central1" + description = "A basic configuration for Agent Connectivity Template" + labels = { + env = "test" + tier = "gold" + } + + access_types = ["PUBLIC"] + access_path = "AGENT_TO_ANYWHERE" +} diff --git a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl index f0461997c139..0a1e746441ae 100644 --- a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl +++ b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl @@ -14,6 +14,8 @@ resource "google_network_services_agent_gateway" "{{$.PrimaryResourceId}}" { governed_access_path = "AGENT_TO_ANYWHERE" } + agent_connectivity_template = google_network_services_agent_connectivity_template.default.id + registries = [ "//agentregistry.googleapis.com/projects/{{index $.TestEnvVars "project"}}/locations/us-central1" ] @@ -38,6 +40,19 @@ resource "google_project_service" "agent_registry" { disable_on_destroy = false } +resource "google_network_services_agent_connectivity_template" "default" { + name = "{{index $.ResourceIdVars "name"}}-template" + location = "us-central1" + description = "A basic configuration for Agent Connectivity Template" + labels = { + env = "test" + tier = "gold" + } + + access_types = ["PUBLIC"] + access_path = "AGENT_TO_ANYWHERE" +} + resource "google_compute_network" "default" { name = "{{index $.ResourceIdVars "network_name"}}" auto_create_subnetworks = false From b1613a6a47c4e478703fe8223c6236227d02cd8b Mon Sep 17 00:00:00 2001 From: Lin Lin Date: Thu, 30 Jul 2026 01:47:00 +0000 Subject: [PATCH 2/5] fix(networkservices): address PR review feedback for Agent Connectivity Template --- .../AgentConnectivityTemplate.yaml | 28 +++++++++++++------ ...s_agent_connectivity_template_name.go.tmpl | 20 ------------- ..._agent_connectivity_template_basic.tf.tmpl | 6 ++-- ...connectivity_template_basic_update.tf.tmpl | 15 ++++++++++ ...etwork_services_agent_gateway_full.tf.tmpl | 2 +- 5 files changed, 38 insertions(+), 33 deletions(-) delete mode 100644 mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl create mode 100644 mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic_update.tf.tmpl diff --git a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml index 0de04b384d2a..d8c560661ea5 100644 --- a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml +++ b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml @@ -7,12 +7,12 @@ references: api: https://cloud.google.com/network-services/docs/reference/network-services/rest/v1/projects.locations.agentConnectivityTemplates docs: base_url: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates -self_link: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates/{{name}} -create_url: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates?agentConnectivityTemplateId={{name}} +self_link: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates/{{agent_connectivity_template_id}} +create_url: projects/{{project}}/locations/{{location}}/agentConnectivityTemplates?agentConnectivityTemplateId={{agent_connectivity_template_id}} update_mask: true update_verb: PATCH import_format: - - projects/{{project}}/locations/{{location}}/agentConnectivityTemplates/{{name}} + - projects/{{project}}/locations/{{location}}/agentConnectivityTemplates/{{agent_connectivity_template_id}} timeouts: insert_minutes: 30 update_minutes: 30 @@ -31,17 +31,22 @@ samples: steps: - name: network_services_agent_connectivity_template_basic resource_id_vars: - name: my-connectivity-template + agent_connectivity_template_id: my-connectivity-template + test_env_vars: + project: PROJECT_NAME + - name: network_services_agent_connectivity_template_basic_update + resource_id_vars: + agent_connectivity_template_id: my-connectivity-template test_env_vars: project: PROJECT_NAME parameters: - - name: name + - name: agentConnectivityTemplateId type: String description: | - Name of the AgentConnectivityTemplate resource. + Short name of the AgentConnectivityTemplate resource. required: true - ignore_read: true - custom_expand: templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl + url_param_only: true + immutable: true - name: location type: String description: | @@ -49,6 +54,11 @@ parameters: url_param_only: true required: true properties: + - name: name + type: String + description: | + Identifier. Name of the resource. + output: true - name: createTime type: Time description: | @@ -89,7 +99,7 @@ properties: required: true immutable: true description: | - The path of the access. + The path of the access. The path is immutable once set. Exactly one path can be set. enum_values: - CLIENT_TO_AGENT diff --git a/mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl b/mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl deleted file mode 100644 index ab02b767fe19..000000000000 --- a/mmv1/templates/terraform/custom_expand/network_services_agent_connectivity_template_name.go.tmpl +++ /dev/null @@ -1,20 +0,0 @@ -func expandNetworkServicesAgentConnectivityTemplateName(v interface{}, d tpgresource.TerraformResourceData, config *transport_tpg.Config) (interface{}, error) { - if v == nil { - return nil, nil - } - - project, err := tpgresource.GetProject(d, config) - if err != nil { - return nil, err - } - - location := d.Get("location").(string) - name := v.(string) - - // If name is already a full resource name, return it as-is. - if strings.HasPrefix(name, "projects/") { - return name, nil - } - - return fmt.Sprintf("projects/%s/locations/%s/agentConnectivityTemplates/%s", project, location, name), nil -} diff --git a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl index c5c4ff6a280a..cdee4377c853 100644 --- a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl +++ b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic.tf.tmpl @@ -1,9 +1,9 @@ data "google_project" "project" {} resource "google_network_services_agent_connectivity_template" "{{$.PrimaryResourceId}}" { - name = "{{index $.ResourceIdVars "name"}}" - location = "us-central1" - description = "A basic configuration for Agent Connectivity Template" + agent_connectivity_template_id = "{{index $.ResourceIdVars "agent_connectivity_template_id"}}" + location = "us-central1" + description = "A basic configuration for Agent Connectivity Template" labels = { env = "test" tier = "gold" diff --git a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic_update.tf.tmpl b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic_update.tf.tmpl new file mode 100644 index 000000000000..42046082457c --- /dev/null +++ b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_basic_update.tf.tmpl @@ -0,0 +1,15 @@ +data "google_project" "project" {} + +resource "google_network_services_agent_connectivity_template" "{{$.PrimaryResourceId}}" { + agent_connectivity_template_id = "{{index $.ResourceIdVars "agent_connectivity_template_id"}}" + location = "us-central1" + description = "An updated configuration for Agent Connectivity Template" + labels = { + env = "prod" + tier = "platinum" + new_label = "added" + } + + access_types = ["PUBLIC"] + access_path = "AGENT_TO_ANYWHERE" +} diff --git a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl index 0a1e746441ae..3fc7feef4712 100644 --- a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl +++ b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_gateway_full.tf.tmpl @@ -41,7 +41,7 @@ resource "google_project_service" "agent_registry" { } resource "google_network_services_agent_connectivity_template" "default" { - name = "{{index $.ResourceIdVars "name"}}-template" + agent_connectivity_template_id = "{{index $.ResourceIdVars "name"}}-template" location = "us-central1" description = "A basic configuration for Agent Connectivity Template" labels = { From 23706160d7c28d1055fc8d1d976f0460a9a31283 Mon Sep 17 00:00:00 2001 From: Lin Lin Date: Thu, 30 Jul 2026 18:09:50 +0000 Subject: [PATCH 3/5] Fix lint and missing service label - Removed trailing whitespace in AgentConnectivityTemplate.yaml - Added google_network_services_agent_connectivity_template to enrolled_teams.yml --- mmv1/products/networkservices/AgentConnectivityTemplate.yaml | 2 +- tools/issue-labeler/labeler/enrolled_teams.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml index d8c560661ea5..fca3cfc3eaf0 100644 --- a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml +++ b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml @@ -99,7 +99,7 @@ properties: required: true immutable: true description: | - The path of the access. + The path of the access. The path is immutable once set. Exactly one path can be set. enum_values: - CLIENT_TO_AGENT diff --git a/tools/issue-labeler/labeler/enrolled_teams.yml b/tools/issue-labeler/labeler/enrolled_teams.yml index 59e0b386b2d6..164df659c8f8 100755 --- a/tools/issue-labeler/labeler/enrolled_teams.yml +++ b/tools/issue-labeler/labeler/enrolled_teams.yml @@ -669,6 +669,7 @@ service/networksecurity-swp: service/networkservices-agent-gateway: resources: - google_network_services_agent_gateway + - google_network_services_agent_connectivity_template service/networkservices-media-cdn: resources: - google_network_services_edge_cache_.* From 459361b6ea8528893973c3447177f8b8043f222a Mon Sep 17 00:00:00 2001 From: Lin Lin Date: Thu, 30 Jul 2026 18:12:24 +0000 Subject: [PATCH 4/5] Add acceptance test for egress network config - Created network_services_agent_connectivity_template_advanced sample - Handled dns_peering_config, network_attachment, and vpc_egress --- .../AgentConnectivityTemplate.yaml | 11 ++++++ ...ent_connectivity_template_advanced.tf.tmpl | 39 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced.tf.tmpl diff --git a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml index fca3cfc3eaf0..d7eee95baf80 100644 --- a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml +++ b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml @@ -39,6 +39,17 @@ samples: agent_connectivity_template_id: my-connectivity-template test_env_vars: project: PROJECT_NAME + - name: network_services_agent_connectivity_template_advanced + primary_resource_id: default + steps: + - name: network_services_agent_connectivity_template_advanced + resource_id_vars: + agent_connectivity_template_id: my-connectivity-template + network_name: my-network + subnetwork_name: my-subnetwork + network_attachment_name: my-attachment + test_env_vars: + project: PROJECT_NAME parameters: - name: agentConnectivityTemplateId type: String diff --git a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced.tf.tmpl b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced.tf.tmpl new file mode 100644 index 000000000000..c694247555d1 --- /dev/null +++ b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced.tf.tmpl @@ -0,0 +1,39 @@ +data "google_project" "project" {} + +resource "google_compute_network" "default" { + name = "{{index $.ResourceIdVars "network_name"}}" + auto_create_subnetworks = false +} + +resource "google_compute_subnetwork" "default" { + name = "{{index $.ResourceIdVars "subnetwork_name"}}" + region = "us-central1" + network = google_compute_network.default.id + ip_cidr_range = "10.0.0.0/16" +} + +resource "google_compute_network_attachment" "default" { + name = "{{index $.ResourceIdVars "network_attachment_name"}}" + region = "us-central1" + connection_preference = "ACCEPT_AUTOMATIC" + subnetworks = [google_compute_subnetwork.default.id] +} + +resource "google_network_services_agent_connectivity_template" "{{$.PrimaryResourceId}}" { + agent_connectivity_template_id = "{{index $.ResourceIdVars "agent_connectivity_template_id"}}" + location = "us-central1" + description = "An advanced configuration for Agent Connectivity Template" + + access_types = ["PRIVATE"] + access_path = "AGENT_TO_ANYWHERE" + + egress_network_config { + vpc_egress = "ALL_TRAFFIC" + network_attachment = google_compute_network_attachment.default.id + dns_peering_config { + domains = ["example.com."] + target_network = google_compute_network.default.id + target_project = data.google_project.project.project_id + } + } +} From 88bc68abe64279627bb71ea6be8971e43ccb757a Mon Sep 17 00:00:00 2001 From: Lin Lin Date: Thu, 30 Jul 2026 18:14:32 +0000 Subject: [PATCH 5/5] Add advanced update test for Agent Connectivity Template - Added network_services_agent_connectivity_template_advanced_update.tf.tmpl to test update workflows for egress_network_config --- .../AgentConnectivityTemplate.yaml | 8 ++++ ...nectivity_template_advanced_update.tf.tmpl | 43 +++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced_update.tf.tmpl diff --git a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml index d7eee95baf80..4f34cadd8f83 100644 --- a/mmv1/products/networkservices/AgentConnectivityTemplate.yaml +++ b/mmv1/products/networkservices/AgentConnectivityTemplate.yaml @@ -50,6 +50,14 @@ samples: network_attachment_name: my-attachment test_env_vars: project: PROJECT_NAME + - name: network_services_agent_connectivity_template_advanced_update + resource_id_vars: + agent_connectivity_template_id: my-connectivity-template + network_name: my-network + subnetwork_name: my-subnetwork + network_attachment_name: my-attachment + test_env_vars: + project: PROJECT_NAME parameters: - name: agentConnectivityTemplateId type: String diff --git a/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced_update.tf.tmpl b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced_update.tf.tmpl new file mode 100644 index 000000000000..f1ec0eb6b94a --- /dev/null +++ b/mmv1/templates/terraform/samples/services/networkservices/network_services_agent_connectivity_template_advanced_update.tf.tmpl @@ -0,0 +1,43 @@ +data "google_project" "project" {} + +resource "google_compute_network" "default" { + name = "{{index $.ResourceIdVars "network_name"}}" + auto_create_subnetworks = false +} + +resource "google_compute_subnetwork" "default" { + name = "{{index $.ResourceIdVars "subnetwork_name"}}" + region = "us-central1" + network = google_compute_network.default.id + ip_cidr_range = "10.0.0.0/16" +} + +resource "google_compute_network_attachment" "default" { + name = "{{index $.ResourceIdVars "network_attachment_name"}}" + region = "us-central1" + connection_preference = "ACCEPT_AUTOMATIC" + subnetworks = [google_compute_subnetwork.default.id] +} + +resource "google_network_services_agent_connectivity_template" "{{$.PrimaryResourceId}}" { + agent_connectivity_template_id = "{{index $.ResourceIdVars "agent_connectivity_template_id"}}" + location = "us-central1" + description = "An updated advanced configuration for Agent Connectivity Template" + + access_types = ["PRIVATE"] + access_path = "AGENT_TO_ANYWHERE" + + labels = { + env = "prod" + } + + egress_network_config { + vpc_egress = "PRIVATE_RANGES_ONLY" + network_attachment = google_compute_network_attachment.default.id + dns_peering_config { + domains = ["example.com.", "example.net."] + target_network = google_compute_network.default.id + target_project = data.google_project.project.project_id + } + } +}