pulumi-gcp 7.24.0a1716588893__py3-none-any.whl → 7.25.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pulumi_gcp/__init__.py +88 -0
- pulumi_gcp/accesscontextmanager/service_perimeter_egress_policy.py +0 -64
- pulumi_gcp/accesscontextmanager/service_perimeter_ingress_policy.py +0 -70
- pulumi_gcp/alloydb/backup.py +50 -42
- pulumi_gcp/alloydb/cluster.py +56 -48
- pulumi_gcp/alloydb/instance.py +50 -42
- pulumi_gcp/alloydb/user.py +32 -24
- pulumi_gcp/apigateway/api_config.py +0 -114
- pulumi_gcp/apigateway/gateway.py +0 -44
- pulumi_gcp/apigee/addons_config.py +14 -4
- pulumi_gcp/apigee/endpoint_attachment.py +4 -2
- pulumi_gcp/apigee/env_group.py +4 -2
- pulumi_gcp/apigee/environment.py +4 -2
- pulumi_gcp/apigee/instance.py +22 -8
- pulumi_gcp/apigee/keystores_aliases_self_signed_cert.py +26 -10
- pulumi_gcp/apigee/nat_address.py +10 -2
- pulumi_gcp/apigee/organization.py +18 -6
- pulumi_gcp/apigee/sync_authorization.py +8 -4
- pulumi_gcp/apigee/target_server.py +26 -10
- pulumi_gcp/appengine/_inputs.py +18 -0
- pulumi_gcp/appengine/domain_mapping.py +1 -1
- pulumi_gcp/appengine/outputs.py +16 -0
- pulumi_gcp/apphub/service.py +40 -20
- pulumi_gcp/apphub/service_project_attachment.py +16 -8
- pulumi_gcp/apphub/workload.py +0 -418
- pulumi_gcp/applicationintegration/auth_config.py +4 -2
- pulumi_gcp/artifactregistry/repository.py +14 -12
- pulumi_gcp/backupdisasterrecovery/management_server.py +4 -2
- pulumi_gcp/bigquery/_inputs.py +286 -2
- pulumi_gcp/bigquery/data_transfer_config.py +8 -4
- pulumi_gcp/bigquery/job.py +22 -16
- pulumi_gcp/bigquery/outputs.py +289 -2
- pulumi_gcp/bigquery/table.py +77 -35
- pulumi_gcp/certificateauthority/authority.py +10 -2
- pulumi_gcp/certificateauthority/certificate.py +8 -4
- pulumi_gcp/certificatemanager/certificate.py +84 -80
- pulumi_gcp/certificatemanager/certificate_issuance_config.py +32 -30
- pulumi_gcp/cloudbuild/bitbucket_server_config.py +12 -6
- pulumi_gcp/cloudbuild/trigger.py +22 -14
- pulumi_gcp/cloudbuild/worker_pool.py +12 -6
- pulumi_gcp/cloudbuildv2/connection.py +10 -2
- pulumi_gcp/cloudbuildv2/repository.py +10 -2
- pulumi_gcp/cloudfunctionsv2/function.py +110 -66
- pulumi_gcp/cloudids/endpoint.py +4 -2
- pulumi_gcp/cloudrun/_inputs.py +80 -4
- pulumi_gcp/cloudrun/outputs.py +137 -4
- pulumi_gcp/cloudrunv2/job.py +32 -20
- pulumi_gcp/cloudrunv2/service.py +28 -20
- pulumi_gcp/composer/user_workloads_secret.py +4 -4
- pulumi_gcp/compute/__init__.py +1 -0
- pulumi_gcp/compute/_inputs.py +398 -176
- pulumi_gcp/compute/forwarding_rule.py +225 -817
- pulumi_gcp/compute/get_subnetworks.py +157 -0
- pulumi_gcp/compute/global_forwarding_rule.py +0 -766
- pulumi_gcp/compute/instance_group.py +0 -100
- pulumi_gcp/compute/instance_group_membership.py +2 -2
- pulumi_gcp/compute/interconnect_attachment.py +82 -0
- pulumi_gcp/compute/network_endpoint.py +2 -2
- pulumi_gcp/compute/network_endpoint_list.py +2 -2
- pulumi_gcp/compute/outputs.py +609 -161
- pulumi_gcp/compute/packet_mirroring.py +4 -2
- pulumi_gcp/compute/region_security_policy_rule.py +4 -2
- pulumi_gcp/compute/region_ssl_certificate.py +0 -188
- pulumi_gcp/compute/region_ssl_policy.py +39 -40
- pulumi_gcp/compute/route.py +10 -2
- pulumi_gcp/compute/security_policy_rule.py +55 -1
- pulumi_gcp/compute/ssl_certificate.py +0 -166
- pulumi_gcp/compute/target_instance.py +4 -2
- pulumi_gcp/compute/vpn_gateway.py +12 -2
- pulumi_gcp/compute/vpn_tunnel.py +26 -16
- pulumi_gcp/container/_inputs.py +560 -0
- pulumi_gcp/container/outputs.py +1106 -51
- pulumi_gcp/databasemigrationservice/connection_profile.py +32 -16
- pulumi_gcp/datacatalog/policy_tag.py +4 -2
- pulumi_gcp/datafusion/instance.py +14 -12
- pulumi_gcp/dataplex/__init__.py +10 -0
- pulumi_gcp/dataplex/_inputs.py +160 -0
- pulumi_gcp/dataplex/aspect_type.py +1077 -0
- pulumi_gcp/dataplex/aspect_type_iam_binding.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_member.py +765 -0
- pulumi_gcp/dataplex/aspect_type_iam_policy.py +604 -0
- pulumi_gcp/dataplex/asset.py +4 -2
- pulumi_gcp/dataplex/datascan.py +16 -14
- pulumi_gcp/dataplex/entry_group.py +722 -0
- pulumi_gcp/dataplex/entry_group_iam_binding.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_member.py +765 -0
- pulumi_gcp/dataplex/entry_group_iam_policy.py +604 -0
- pulumi_gcp/dataplex/get_aspect_type_iam_policy.py +164 -0
- pulumi_gcp/dataplex/get_entry_group_iam_policy.py +164 -0
- pulumi_gcp/dataplex/outputs.py +112 -0
- pulumi_gcp/datastore/data_store_index.py +4 -2
- pulumi_gcp/datastream/connection_profile.py +47 -0
- pulumi_gcp/datastream/private_connection.py +47 -0
- pulumi_gcp/datastream/stream.py +63 -10
- pulumi_gcp/diagflow/cx_test_case.py +4 -4
- pulumi_gcp/diagflow/entity_type.py +4 -2
- pulumi_gcp/diagflow/fulfillment.py +4 -2
- pulumi_gcp/diagflow/intent.py +8 -4
- pulumi_gcp/dns/get_managed_zone.py +3 -3
- pulumi_gcp/dns/managed_zone.py +7 -7
- pulumi_gcp/dns/outputs.py +2 -2
- pulumi_gcp/edgecontainer/node_pool.py +4 -2
- pulumi_gcp/edgecontainer/vpn_connection.py +4 -2
- pulumi_gcp/eventarc/channel.py +4 -2
- pulumi_gcp/eventarc/google_channel_config.py +4 -2
- pulumi_gcp/firebase/app_check_app_attest_config.py +16 -8
- pulumi_gcp/firebase/app_check_debug_token.py +8 -4
- pulumi_gcp/firebase/app_check_device_check_config.py +8 -4
- pulumi_gcp/firebase/app_check_play_integrity_config.py +16 -8
- pulumi_gcp/firebase/app_check_recaptcha_enterprise_config.py +8 -4
- pulumi_gcp/firebase/app_check_recaptcha_v3_config.py +8 -4
- pulumi_gcp/firebase/app_check_service_config.py +12 -6
- pulumi_gcp/firebase/database_instance.py +4 -2
- pulumi_gcp/firebaserules/release.py +0 -98
- pulumi_gcp/firestore/database.py +24 -20
- pulumi_gcp/firestore/document.py +24 -12
- pulumi_gcp/folder/access_approval_settings.py +4 -2
- pulumi_gcp/gkehub/membership_binding.py +14 -4
- pulumi_gcp/gkehub/membership_rbac_role_binding.py +8 -4
- pulumi_gcp/gkehub/namespace.py +4 -2
- pulumi_gcp/gkehub/scope_rbac_role_binding.py +4 -2
- pulumi_gcp/integrationconnectors/connection.py +4 -2
- pulumi_gcp/integrationconnectors/managed_zone.py +18 -6
- pulumi_gcp/kms/__init__.py +2 -0
- pulumi_gcp/kms/autokey_config.py +366 -0
- pulumi_gcp/kms/key_handle.py +548 -0
- pulumi_gcp/logging/folder_settings.py +12 -10
- pulumi_gcp/logging/linked_dataset.py +4 -2
- pulumi_gcp/logging/organization_settings.py +12 -10
- pulumi_gcp/logging/project_bucket_config.py +4 -2
- pulumi_gcp/looker/instance.py +12 -10
- pulumi_gcp/netapp/volume_replication.py +4 -2
- pulumi_gcp/netapp/volume_snapshot.py +4 -2
- pulumi_gcp/networkconnectivity/internal_range.py +14 -12
- pulumi_gcp/networksecurity/gateway_security_policy.py +16 -4
- pulumi_gcp/networksecurity/tls_inspection_policy.py +22 -4
- pulumi_gcp/networkservices/__init__.py +1 -0
- pulumi_gcp/networkservices/_inputs.py +245 -27
- pulumi_gcp/networkservices/gateway.py +12 -6
- pulumi_gcp/networkservices/lb_route_extension.py +663 -0
- pulumi_gcp/networkservices/lb_traffic_extension.py +28 -540
- pulumi_gcp/networkservices/outputs.py +251 -20
- pulumi_gcp/organizations/access_approval_settings.py +4 -2
- pulumi_gcp/orgpolicy/policy.py +2 -2
- pulumi_gcp/parallelstore/instance.py +20 -18
- pulumi_gcp/projects/access_approval_settings.py +4 -2
- pulumi_gcp/pubsub/_inputs.py +16 -0
- pulumi_gcp/pubsub/outputs.py +25 -0
- pulumi_gcp/pubsub/schema.py +4 -2
- pulumi_gcp/pubsub/subscription.py +102 -66
- pulumi_gcp/pubsub/topic.py +4 -2
- pulumi_gcp/pulumi-plugin.json +1 -1
- pulumi_gcp/redis/cluster.py +30 -28
- pulumi_gcp/redis/instance.py +4 -2
- pulumi_gcp/secretmanager/secret.py +4 -2
- pulumi_gcp/securesourcemanager/instance.py +20 -8
- pulumi_gcp/securitycenter/instance_iam_binding.py +14 -12
- pulumi_gcp/securitycenter/instance_iam_member.py +14 -12
- pulumi_gcp/securitycenter/instance_iam_policy.py +14 -12
- pulumi_gcp/serviceaccount/key.py +2 -2
- pulumi_gcp/sql/database_instance.py +4 -2
- pulumi_gcp/sql/user.py +4 -4
- pulumi_gcp/storage/get_project_service_account.py +4 -2
- pulumi_gcp/storage/insights_report_config.py +12 -10
- pulumi_gcp/storage/notification.py +18 -16
- pulumi_gcp/storage/transfer_agent_pool.py +4 -2
- pulumi_gcp/storage/transfer_job.py +14 -4
- pulumi_gcp/tpu/_inputs.py +2 -2
- pulumi_gcp/tpu/outputs.py +2 -2
- pulumi_gcp/tpu/v2_vm.py +10 -6
- pulumi_gcp/vertex/ai_endpoint.py +24 -22
- pulumi_gcp/vertex/ai_index_endpoint.py +20 -18
- pulumi_gcp/vertex/ai_tensorboard.py +14 -12
- pulumi_gcp/vmwareengine/external_address.py +4 -2
- pulumi_gcp/vmwareengine/network.py +8 -4
- {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/METADATA +1 -1
- {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/RECORD +179 -165
- {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/WHEEL +0 -0
- {pulumi_gcp-7.24.0a1716588893.dist-info → pulumi_gcp-7.25.0.dist-info}/top_level.txt +0 -0
@@ -39,8 +39,10 @@ class LbTrafficExtensionArgs:
|
|
39
39
|
manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
|
40
40
|
present on the resource.
|
41
41
|
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
|
42
|
-
more information, refer to Choosing a load balancer.
|
43
|
-
|
42
|
+
more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
|
43
|
+
[Supported application load
|
44
|
+
balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
|
45
|
+
["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
|
44
46
|
:param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
|
45
47
|
"""
|
46
48
|
pulumi.set(__self__, "extension_chains", extension_chains)
|
@@ -129,8 +131,10 @@ class LbTrafficExtensionArgs:
|
|
129
131
|
def load_balancing_scheme(self) -> Optional[pulumi.Input[str]]:
|
130
132
|
"""
|
131
133
|
All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
|
132
|
-
more information, refer to Choosing a load balancer.
|
133
|
-
|
134
|
+
more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
|
135
|
+
[Supported application load
|
136
|
+
balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
|
137
|
+
["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
|
134
138
|
"""
|
135
139
|
return pulumi.get(self, "load_balancing_scheme")
|
136
140
|
|
@@ -188,8 +192,10 @@ class _LbTrafficExtensionState:
|
|
188
192
|
manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
|
189
193
|
present on the resource.
|
190
194
|
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
|
191
|
-
more information, refer to Choosing a load balancer.
|
192
|
-
|
195
|
+
more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
|
196
|
+
[Supported application load
|
197
|
+
balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
|
198
|
+
["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
|
193
199
|
:param pulumi.Input[str] location: The location of the traffic extension
|
194
200
|
:param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
|
195
201
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
@@ -288,8 +294,10 @@ class _LbTrafficExtensionState:
|
|
288
294
|
def load_balancing_scheme(self) -> Optional[pulumi.Input[str]]:
|
289
295
|
"""
|
290
296
|
All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
|
291
|
-
more information, refer to Choosing a load balancer.
|
292
|
-
|
297
|
+
more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
|
298
|
+
[Supported application load
|
299
|
+
balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
|
300
|
+
["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
|
293
301
|
"""
|
294
302
|
return pulumi.get(self, "load_balancing_scheme")
|
295
303
|
|
@@ -369,269 +377,6 @@ class LbTrafficExtension(pulumi.CustomResource):
|
|
369
377
|
|
370
378
|
## Example Usage
|
371
379
|
|
372
|
-
### Network Services Lb Traffic Extension Basic
|
373
|
-
|
374
|
-
```python
|
375
|
-
import pulumi
|
376
|
-
import pulumi_gcp as gcp
|
377
|
-
|
378
|
-
# Internal HTTP load balancer with a managed instance group backend
|
379
|
-
# VPC network
|
380
|
-
ilb_network = gcp.compute.Network("ilb_network",
|
381
|
-
name="l7-ilb-network",
|
382
|
-
auto_create_subnetworks=False)
|
383
|
-
# proxy-only subnet
|
384
|
-
proxy_subnet = gcp.compute.Subnetwork("proxy_subnet",
|
385
|
-
name="l7-ilb-proxy-subnet",
|
386
|
-
ip_cidr_range="10.0.0.0/24",
|
387
|
-
region="us-west1",
|
388
|
-
purpose="REGIONAL_MANAGED_PROXY",
|
389
|
-
role="ACTIVE",
|
390
|
-
network=ilb_network.id)
|
391
|
-
# backend subnet
|
392
|
-
ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
|
393
|
-
name="l7-ilb-subnet",
|
394
|
-
ip_cidr_range="10.0.1.0/24",
|
395
|
-
region="us-west1",
|
396
|
-
network=ilb_network.id)
|
397
|
-
# health check
|
398
|
-
default_region_health_check = gcp.compute.RegionHealthCheck("default",
|
399
|
-
name="l7-ilb-hc",
|
400
|
-
region="us-west1",
|
401
|
-
http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
|
402
|
-
port_specification="USE_SERVING_PORT",
|
403
|
-
))
|
404
|
-
# instance template
|
405
|
-
instance_template = gcp.compute.InstanceTemplate("instance_template",
|
406
|
-
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
|
407
|
-
access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
|
408
|
-
network=ilb_network.id,
|
409
|
-
subnetwork=ilb_subnet.id,
|
410
|
-
)],
|
411
|
-
name="l7-ilb-mig-template",
|
412
|
-
machine_type="e2-small",
|
413
|
-
tags=["http-server"],
|
414
|
-
disks=[gcp.compute.InstanceTemplateDiskArgs(
|
415
|
-
source_image="debian-cloud/debian-10",
|
416
|
-
auto_delete=True,
|
417
|
-
boot=True,
|
418
|
-
)],
|
419
|
-
metadata={
|
420
|
-
"startup-script": \"\"\"#! /bin/bash
|
421
|
-
set -euo pipefail
|
422
|
-
|
423
|
-
export DEBIAN_FRONTEND=noninteractive
|
424
|
-
apt-get update
|
425
|
-
apt-get install -y nginx-light jq
|
426
|
-
|
427
|
-
NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
|
428
|
-
IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
|
429
|
-
METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
|
430
|
-
|
431
|
-
cat <<EOF > /var/www/html/index.html
|
432
|
-
<pre>
|
433
|
-
Name: $NAME
|
434
|
-
IP: $IP
|
435
|
-
Metadata: $METADATA
|
436
|
-
</pre>
|
437
|
-
EOF
|
438
|
-
\"\"\",
|
439
|
-
})
|
440
|
-
# MIG
|
441
|
-
mig = gcp.compute.RegionInstanceGroupManager("mig",
|
442
|
-
name="l7-ilb-mig1",
|
443
|
-
region="us-west1",
|
444
|
-
base_instance_name="vm",
|
445
|
-
target_size=2,
|
446
|
-
versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
|
447
|
-
instance_template=instance_template.id,
|
448
|
-
name="primary",
|
449
|
-
)])
|
450
|
-
# backend service
|
451
|
-
default_region_backend_service = gcp.compute.RegionBackendService("default",
|
452
|
-
name="l7-ilb-backend-subnet",
|
453
|
-
region="us-west1",
|
454
|
-
protocol="HTTP",
|
455
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
456
|
-
timeout_sec=10,
|
457
|
-
health_checks=default_region_health_check.id,
|
458
|
-
backends=[gcp.compute.RegionBackendServiceBackendArgs(
|
459
|
-
group=mig.instance_group,
|
460
|
-
balancing_mode="UTILIZATION",
|
461
|
-
capacity_scaler=1,
|
462
|
-
)])
|
463
|
-
# URL map
|
464
|
-
default_region_url_map = gcp.compute.RegionUrlMap("default",
|
465
|
-
name="l7-ilb-regional-url-map",
|
466
|
-
region="us-west1",
|
467
|
-
default_service=default_region_backend_service.id)
|
468
|
-
# HTTP target proxy
|
469
|
-
default_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy("default",
|
470
|
-
name="l7-ilb-target-http-proxy",
|
471
|
-
region="us-west1",
|
472
|
-
url_map=default_region_url_map.id)
|
473
|
-
# forwarding rule
|
474
|
-
default = gcp.compute.ForwardingRule("default",
|
475
|
-
name="l7-ilb-forwarding-rule",
|
476
|
-
region="us-west1",
|
477
|
-
ip_protocol="TCP",
|
478
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
479
|
-
port_range="80",
|
480
|
-
target=default_region_target_http_proxy.id,
|
481
|
-
network=ilb_network.id,
|
482
|
-
subnetwork=ilb_subnet.id,
|
483
|
-
network_tier="PREMIUM")
|
484
|
-
# allow all access from IAP and health check ranges
|
485
|
-
fw_iap = gcp.compute.Firewall("fw_iap",
|
486
|
-
name="l7-ilb-fw-allow-iap-hc",
|
487
|
-
direction="INGRESS",
|
488
|
-
network=ilb_network.id,
|
489
|
-
source_ranges=[
|
490
|
-
"130.211.0.0/22",
|
491
|
-
"35.191.0.0/16",
|
492
|
-
"35.235.240.0/20",
|
493
|
-
],
|
494
|
-
allows=[gcp.compute.FirewallAllowArgs(
|
495
|
-
protocol="tcp",
|
496
|
-
)])
|
497
|
-
# allow http from proxy subnet to backends
|
498
|
-
fw_ilb_to_backends = gcp.compute.Firewall("fw_ilb_to_backends",
|
499
|
-
name="l7-ilb-fw-allow-ilb-to-backends",
|
500
|
-
direction="INGRESS",
|
501
|
-
network=ilb_network.id,
|
502
|
-
source_ranges=["10.0.0.0/24"],
|
503
|
-
target_tags=["http-server"],
|
504
|
-
allows=[gcp.compute.FirewallAllowArgs(
|
505
|
-
protocol="tcp",
|
506
|
-
ports=[
|
507
|
-
"80",
|
508
|
-
"443",
|
509
|
-
"8080",
|
510
|
-
],
|
511
|
-
)])
|
512
|
-
# Traffic Extension Backend Instance
|
513
|
-
callouts_instance = gcp.compute.Instance("callouts_instance",
|
514
|
-
network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
|
515
|
-
access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs()],
|
516
|
-
network=ilb_network.id,
|
517
|
-
subnetwork=ilb_subnet.id,
|
518
|
-
)],
|
519
|
-
name="l7-ilb-callouts-ins",
|
520
|
-
zone="us-west1-a",
|
521
|
-
machine_type="e2-small",
|
522
|
-
labels={
|
523
|
-
"container-vm": "cos-stable-109-17800-147-54",
|
524
|
-
},
|
525
|
-
tags=[
|
526
|
-
"allow-ssh",
|
527
|
-
"load-balanced-backend",
|
528
|
-
],
|
529
|
-
boot_disk=gcp.compute.InstanceBootDiskArgs(
|
530
|
-
auto_delete=True,
|
531
|
-
initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
|
532
|
-
type="pd-standard",
|
533
|
-
size=10,
|
534
|
-
image="https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-stable-109-17800-147-54",
|
535
|
-
),
|
536
|
-
),
|
537
|
-
metadata={
|
538
|
-
"gce-container-declaration": \"\"\"# DISCLAIMER:
|
539
|
-
# This container declaration format is not a public API and may change without
|
540
|
-
# notice. Please use gcloud command-line tool or Google Cloud Console to run
|
541
|
-
# Containers on Google Compute Engine.
|
542
|
-
|
543
|
-
spec:
|
544
|
-
containers:
|
545
|
-
- image: us-docker.pkg.dev/service-extensions/ext-proc/service-callout-basic-example-python:latest
|
546
|
-
name: callouts-vm
|
547
|
-
securityContext:
|
548
|
-
privileged: false
|
549
|
-
stdin: false
|
550
|
-
tty: false
|
551
|
-
volumeMounts: []
|
552
|
-
restartPolicy: Always
|
553
|
-
volumes: []
|
554
|
-
\"\"\",
|
555
|
-
"google-logging-enabled": "true",
|
556
|
-
},
|
557
|
-
deletion_protection=False)
|
558
|
-
# callouts instance group
|
559
|
-
callouts_instance_group = gcp.compute.InstanceGroup("callouts_instance_group",
|
560
|
-
name="l7-ilb-callouts-ins-group",
|
561
|
-
description="Terraform test instance group",
|
562
|
-
zone="us-west1-a",
|
563
|
-
instances=[callouts_instance.id],
|
564
|
-
named_ports=[
|
565
|
-
gcp.compute.InstanceGroupNamedPortArgs(
|
566
|
-
name="http",
|
567
|
-
port=80,
|
568
|
-
),
|
569
|
-
gcp.compute.InstanceGroupNamedPortArgs(
|
570
|
-
name="grpc",
|
571
|
-
port=443,
|
572
|
-
),
|
573
|
-
])
|
574
|
-
# callout health check
|
575
|
-
callouts_health_check = gcp.compute.RegionHealthCheck("callouts_health_check",
|
576
|
-
name="l7-ilb-callouts-hc",
|
577
|
-
region="us-west1",
|
578
|
-
http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
|
579
|
-
port=80,
|
580
|
-
))
|
581
|
-
# callout backend service
|
582
|
-
callouts_backend = gcp.compute.RegionBackendService("callouts_backend",
|
583
|
-
name="l7-ilb-callouts-backend",
|
584
|
-
region="us-west1",
|
585
|
-
protocol="HTTP2",
|
586
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
587
|
-
timeout_sec=10,
|
588
|
-
port_name="grpc",
|
589
|
-
health_checks=callouts_health_check.id,
|
590
|
-
backends=[gcp.compute.RegionBackendServiceBackendArgs(
|
591
|
-
group=callouts_instance_group.id,
|
592
|
-
balancing_mode="UTILIZATION",
|
593
|
-
capacity_scaler=1,
|
594
|
-
)])
|
595
|
-
default_lb_traffic_extension = gcp.networkservices.LbTrafficExtension("default",
|
596
|
-
name="l7-ilb-traffic-ext",
|
597
|
-
description="my traffic extension",
|
598
|
-
location="us-west1",
|
599
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
600
|
-
forwarding_rules=[default.self_link],
|
601
|
-
extension_chains=[gcp.networkservices.LbTrafficExtensionExtensionChainArgs(
|
602
|
-
name="chain1",
|
603
|
-
match_condition=gcp.networkservices.LbTrafficExtensionExtensionChainMatchConditionArgs(
|
604
|
-
cel_expression="request.host == 'example.com'",
|
605
|
-
),
|
606
|
-
extensions=[gcp.networkservices.LbTrafficExtensionExtensionChainExtensionArgs(
|
607
|
-
name="ext11",
|
608
|
-
authority="ext11.com",
|
609
|
-
service=callouts_backend.self_link,
|
610
|
-
timeout="0.1s",
|
611
|
-
fail_open=False,
|
612
|
-
supported_events=["REQUEST_HEADERS"],
|
613
|
-
forward_headers=["custom-header"],
|
614
|
-
)],
|
615
|
-
)],
|
616
|
-
labels={
|
617
|
-
"foo": "bar",
|
618
|
-
})
|
619
|
-
# test instance
|
620
|
-
vm_test = gcp.compute.Instance("vm_test",
|
621
|
-
name="l7-ilb-test-vm",
|
622
|
-
zone="us-west1-b",
|
623
|
-
machine_type="e2-small",
|
624
|
-
network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
|
625
|
-
network=ilb_network.id,
|
626
|
-
subnetwork=ilb_subnet.id,
|
627
|
-
)],
|
628
|
-
boot_disk=gcp.compute.InstanceBootDiskArgs(
|
629
|
-
initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
|
630
|
-
image="debian-cloud/debian-11",
|
631
|
-
),
|
632
|
-
))
|
633
|
-
```
|
634
|
-
|
635
380
|
## Import
|
636
381
|
|
637
382
|
LbTrafficExtension can be imported using any of these accepted formats:
|
@@ -670,8 +415,10 @@ class LbTrafficExtension(pulumi.CustomResource):
|
|
670
415
|
manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
|
671
416
|
present on the resource.
|
672
417
|
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
|
673
|
-
more information, refer to Choosing a load balancer.
|
674
|
-
|
418
|
+
more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
|
419
|
+
[Supported application load
|
420
|
+
balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
|
421
|
+
["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
|
675
422
|
:param pulumi.Input[str] location: The location of the traffic extension
|
676
423
|
:param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
|
677
424
|
"""
|
@@ -692,269 +439,6 @@ class LbTrafficExtension(pulumi.CustomResource):
|
|
692
439
|
|
693
440
|
## Example Usage
|
694
441
|
|
695
|
-
### Network Services Lb Traffic Extension Basic
|
696
|
-
|
697
|
-
```python
|
698
|
-
import pulumi
|
699
|
-
import pulumi_gcp as gcp
|
700
|
-
|
701
|
-
# Internal HTTP load balancer with a managed instance group backend
|
702
|
-
# VPC network
|
703
|
-
ilb_network = gcp.compute.Network("ilb_network",
|
704
|
-
name="l7-ilb-network",
|
705
|
-
auto_create_subnetworks=False)
|
706
|
-
# proxy-only subnet
|
707
|
-
proxy_subnet = gcp.compute.Subnetwork("proxy_subnet",
|
708
|
-
name="l7-ilb-proxy-subnet",
|
709
|
-
ip_cidr_range="10.0.0.0/24",
|
710
|
-
region="us-west1",
|
711
|
-
purpose="REGIONAL_MANAGED_PROXY",
|
712
|
-
role="ACTIVE",
|
713
|
-
network=ilb_network.id)
|
714
|
-
# backend subnet
|
715
|
-
ilb_subnet = gcp.compute.Subnetwork("ilb_subnet",
|
716
|
-
name="l7-ilb-subnet",
|
717
|
-
ip_cidr_range="10.0.1.0/24",
|
718
|
-
region="us-west1",
|
719
|
-
network=ilb_network.id)
|
720
|
-
# health check
|
721
|
-
default_region_health_check = gcp.compute.RegionHealthCheck("default",
|
722
|
-
name="l7-ilb-hc",
|
723
|
-
region="us-west1",
|
724
|
-
http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
|
725
|
-
port_specification="USE_SERVING_PORT",
|
726
|
-
))
|
727
|
-
# instance template
|
728
|
-
instance_template = gcp.compute.InstanceTemplate("instance_template",
|
729
|
-
network_interfaces=[gcp.compute.InstanceTemplateNetworkInterfaceArgs(
|
730
|
-
access_configs=[gcp.compute.InstanceTemplateNetworkInterfaceAccessConfigArgs()],
|
731
|
-
network=ilb_network.id,
|
732
|
-
subnetwork=ilb_subnet.id,
|
733
|
-
)],
|
734
|
-
name="l7-ilb-mig-template",
|
735
|
-
machine_type="e2-small",
|
736
|
-
tags=["http-server"],
|
737
|
-
disks=[gcp.compute.InstanceTemplateDiskArgs(
|
738
|
-
source_image="debian-cloud/debian-10",
|
739
|
-
auto_delete=True,
|
740
|
-
boot=True,
|
741
|
-
)],
|
742
|
-
metadata={
|
743
|
-
"startup-script": \"\"\"#! /bin/bash
|
744
|
-
set -euo pipefail
|
745
|
-
|
746
|
-
export DEBIAN_FRONTEND=noninteractive
|
747
|
-
apt-get update
|
748
|
-
apt-get install -y nginx-light jq
|
749
|
-
|
750
|
-
NAME=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/hostname")
|
751
|
-
IP=$(curl -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/ip")
|
752
|
-
METADATA=$(curl -f -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=True" | jq 'del(.["startup-script"])')
|
753
|
-
|
754
|
-
cat <<EOF > /var/www/html/index.html
|
755
|
-
<pre>
|
756
|
-
Name: $NAME
|
757
|
-
IP: $IP
|
758
|
-
Metadata: $METADATA
|
759
|
-
</pre>
|
760
|
-
EOF
|
761
|
-
\"\"\",
|
762
|
-
})
|
763
|
-
# MIG
|
764
|
-
mig = gcp.compute.RegionInstanceGroupManager("mig",
|
765
|
-
name="l7-ilb-mig1",
|
766
|
-
region="us-west1",
|
767
|
-
base_instance_name="vm",
|
768
|
-
target_size=2,
|
769
|
-
versions=[gcp.compute.RegionInstanceGroupManagerVersionArgs(
|
770
|
-
instance_template=instance_template.id,
|
771
|
-
name="primary",
|
772
|
-
)])
|
773
|
-
# backend service
|
774
|
-
default_region_backend_service = gcp.compute.RegionBackendService("default",
|
775
|
-
name="l7-ilb-backend-subnet",
|
776
|
-
region="us-west1",
|
777
|
-
protocol="HTTP",
|
778
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
779
|
-
timeout_sec=10,
|
780
|
-
health_checks=default_region_health_check.id,
|
781
|
-
backends=[gcp.compute.RegionBackendServiceBackendArgs(
|
782
|
-
group=mig.instance_group,
|
783
|
-
balancing_mode="UTILIZATION",
|
784
|
-
capacity_scaler=1,
|
785
|
-
)])
|
786
|
-
# URL map
|
787
|
-
default_region_url_map = gcp.compute.RegionUrlMap("default",
|
788
|
-
name="l7-ilb-regional-url-map",
|
789
|
-
region="us-west1",
|
790
|
-
default_service=default_region_backend_service.id)
|
791
|
-
# HTTP target proxy
|
792
|
-
default_region_target_http_proxy = gcp.compute.RegionTargetHttpProxy("default",
|
793
|
-
name="l7-ilb-target-http-proxy",
|
794
|
-
region="us-west1",
|
795
|
-
url_map=default_region_url_map.id)
|
796
|
-
# forwarding rule
|
797
|
-
default = gcp.compute.ForwardingRule("default",
|
798
|
-
name="l7-ilb-forwarding-rule",
|
799
|
-
region="us-west1",
|
800
|
-
ip_protocol="TCP",
|
801
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
802
|
-
port_range="80",
|
803
|
-
target=default_region_target_http_proxy.id,
|
804
|
-
network=ilb_network.id,
|
805
|
-
subnetwork=ilb_subnet.id,
|
806
|
-
network_tier="PREMIUM")
|
807
|
-
# allow all access from IAP and health check ranges
|
808
|
-
fw_iap = gcp.compute.Firewall("fw_iap",
|
809
|
-
name="l7-ilb-fw-allow-iap-hc",
|
810
|
-
direction="INGRESS",
|
811
|
-
network=ilb_network.id,
|
812
|
-
source_ranges=[
|
813
|
-
"130.211.0.0/22",
|
814
|
-
"35.191.0.0/16",
|
815
|
-
"35.235.240.0/20",
|
816
|
-
],
|
817
|
-
allows=[gcp.compute.FirewallAllowArgs(
|
818
|
-
protocol="tcp",
|
819
|
-
)])
|
820
|
-
# allow http from proxy subnet to backends
|
821
|
-
fw_ilb_to_backends = gcp.compute.Firewall("fw_ilb_to_backends",
|
822
|
-
name="l7-ilb-fw-allow-ilb-to-backends",
|
823
|
-
direction="INGRESS",
|
824
|
-
network=ilb_network.id,
|
825
|
-
source_ranges=["10.0.0.0/24"],
|
826
|
-
target_tags=["http-server"],
|
827
|
-
allows=[gcp.compute.FirewallAllowArgs(
|
828
|
-
protocol="tcp",
|
829
|
-
ports=[
|
830
|
-
"80",
|
831
|
-
"443",
|
832
|
-
"8080",
|
833
|
-
],
|
834
|
-
)])
|
835
|
-
# Traffic Extension Backend Instance
|
836
|
-
callouts_instance = gcp.compute.Instance("callouts_instance",
|
837
|
-
network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
|
838
|
-
access_configs=[gcp.compute.InstanceNetworkInterfaceAccessConfigArgs()],
|
839
|
-
network=ilb_network.id,
|
840
|
-
subnetwork=ilb_subnet.id,
|
841
|
-
)],
|
842
|
-
name="l7-ilb-callouts-ins",
|
843
|
-
zone="us-west1-a",
|
844
|
-
machine_type="e2-small",
|
845
|
-
labels={
|
846
|
-
"container-vm": "cos-stable-109-17800-147-54",
|
847
|
-
},
|
848
|
-
tags=[
|
849
|
-
"allow-ssh",
|
850
|
-
"load-balanced-backend",
|
851
|
-
],
|
852
|
-
boot_disk=gcp.compute.InstanceBootDiskArgs(
|
853
|
-
auto_delete=True,
|
854
|
-
initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
|
855
|
-
type="pd-standard",
|
856
|
-
size=10,
|
857
|
-
image="https://www.googleapis.com/compute/v1/projects/cos-cloud/global/images/cos-stable-109-17800-147-54",
|
858
|
-
),
|
859
|
-
),
|
860
|
-
metadata={
|
861
|
-
"gce-container-declaration": \"\"\"# DISCLAIMER:
|
862
|
-
# This container declaration format is not a public API and may change without
|
863
|
-
# notice. Please use gcloud command-line tool or Google Cloud Console to run
|
864
|
-
# Containers on Google Compute Engine.
|
865
|
-
|
866
|
-
spec:
|
867
|
-
containers:
|
868
|
-
- image: us-docker.pkg.dev/service-extensions/ext-proc/service-callout-basic-example-python:latest
|
869
|
-
name: callouts-vm
|
870
|
-
securityContext:
|
871
|
-
privileged: false
|
872
|
-
stdin: false
|
873
|
-
tty: false
|
874
|
-
volumeMounts: []
|
875
|
-
restartPolicy: Always
|
876
|
-
volumes: []
|
877
|
-
\"\"\",
|
878
|
-
"google-logging-enabled": "true",
|
879
|
-
},
|
880
|
-
deletion_protection=False)
|
881
|
-
# callouts instance group
|
882
|
-
callouts_instance_group = gcp.compute.InstanceGroup("callouts_instance_group",
|
883
|
-
name="l7-ilb-callouts-ins-group",
|
884
|
-
description="Terraform test instance group",
|
885
|
-
zone="us-west1-a",
|
886
|
-
instances=[callouts_instance.id],
|
887
|
-
named_ports=[
|
888
|
-
gcp.compute.InstanceGroupNamedPortArgs(
|
889
|
-
name="http",
|
890
|
-
port=80,
|
891
|
-
),
|
892
|
-
gcp.compute.InstanceGroupNamedPortArgs(
|
893
|
-
name="grpc",
|
894
|
-
port=443,
|
895
|
-
),
|
896
|
-
])
|
897
|
-
# callout health check
|
898
|
-
callouts_health_check = gcp.compute.RegionHealthCheck("callouts_health_check",
|
899
|
-
name="l7-ilb-callouts-hc",
|
900
|
-
region="us-west1",
|
901
|
-
http_health_check=gcp.compute.RegionHealthCheckHttpHealthCheckArgs(
|
902
|
-
port=80,
|
903
|
-
))
|
904
|
-
# callout backend service
|
905
|
-
callouts_backend = gcp.compute.RegionBackendService("callouts_backend",
|
906
|
-
name="l7-ilb-callouts-backend",
|
907
|
-
region="us-west1",
|
908
|
-
protocol="HTTP2",
|
909
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
910
|
-
timeout_sec=10,
|
911
|
-
port_name="grpc",
|
912
|
-
health_checks=callouts_health_check.id,
|
913
|
-
backends=[gcp.compute.RegionBackendServiceBackendArgs(
|
914
|
-
group=callouts_instance_group.id,
|
915
|
-
balancing_mode="UTILIZATION",
|
916
|
-
capacity_scaler=1,
|
917
|
-
)])
|
918
|
-
default_lb_traffic_extension = gcp.networkservices.LbTrafficExtension("default",
|
919
|
-
name="l7-ilb-traffic-ext",
|
920
|
-
description="my traffic extension",
|
921
|
-
location="us-west1",
|
922
|
-
load_balancing_scheme="INTERNAL_MANAGED",
|
923
|
-
forwarding_rules=[default.self_link],
|
924
|
-
extension_chains=[gcp.networkservices.LbTrafficExtensionExtensionChainArgs(
|
925
|
-
name="chain1",
|
926
|
-
match_condition=gcp.networkservices.LbTrafficExtensionExtensionChainMatchConditionArgs(
|
927
|
-
cel_expression="request.host == 'example.com'",
|
928
|
-
),
|
929
|
-
extensions=[gcp.networkservices.LbTrafficExtensionExtensionChainExtensionArgs(
|
930
|
-
name="ext11",
|
931
|
-
authority="ext11.com",
|
932
|
-
service=callouts_backend.self_link,
|
933
|
-
timeout="0.1s",
|
934
|
-
fail_open=False,
|
935
|
-
supported_events=["REQUEST_HEADERS"],
|
936
|
-
forward_headers=["custom-header"],
|
937
|
-
)],
|
938
|
-
)],
|
939
|
-
labels={
|
940
|
-
"foo": "bar",
|
941
|
-
})
|
942
|
-
# test instance
|
943
|
-
vm_test = gcp.compute.Instance("vm_test",
|
944
|
-
name="l7-ilb-test-vm",
|
945
|
-
zone="us-west1-b",
|
946
|
-
machine_type="e2-small",
|
947
|
-
network_interfaces=[gcp.compute.InstanceNetworkInterfaceArgs(
|
948
|
-
network=ilb_network.id,
|
949
|
-
subnetwork=ilb_subnet.id,
|
950
|
-
)],
|
951
|
-
boot_disk=gcp.compute.InstanceBootDiskArgs(
|
952
|
-
initialize_params=gcp.compute.InstanceBootDiskInitializeParamsArgs(
|
953
|
-
image="debian-cloud/debian-11",
|
954
|
-
),
|
955
|
-
))
|
956
|
-
```
|
957
|
-
|
958
442
|
## Import
|
959
443
|
|
960
444
|
LbTrafficExtension can be imported using any of these accepted formats:
|
@@ -1069,8 +553,10 @@ class LbTrafficExtension(pulumi.CustomResource):
|
|
1069
553
|
manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels
|
1070
554
|
present on the resource.
|
1071
555
|
:param pulumi.Input[str] load_balancing_scheme: All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
|
1072
|
-
more information, refer to Choosing a load balancer.
|
1073
|
-
|
556
|
+
more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
|
557
|
+
[Supported application load
|
558
|
+
balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
|
559
|
+
["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
|
1074
560
|
:param pulumi.Input[str] location: The location of the traffic extension
|
1075
561
|
:param pulumi.Input[str] name: Name of the LbTrafficExtension resource in the following format: projects/{project}/locations/{location}/lbTrafficExtensions/{lbTrafficExtension}.
|
1076
562
|
:param pulumi.Input[Mapping[str, pulumi.Input[str]]] pulumi_labels: The combination of labels configured directly on the resource
|
@@ -1144,8 +630,10 @@ class LbTrafficExtension(pulumi.CustomResource):
|
|
1144
630
|
def load_balancing_scheme(self) -> pulumi.Output[Optional[str]]:
|
1145
631
|
"""
|
1146
632
|
All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. For
|
1147
|
-
more information, refer to Choosing a load balancer.
|
1148
|
-
|
633
|
+
more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service) and
|
634
|
+
[Supported application load
|
635
|
+
balancers](https://cloud.google.com/service-extensions/docs/callouts-overview#supported-lbs). Possible values:
|
636
|
+
["INTERNAL_MANAGED", "EXTERNAL_MANAGED"]
|
1149
637
|
"""
|
1150
638
|
return pulumi.get(self, "load_balancing_scheme")
|
1151
639
|
|