From 3edacd0aba39add2d5066efea09c26341af04171 Mon Sep 17 00:00:00 2001 From: Andy Bubune Amewuda Date: Thu, 4 Jan 2024 22:47:32 +0100 Subject: [PATCH] Add e2e test for net_lb_app_ext module --- modules/net-lb-app-ext/README.md | 196 ++++++------ .../examples/classic-vs-non-classic.yaml | 105 +++++++ .../examples/complex-example.yaml | 294 ++++++++++++++++++ .../examples/health-check-1.yaml | 104 +++++++ .../examples/health-check-2.yaml | 84 +++++ .../examples/http-backends.yaml | 120 +++++++ .../examples/http-https-redirect.yaml | 169 ++++++++++ .../examples/https-backends.yaml | 119 +++++++ .../net_lb_app_ext/examples/hybrid-neg.yaml | 128 ++++++++ .../examples/instance-groups.yaml | 118 +++++++ .../net_lb_app_ext/examples/internet-neg.yaml | 101 ++++++ .../examples/managed-instance-groups.yaml | 106 +++++++ .../net_lb_app_ext/examples/minimal-http.yaml | 105 +++++++ .../examples/network-endpoint-groups.yaml | 119 +++++++ .../examples/serverless-neg.yaml | 102 ++++++ .../examples/ssl-certificates.yaml | 146 +++++++++ .../net_lb_app_ext/examples/storage.yaml | 67 ++++ .../net_lb_app_ext/examples/url-map.yaml | 144 +++++++++ .../examples/zonal-neg-creation.yaml | 129 ++++++++ 19 files changed, 2364 insertions(+), 92 deletions(-) create mode 100644 tests/modules/net_lb_app_ext/examples/classic-vs-non-classic.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/complex-example.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/health-check-1.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/health-check-2.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/http-backends.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/http-https-redirect.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/https-backends.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/hybrid-neg.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/instance-groups.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/internet-neg.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/managed-instance-groups.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/minimal-http.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/network-endpoint-groups.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/serverless-neg.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/ssl-certificates.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/storage.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/url-map.yaml create mode 100644 tests/modules/net_lb_app_ext/examples/zonal-neg-creation.yaml diff --git a/modules/net-lb-app-ext/README.md b/modules/net-lb-app-ext/README.md index 606076a8..c4f84868 100644 --- a/modules/net-lb-app-ext/README.md +++ b/modules/net-lb-app-ext/README.md @@ -52,7 +52,7 @@ module "glb-0" { } } } -# tftest modules=3 resources=9 fixtures=fixtures/compute-mig-ab.tf e2e +# tftest modules=3 resources=9 fixtures=fixtures/compute-mig-ab.tf inventory=minimal-http.yaml e2e ``` ### Minimal HTTPS examples @@ -64,13 +64,13 @@ An HTTPS load balancer needs a certificate and backends can be HTTP or HTTPS. TH ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { backends = [ - { backend = "projects/myprj/zones/europe-west8-b/instanceGroups/myig-b" }, - { backend = "projects/myprj/zones/europe-west8-c/instanceGroups/myig-c" }, + { backend = module.compute-mig-a.group.id }, + { backend = module.compute-mig-b.group.id }, ] protocol = "HTTP" } @@ -84,7 +84,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=6 +# tftest modules=3 resources=10 fixtures=fixtures/compute-mig-ab.tf inventory=http-backends.yaml e2e ``` #### HTTPS backends @@ -94,13 +94,13 @@ For HTTPS backends the backend service protocol needs to be set to `HTTPS`. The ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { backends = [ - { backend = "projects/myprj/zones/europe-west8-b/instanceGroups/myig-b" }, - { backend = "projects/myprj/zones/europe-west8-c/instanceGroups/myig-c" }, + { backend = module.compute-mig-a.group.id }, + { backend = module.compute-mig-b.group.id }, ] protocol = "HTTPS" } @@ -121,7 +121,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=6 +# tftest modules=3 resources=10 fixtures=fixtures/compute-mig-ab.tf inventory=https-backends.yaml e2e ``` #### HTTP to HTTPS redirect @@ -131,7 +131,7 @@ Redirect is implemented via an additional HTTP load balancer with a custom URL m ```hcl module "addresses" { source = "./fabric/modules/net-address" - project_id = "myprj" + project_id = var.project_id global_addresses = { "glb-test-0" = {} } @@ -139,7 +139,7 @@ module "addresses" { module "glb-test-0-redirect" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0-redirect" address = ( module.addresses.global_addresses["glb-test-0"].address @@ -156,7 +156,7 @@ module "glb-test-0-redirect" { module "glb-test-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" use_classic_version = false address = ( @@ -165,7 +165,7 @@ module "glb-test-0" { backend_service_configs = { default = { backends = [ - { backend = "projects/myprj/zones/europe-west8-b/instanceGroups/myig-b" }, + { backend = module.compute-mig-b.group.id }, ] protocol = "HTTP" } @@ -180,7 +180,7 @@ module "glb-test-0" { } } -# tftest modules=3 resources=10 +# tftest modules=5 resources=14 fixtures=fixtures/compute-mig-ab.tf inventory=http-https-redirect.yaml e2e ``` ### Classic vs Non-classic @@ -190,19 +190,19 @@ The module uses a classic Global Load Balancer by default. To use the non-classi ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" use_classic_version = false backend_service_configs = { default = { backends = [ - { backend = "projects/myprj/zones/europe-west8-b/instanceGroups/myig-b" }, - { backend = "projects/myprj/zones/europe-west8-c/instanceGroups/myig-c" }, + { backend = module.compute-mig-a.group.id }, + { backend = module.compute-mig-b.group.id }, ] } } } -# tftest modules=1 resources=5 +# tftest modules=3 resources=9 fixtures=fixtures/compute-mig-ab.tf inventory=classic-vs-non-classic.yaml e2e ``` ### Health Checks @@ -221,7 +221,7 @@ module "glb-0" { backend_service_configs = { default = { backends = [{ - backend = "projects/myprj/zones/europe-west1-a/instanceGroups/my-ig" + backend = module.compute-mig-a.group.id }] # no need to reference the hc explicitly when using the `default` key # health_checks = ["default"] @@ -233,7 +233,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=5 +# tftest modules=3 resources=9 fixtures=fixtures/compute-mig-ab.tf inventory=health-check-1.yaml e2e ``` To leverage existing health checks without having the module create them, simply pass their self links to backend services and set the `health_check_configs` variable to an empty map: @@ -246,14 +246,14 @@ module "glb-0" { backend_service_configs = { default = { backends = [{ - backend = "projects/myprj/zones/europe-west1-a/instanceGroups/my-ig" + backend = module.compute-mig-b.group.id }] - health_checks = ["projects/myprj/global/healthChecks/custom"] + health_checks = ["projects/${var.project_id}/global/healthChecks/custom"] } } health_check_configs = {} } -# tftest modules=1 resources=4 +# tftest modules=3 resources=8 fixtures=fixtures/compute-mig-ab.tf inventory=health-check-2.yaml ``` ### Backend Types and Management @@ -265,7 +265,7 @@ The module can optionally create unmanaged instance groups, which can then be re ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { @@ -276,15 +276,15 @@ module "glb-0" { } group_configs = { default-b = { - zone = "europe-west8-b" + zone = "${var.region}-b" instances = [ - "projects/myprj/zones/europe-west8-b/instances/vm-a" + "${module.compute-mig-b.id}" ] named_ports = { http = 80 } } } } -# tftest modules=1 resources=6 +# tftest modules=3 resources=10 fixtures=fixtures/compute-mig-ab.tf inventory=instance-groups.yaml e2e ``` #### Managed Instance Groups @@ -294,8 +294,8 @@ This example shows how to use the module with a manage instance group as backend ```hcl module "win-template" { source = "./fabric/modules/compute-vm" - project_id = "myprj" - zone = "europe-west8-a" + project_id = var.project_id + zone = "${var.region}-a" name = "win-template" instance_type = "n2d-standard-2" create_template = true @@ -315,8 +315,8 @@ module "win-template" { module "win-mig" { source = "./fabric/modules/compute-mig" - project_id = "myprj" - location = "europe-west8-a" + project_id = var.project_id + location = "${var.region}-a" name = "win-mig" instance_template = module.win-template.template.self_link autoscaler_config = { @@ -336,7 +336,7 @@ module "win-mig" { module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { @@ -346,7 +346,7 @@ module "glb-0" { } } } -# tftest modules=3 resources=8 +# tftest modules=3 resources=8 inventory=managed-instance-groups.yaml e2e ``` #### Storage Buckets @@ -356,17 +356,17 @@ GCS bucket backends can also be managed and used in this module in a similar way ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_buckets_config = { default = { - bucket_name = "tf-playground-svpc-gce-public" + bucket_name = var.bucket } } # with a single GCS backend the implied default health check is not needed health_check_configs = {} } -# tftest modules=1 resources=4 +# tftest modules=1 resources=4 inventory=storage.yaml e2e ``` #### Network Endpoint Groups (NEGs) @@ -376,21 +376,31 @@ Supported Network Endpoint Groups (NEGs) can also be used as backends. Similarly ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { backends = [ { - backend = "projects/myprj/zones/europe-west8-b/networkEndpointGroups/myneg-b" + backend = "myneg-b" balancing_mode = "RATE" max_rate = { per_endpoint = 10 } } ] } } + neg_configs = { + myneg-b = { + hybrid = { + network = var.vpc.self_link + subnetwork = var.subnet.self_link + zone = "${var.region}-b" + endpoints = {} + } + } + } } -# tftest modules=1 resources=5 +# tftest modules=1 resources=6 inventory=network-endpoint-groups.yaml e2e ``` #### Zonal NEG creation @@ -400,7 +410,7 @@ This example shows how to create and manage zonal NEGs using GCE VMs as endpoint ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { @@ -416,13 +426,13 @@ module "glb-0" { neg_configs = { neg-0 = { gce = { - network = "projects/myprj-host/global/networks/svpc" - subnetwork = "projects/myprj-host/regions/europe-west8/subnetworks/gce" - zone = "europe-west8-b" + network = var.vpc.self_link + subnetwork = var.subnet.self_link + zone = "${var.region}-b" endpoints = { e-0 = { - instance = "myinstance-b-0" - ip_address = "10.24.32.25" + instance = "my-ig-b" + ip_address = "${module.compute-mig-b.internal_ip}" port = 80 } } @@ -430,7 +440,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=7 +# tftest modules=3 resources=11 fixtures=fixtures/compute-mig-ab.tf inventory=zonal-neg-creation.yaml e2e ``` #### Hybrid NEG creation @@ -440,7 +450,7 @@ This example shows how to create and manage hybrid NEGs: ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { @@ -456,8 +466,8 @@ module "glb-0" { neg_configs = { neg-0 = { hybrid = { - network = "projects/myprj-host/global/networks/svpc" - zone = "europe-west8-b" + network = var.vpc.self_link + zone = "${var.region}-b" endpoints = { e-0 = { ip_address = "10.0.0.10" @@ -468,7 +478,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=7 +# tftest modules=1 resources=7 inventory=hybrid-neg.yaml e2e ``` #### Internet NEG creation @@ -478,7 +488,7 @@ This example shows how to create and manage internet NEGs: ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { @@ -504,7 +514,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=6 +# tftest modules=1 resources=6 inventory=internet-neg.yaml e2e ``` #### Private Service Connect NEG creation @@ -514,7 +524,7 @@ The module supports managing PSC NEGs if the non-classic version of the load bal ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" use_classic_version = false backend_service_configs = { @@ -530,13 +540,13 @@ module "glb-0" { neg_configs = { neg-0 = { psc = { - region = "europe-west8" - target_service = "europe-west8-cloudkms.googleapis.com" + region = var.region + target_service = "${var.region}-cloudkms.googleapis.com" } } } } -# tftest modules=1 resources=5 +# tftest modules=1 resources=5 ``` #### Serverless NEG creation @@ -546,7 +556,7 @@ The module supports managing Serverless NEGs for Cloud Run and Cloud Function. T ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { @@ -561,7 +571,7 @@ module "glb-0" { neg_configs = { neg-0 = { cloudrun = { - region = "europe-west8" + region = var.region target_service = { name = "hello" } @@ -569,7 +579,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=5 +# tftest modules=1 resources=5 inventory=serverless-neg.yaml e2e ``` Serverless NEGs don't use the port name but it should be set to `http`. An HTTPS frontend requires the protocol to be set to `HTTPS`, and the port name field will infer this value if omitted so you need to set it explicitly: @@ -577,7 +587,7 @@ Serverless NEGs don't use the port name but it should be set to `http`. An HTTPS ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { @@ -593,7 +603,7 @@ module "glb-0" { neg_configs = { neg-0 = { cloudrun = { - region = "europe-west8" + region = var.region target_service = { name = "hello" } @@ -609,7 +619,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=6 inventory=https-sneg.yaml +# tftest modules=1 resources=6 inventory=https-sneg.yaml e2e ``` ### URL Map @@ -621,17 +631,17 @@ The default URL map configuration sets the `default` backend service as the defa ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { backends = [{ - backend = "projects/myprj/zones/europe-west8-b/instanceGroups/ig-0" + backend = module.compute-mig-a.group.id }] } other = { backends = [{ - backend = "projects/myprj/zones/europe-west8-c/instanceGroups/ig-1" + backend = module.compute-mig-b.group.id }] } } @@ -653,7 +663,7 @@ module "glb-0" { } } -# tftest modules=1 resources=6 +# tftest modules=3 resources=10 fixtures=fixtures/compute-mig-ab.tf inventory=url-map.yaml e2e ``` ### SSL Certificates @@ -665,7 +675,7 @@ THe [HTTPS example above](#minimal-https-examples) shows how to configure manage ```hcl resource "tls_private_key" "default" { algorithm = "RSA" - rsa_bits = 4096 + rsa_bits = 2048 } resource "tls_self_signed_cert" "default" { @@ -684,13 +694,13 @@ resource "tls_self_signed_cert" "default" { module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_service_configs = { default = { backends = [ - { backend = "projects/myprj/zones/europe-west8-b/instanceGroups/myig-b" }, - { backend = "projects/myprj/zones/europe-west8-c/instanceGroups/myig-c" }, + { backend = module.compute-mig-a.group.id }, + { backend = module.compute-mig-b.group.id }, ] protocol = "HTTP" } @@ -706,7 +716,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=8 +# tftest modules=3 resources=12 fixtures=fixtures/compute-mig-ab.tf inventory=ssl-certificates.yaml e2e ``` ### Complex example @@ -716,47 +726,49 @@ This example mixes group and NEG backends, and shows how to set HTTPS for specif ```hcl module "glb-0" { source = "./fabric/modules/net-lb-app-ext" - project_id = "myprj" + project_id = var.project_id name = "glb-test-0" backend_buckets_config = { gcs-0 = { - bucket_name = "my-bucket" + bucket_name = var.bucket } } backend_service_configs = { default = { backends = [ - { backend = "ew8-b" }, - { backend = "ew8-c" }, + { backend = "ew4-a" }, + { backend = "ew4-b" }, ] } neg-gce-0 = { backends = [{ balancing_mode = "RATE" - backend = "neg-ew8-c" + backend = "neg-ew4-b" max_rate = { per_endpoint = 10 } }] } neg-hybrid-0 = { backends = [{ - backend = "neg-hello" + balancing_mode = "RATE" + backend = "neg-hello" + max_rate = { per_endpoint = 10 } }] health_checks = ["neg"] protocol = "HTTPS" } } group_configs = { - ew8-b = { - zone = "europe-west8-b" + ew4-a = { + zone = "${var.region}-a" instances = [ - "projects/prj-gce/zones/europe-west8-b/instances/nginx-ew8-b" + "${module.compute-mig-a.id}" ] named_ports = { http = 80 } } - ew8-c = { - zone = "europe-west8-c" + ew4-b = { + zone = "${var.region}-b" instances = [ - "projects/prj-gce/zones/europe-west8-c/instances/nginx-ew8-c" + "${module.compute-mig-b.id}" ] named_ports = { http = 80 } } @@ -775,15 +787,15 @@ module "glb-0" { } } neg_configs = { - neg-ew8-c = { + neg-ew4-b = { gce = { - network = "projects/myprj-host/global/networks/svpc" - subnetwork = "projects/myprj-host/regions/europe-west8/subnetworks/gce" - zone = "europe-west8-c" + network = var.vpc.self_link + subnetwork = var.subnet.self_link + zone = "${var.region}-b" endpoints = { e-0 = { - instance = "nginx-ew8-c" - ip_address = "10.24.32.26" + instance = "my-ig-b" + ip_address = "${module.compute-mig-b.internal_ip}" port = 80 } } @@ -791,8 +803,8 @@ module "glb-0" { } neg-hello = { hybrid = { - network = "projects/myprj-host/global/networks/svpc" - zone = "europe-west8-b" + network = var.vpc.self_link + zone = "${var.region}-b" endpoints = { e-0 = { ip_address = "192.168.0.3" @@ -837,7 +849,7 @@ module "glb-0" { } } } -# tftest modules=1 resources=15 +# tftest modules=3 resources=19 fixtures=fixtures/compute-mig-ab.tf inventory=complex-example.yaml e2e ``` diff --git a/tests/modules/net_lb_app_ext/examples/classic-vs-non-classic.yaml b/tests/modules/net_lb_app_ext/examples/classic-vs-non-classic.yaml new file mode 100644 index 00000000..038f4d89 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/classic-vs-non-classic.yaml @@ -0,0 +1,105 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL_MANAGED + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL_MANAGED + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 9 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/complex-example.yaml b/tests/modules/net_lb_app_ext/examples/complex-example.yaml new file mode 100644 index 00000000..dc0aa07a --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/complex-example.yaml @@ -0,0 +1,294 @@ +# Copyright 2023 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.glb-0.google_compute_backend_bucket.default["gcs-0"]: + bucket_name: bucket + compression_mode: null + custom_response_headers: null + description: null + edge_security_policy: null + enable_cdn: null + name: glb-test-0-gcs-0 + project: project-id + timeouts: null + module.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: UTILIZATION + capacity_scaler: 1 + description: Terraform managed. + - balancing_mode: UTILIZATION + capacity_scaler: 1 + description: Terraform managed. + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_backend_service.default["neg-gce-0"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: RATE + capacity_scaler: 1 + description: Terraform managed. + max_rate_per_endpoint: 10 + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-neg-gce-0 + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_backend_service.default["neg-hybrid-0"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: RATE + capacity_scaler: 1 + description: Terraform managed. + max_rate_per_endpoint: 10 + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-neg-hybrid-0 + outlier_detection: [] + port_name: https + project: project-id + protocol: HTTPS + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: 80 + port_name: null + port_specification: null + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_health_check.default["neg"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: [] + https_health_check: + - host: hello.example.com + port: 443 + port_name: null + port_specification: null + proxy_header: NONE + request_path: / + response: null + name: glb-test-0-neg + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_instance_group.default["ew4-a"]: + description: Terraform managed. + name: glb-test-0-ew4-a + named_port: + - name: http + port: 80 + project: project-id + timeouts: null + zone: europe-west8-a + module.glb-0.google_compute_instance_group.default["ew4-b"]: + description: Terraform managed. + name: glb-test-0-ew4-b + named_port: + - name: http + port: 80 + project: project-id + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_network_endpoint.default["neg-ew4-b-e-0"]: + instance: my-ig-b + network_endpoint_group: glb-test-0-neg-ew4-b + port: 80 + project: project-id + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_network_endpoint.default["neg-hello-e-0"]: + instance: null + ip_address: 192.168.0.3 + network_endpoint_group: glb-test-0-neg-hello + port: 443 + project: project-id + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_network_endpoint_group.default["neg-ew4-b"]: + default_port: null + description: Terraform managed. + name: glb-test-0-neg-ew4-b + network: projects/xxx/global/networks/aaa + network_endpoint_type: GCE_VM_IP_PORT + project: project-id + subnetwork: subnet_self_link + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_network_endpoint_group.default["neg-hello"]: + default_port: null + description: Terraform managed. + name: glb-test-0-neg-hello + network: projects/xxx/global/networks/aaa + network_endpoint_type: NON_GCP_PRIVATE_IP_PORT + project: project-id + subnetwork: null + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: + - description: '' + hosts: + - '*' + path_matcher: gce + - description: '' + hosts: + - hello.example.com + path_matcher: hello + - description: '' + hosts: + - static.example.com + path_matcher: static + name: glb-test-0 + path_matcher: + - default_route_action: [] + default_url_redirect: [] + description: null + header_action: [] + name: gce + path_rule: + - paths: + - /gce-neg + - /gce-neg/* + route_action: [] + url_redirect: [] + route_rules: [] + - default_route_action: [] + default_url_redirect: [] + description: null + header_action: [] + name: hello + path_rule: [] + route_rules: [] + - default_route_action: [] + default_url_redirect: [] + description: null + header_action: [] + name: static + path_rule: [] + route_rules: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_bucket: 1 + google_compute_backend_service: 3 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 2 + google_compute_instance: 2 + google_compute_instance_group: 4 + google_compute_network_endpoint: 2 + google_compute_network_endpoint_group: 2 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 19 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/health-check-1.yaml b/tests/modules/net_lb_app_ext/examples/health-check-1.yaml new file mode 100644 index 00000000..32484b3c --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/health-check-1.yaml @@ -0,0 +1,104 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: [] + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: + - port: 80 + port_name: null + port_specification: null + proxy_header: NONE + request: null + response: null + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 9 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/health-check-2.yaml b/tests/modules/net_lb_app_ext/examples/health-check-2.yaml new file mode 100644 index 00000000..c263956b --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/health-check-2.yaml @@ -0,0 +1,84 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + health_checks: + - projects/project-id/global/healthChecks/custom + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 8 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/http-backends.yaml b/tests/modules/net_lb_app_ext/examples/http-backends.yaml new file mode 100644 index 00000000..7375d3b3 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/http-backends.yaml @@ -0,0 +1,120 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '443' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_managed_ssl_certificate.default["default"]: + description: null + managed: + - domains: + - glb-test-0.example.org + name: glb-test-0-default + project: project-id + timeouts: null + type: MANAGED + module.glb-0.google_compute_target_https_proxy.default[0]: + certificate_manager_certificates: null + certificate_map: null + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + quic_override: NONE + server_tls_policy: null + ssl_policy: null + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_managed_ssl_certificate: 1 + google_compute_target_https_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 10 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/http-https-redirect.yaml b/tests/modules/net_lb_app_ext/examples/http-https-redirect.yaml new file mode 100644 index 00000000..1ee6aa92 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/http-https-redirect.yaml @@ -0,0 +1,169 @@ +# Copyright 2023 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.global["glb-test-0"]: + address_type: null + description: Terraform managed. + ip_version: null + name: glb-test-0 + network: null + project: project-id + purpose: null + timeouts: null + module.glb-test-0-redirect.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0-redirect + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-test-0-redirect.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0-redirect + project: project-id + timeouts: null + module.glb-test-0-redirect.google_compute_url_map.default: + default_route_action: [] + default_service: null + default_url_redirect: + - host_redirect: null + https_redirect: true + path_redirect: null + prefix_redirect: null + redirect_response_code: MOVED_PERMANENTLY_DEFAULT + strip_query: false + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0-redirect + path_matcher: [] + project: project-id + test: [] + timeouts: null + module.glb-test-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL_MANAGED + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-test-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL_MANAGED + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '443' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-test-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-test-0.google_compute_managed_ssl_certificate.default["default"]: + description: null + managed: + - domains: + - glb-test.example.com + name: glb-test-0-default + project: project-id + timeouts: null + type: MANAGED + module.glb-test-0.google_compute_target_https_proxy.default[0]: + certificate_manager_certificates: null + certificate_map: null + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + quic_override: NONE + server_tls_policy: null + ssl_policy: null + timeouts: null + module.glb-test-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_address: 1 + google_compute_global_forwarding_rule: 2 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_managed_ssl_certificate: 1 + google_compute_target_http_proxy: 1 + google_compute_target_https_proxy: 1 + google_compute_url_map: 2 + modules: 5 + resources: 14 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/https-backends.yaml b/tests/modules/net_lb_app_ext/examples/https-backends.yaml new file mode 100644 index 00000000..b370e123 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/https-backends.yaml @@ -0,0 +1,119 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: https + project: project-id + protocol: HTTPS + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '443' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: [] + https_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_managed_ssl_certificate.default["default"]: + description: null + managed: + - domains: + - glb-test-0.example.org + name: glb-test-0-default + project: project-id + timeouts: null + type: MANAGED + module.glb-0.google_compute_target_https_proxy.default[0]: + certificate_manager_certificates: null + certificate_map: null + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + quic_override: NONE + server_tls_policy: null + ssl_policy: null + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_managed_ssl_certificate: 1 + google_compute_target_https_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 10 + +outputs: {} diff --git a/tests/modules/net_lb_app_ext/examples/hybrid-neg.yaml b/tests/modules/net_lb_app_ext/examples/hybrid-neg.yaml new file mode 100644 index 00000000..83bc38eb --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/hybrid-neg.yaml @@ -0,0 +1,128 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: RATE + capacity_scaler: 1 + description: Terraform managed. + max_rate_per_endpoint: 10 + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_network_endpoint.default["neg-0-e-0"]: + instance: null + ip_address: 10.0.0.10 + network_endpoint_group: glb-test-0-neg-0 + port: 80 + project: project-id + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_network_endpoint_group.default["neg-0"]: + default_port: null + description: Terraform managed. + name: glb-test-0-neg-0 + network: projects/xxx/global/networks/aaa + network_endpoint_type: NON_GCP_PRIVATE_IP_PORT + project: project-id + subnetwork: null + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_network_endpoint: 1 + google_compute_network_endpoint_group: 1 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 1 + resources: 7 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/instance-groups.yaml b/tests/modules/net_lb_app_ext/examples/instance-groups.yaml new file mode 100644 index 00000000..7693ddb9 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/instance-groups.yaml @@ -0,0 +1,118 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: UTILIZATION + capacity_scaler: 1 + description: Terraform managed. + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_instance_group.default["default-b"]: + description: Terraform managed. + name: glb-test-0-default-b + named_port: + - name: http + port: 80 + project: project-id + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 3 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 10 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/internet-neg.yaml b/tests/modules/net_lb_app_ext/examples/internet-neg.yaml new file mode 100644 index 00000000..fa9e45e2 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/internet-neg.yaml @@ -0,0 +1,101 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: UTILIZATION + capacity_scaler: 1 + description: Terraform managed. + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + health_checks: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_global_network_endpoint.default["neg-0-e-0"]: + fqdn: www.example.org + global_network_endpoint_group: glb-test-0-neg-0 + ip_address: null + port: 80 + project: project-id + timeouts: null + module.glb-0.google_compute_global_network_endpoint_group.default["neg-0"]: + default_port: null + description: Terraform managed. + name: glb-test-0-neg-0 + network_endpoint_type: INTERNET_FQDN_PORT + project: project-id + timeouts: null + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_global_network_endpoint: 1 + google_compute_global_network_endpoint_group: 1 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 1 + resources: 6 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/managed-instance-groups.yaml b/tests/modules/net_lb_app_ext/examples/managed-instance-groups.yaml new file mode 100644 index 00000000..e4fd360d --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/managed-instance-groups.yaml @@ -0,0 +1,106 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_autoscaler: 1 + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance_group_manager: 1 + google_compute_instance_template: 1 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 8 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/minimal-http.yaml b/tests/modules/net_lb_app_ext/examples/minimal-http.yaml new file mode 100644 index 00000000..770eaa5e --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/minimal-http.yaml @@ -0,0 +1,105 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 9 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/network-endpoint-groups.yaml b/tests/modules/net_lb_app_ext/examples/network-endpoint-groups.yaml new file mode 100644 index 00000000..9900a57f --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/network-endpoint-groups.yaml @@ -0,0 +1,119 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: RATE + capacity_scaler: 1 + description: Terraform managed. + max_rate_per_endpoint: 10 + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_network_endpoint_group.default["myneg-b"]: + default_port: null + description: Terraform managed. + name: glb-test-0-myneg-b + network: projects/xxx/global/networks/aaa + network_endpoint_type: NON_GCP_PRIVATE_IP_PORT + project: project-id + subnetwork: null + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_network_endpoint_group: 1 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 1 + resources: 6 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/serverless-neg.yaml b/tests/modules/net_lb_app_ext/examples/serverless-neg.yaml new file mode 100644 index 00000000..8fc37a36 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/serverless-neg.yaml @@ -0,0 +1,102 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: UTILIZATION + capacity_scaler: 1 + description: Terraform managed. + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + health_checks: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_region_network_endpoint_group.serverless["neg-0"]: + app_engine: [] + cloud_function: [] + cloud_run: + - service: hello + tag: null + url_mask: null + description: Terraform managed. + name: glb-test-0-neg-0 + network: null + network_endpoint_type: SERVERLESS + project: project-id + psc_target_service: null + region: europe-west8 + subnetwork: null + timeouts: null + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_region_network_endpoint_group: 1 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 1 + resources: 5 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/ssl-certificates.yaml b/tests/modules/net_lb_app_ext/examples/ssl-certificates.yaml new file mode 100644 index 00000000..111ca9a6 --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/ssl-certificates.yaml @@ -0,0 +1,146 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '443' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_ssl_certificate.default["default"]: + description: null + name: glb-test-0-default + project: project-id + timeouts: null + module.glb-0.google_compute_target_https_proxy.default[0]: + certificate_manager_certificates: null + certificate_map: null + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + quic_override: NONE + server_tls_policy: null + ssl_policy: null + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + tls_private_key.default: + algorithm: RSA + ecdsa_curve: P224 + rsa_bits: 2048 + tls_self_signed_cert.default: + allowed_uses: + - key_encipherment + - digital_signature + - server_auth + dns_names: null + early_renewal_hours: 0 + ip_addresses: null + is_ca_certificate: false + ready_for_renewal: false + set_authority_key_id: false + set_subject_key_id: false + subject: + - common_name: example.com + country: null + locality: null + organization: ACME Examples, Inc + organizational_unit: null + postal_code: null + province: null + serial_number: null + street_address: null + uris: null + validity_period_hours: 720 + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_ssl_certificate: 1 + google_compute_target_https_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 12 + tls_private_key: 1 + tls_self_signed_cert: 1 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/storage.yaml b/tests/modules/net_lb_app_ext/examples/storage.yaml new file mode 100644 index 00000000..6307478b --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/storage.yaml @@ -0,0 +1,67 @@ +# Copyright 2023 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.glb-0.google_compute_backend_bucket.default["default"]: + bucket_name: bucket + compression_mode: null + custom_response_headers: null + description: null + edge_security_policy: null + enable_cdn: null + name: glb-test-0-default + project: project-id + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_bucket: 1 + google_compute_global_forwarding_rule: 1 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 1 + resources: 4 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/url-map.yaml b/tests/modules/net_lb_app_ext/examples/url-map.yaml new file mode 100644 index 00000000..bf61105e --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/url-map.yaml @@ -0,0 +1,144 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_backend_service.default["other"]: + affinity_cookie_ttl_sec: null + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-other + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: + - description: '' + hosts: + - '*' + path_matcher: pathmap + name: glb-test-0 + path_matcher: + - default_route_action: [] + default_url_redirect: [] + description: null + header_action: [] + name: pathmap + path_rule: + - paths: + - /other + - /other/* + route_action: [] + url_redirect: [] + route_rules: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 2 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 10 + +outputs: {} + diff --git a/tests/modules/net_lb_app_ext/examples/zonal-neg-creation.yaml b/tests/modules/net_lb_app_ext/examples/zonal-neg-creation.yaml new file mode 100644 index 00000000..04c1807d --- /dev/null +++ b/tests/modules/net_lb_app_ext/examples/zonal-neg-creation.yaml @@ -0,0 +1,129 @@ +# Copyright 2023 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.glb-0.google_compute_backend_service.default["default"]: + affinity_cookie_ttl_sec: null + backend: + - balancing_mode: RATE + capacity_scaler: 1 + description: Terraform managed. + max_rate_per_endpoint: 10 + circuit_breakers: [] + compression_mode: null + connection_draining_timeout_sec: 300 + consistent_hash: [] + custom_request_headers: null + custom_response_headers: null + description: Terraform managed. + edge_security_policy: null + enable_cdn: null + iap: [] + load_balancing_scheme: EXTERNAL + locality_lb_policies: [] + locality_lb_policy: null + name: glb-test-0-default + outlier_detection: [] + port_name: http + project: project-id + protocol: HTTP + security_policy: null + security_settings: [] + timeouts: null + module.glb-0.google_compute_global_forwarding_rule.default: + allow_psc_global_access: null + description: Terraform managed. + ip_protocol: TCP + ip_version: null + labels: null + load_balancing_scheme: EXTERNAL + metadata_filters: [] + name: glb-test-0 + no_automate_dns_zone: null + port_range: '80' + project: project-id + source_ip_ranges: null + timeouts: null + module.glb-0.google_compute_health_check.default["default"]: + check_interval_sec: 5 + description: Terraform managed. + grpc_health_check: [] + healthy_threshold: 2 + http2_health_check: [] + http_health_check: + - host: null + port: null + port_name: null + port_specification: USE_SERVING_PORT + proxy_header: NONE + request_path: / + response: null + https_health_check: [] + name: glb-test-0-default + project: project-id + ssl_health_check: [] + tcp_health_check: [] + timeout_sec: 5 + timeouts: null + unhealthy_threshold: 2 + module.glb-0.google_compute_network_endpoint.default["neg-0-e-0"]: + instance: my-ig-b + network_endpoint_group: glb-test-0-neg-0 + port: 80 + project: project-id + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_network_endpoint_group.default["neg-0"]: + default_port: null + description: Terraform managed. + name: glb-test-0-neg-0 + network: projects/xxx/global/networks/aaa + network_endpoint_type: GCE_VM_IP_PORT + project: project-id + subnetwork: subnet_self_link + timeouts: null + zone: europe-west8-b + module.glb-0.google_compute_target_http_proxy.default[0]: + description: Terraform managed. + http_keep_alive_timeout_sec: null + name: glb-test-0 + project: project-id + timeouts: null + module.glb-0.google_compute_url_map.default: + default_route_action: [] + default_url_redirect: [] + description: Terraform managed. + header_action: [] + host_rule: [] + name: glb-test-0 + path_matcher: [] + project: project-id + test: [] + timeouts: null + +counts: + google_compute_backend_service: 1 + google_compute_global_forwarding_rule: 1 + google_compute_health_check: 1 + google_compute_instance: 2 + google_compute_instance_group: 2 + google_compute_network_endpoint: 1 + google_compute_network_endpoint_group: 1 + google_compute_target_http_proxy: 1 + google_compute_url_map: 1 + modules: 3 + resources: 11 + +outputs: {} +