modules/frontend/metadata.yaml (44 lines of code) (raw):

# Copyright 2025 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. apiVersion: blueprints.cloud.google.com/v1alpha1 kind: BlueprintMetadata metadata: name: terraform-google-regional-lb-http-frontend annotations: config.kubernetes.io/local-config: "true" spec: info: title: HTTP Regional Load balancer frontend module source: repo: https://github.com/googlestaging/terraform-google-regional-lb-http.git sourceType: git dir: /modules/frontend version: 0.4.3 actuationTool: flavor: Terraform version: ">= 1.3" description: {} content: examples: - name: cloud-run location: examples/cloud-run - name: gce-mig location: examples/gce-mig - name: internal-lb-cloud-run location: examples/internal-lb-cloud-run - name: internal-lb-gce-mig location: examples/internal-lb-gce-mig interfaces: variables: - name: project_id description: The project to deploy load balancer frontend resources.. varType: string required: true - name: region description: The region where the load balancer will be created varType: string required: true - name: name description: Name for the forwarding rule and prefix for supporting resources varType: string required: true - name: network description: VPC network for the forwarding rule. It should not be default. The VPC network should have only one REGIONAL_MANAGED_PROXY subnetwork in the same region as of this regional load balancer. Please go to the subnets tab of your VPC network and check if a REGIONAL_MANAGED_PROXY subnet exists under `Reserved proxy-only subnets for load balancing` section. If the REGIONAL_MANAGED_PROXY doesn't exists, set create_proxy_only_subnet parameter to provision it as part of this component deployment. varType: string required: true - name: subnetwork description: Subnetwork that the load balanced IP should belong to, used in internal load balancing varType: string - name: create_proxy_only_subnet description: Create a REGIONAL_MANAGED_PROXY subnetwork in the provided VPC network. varType: bool defaultValue: false - name: proxy_only_subnet_ip description: ip_cidr_range for creating REGIONAL_MANAGED_PROXY subnetwork in the provided VPC network. varType: string defaultValue: 10.129.0.0/23 - name: load_balancing_scheme description: Load balancing scheme type (EXTERNAL for classic external load balancer, EXTERNAL_MANAGED for Envoy-based load balancer, and INTERNAL_MANAGED for internal load balancer) varType: string defaultValue: EXTERNAL_MANAGED - name: create_url_map description: Set to `false` if url_map_resource_uri variable is provided. varType: bool defaultValue: true - name: url_map_input description: List of host, path and backend service for creating url_map when create_url_map is set to true. varType: |- list(object({ host = string path = string backend_service = string })) defaultValue: [] connections: - source: source: github.com/GoogleCloudPlatform/terraform-google-regional-lb-http//modules/backend version: ">= 0.0.1" spec: outputExpr: backend_service_info - name: url_map_resource_uri description: The url_map resource to use. This is the resource uri of the url map created out of band. varType: string - name: create_address description: Create a new global IPv4 address varType: bool defaultValue: true - name: address description: Existing IPv4 address to use (the actual IP address value) varType: string - name: enable_ipv6 description: Enable IPv6 address on the CDN load-balancer varType: bool defaultValue: false - name: create_ipv6_address description: Allocate a new IPv6 address. Conflicts with "ipv6_address" - if both specified, "create_ipv6_address" takes precedence. varType: bool defaultValue: false - name: ipv6_address description: An existing IPv6 address to use (the actual IP address value) varType: string - name: labels description: The labels to attach to resources created by this module varType: map(string) defaultValue: {} - name: ssl description: "Set to `true` to enable SSL support. If `true` then at least one of these are required: 1) `ssl_certificates` OR 2) `create_ssl_certificate` set to `true` and `private_key/certificate` OR 3) `managed_ssl_certificate_domains`, OR 4) `certificate_map`" varType: bool defaultValue: false - name: create_ssl_certificate description: If `true`, Create certificate using `private_key/certificate` varType: bool defaultValue: false - name: private_key description: Content of the private SSL key. Requires `ssl` to be set to `true` and `create_ssl_certificate` set to `true` varType: string - name: certificate description: Content of the SSL certificate. Requires `ssl` to be set to `true` and `create_ssl_certificate` set to `true` varType: string - name: ssl_certificates description: SSL cert self_link list. Requires `ssl` to be set to `true` varType: list(string) defaultValue: [] - name: managed_ssl_certificate_domains description: Create Google-managed SSL certificates for specified domains. Requires `ssl` to be set to `true` varType: list(string) defaultValue: [] - name: random_certificate_suffix description: Bool to enable/disable random certificate name generation. Set and keep this to true if you need to change the SSL cert. varType: bool defaultValue: false - name: http_port description: The port for the HTTP load balancer varType: number defaultValue: 80 - name: https_port description: The port for the HTTPS load balancer varType: number defaultValue: 443 - name: https_redirect description: Set to `true` to enable https redirect on the lb. varType: bool defaultValue: false - name: http_forward description: Set to `false` to disable HTTP port 80 forward varType: bool defaultValue: true - name: ssl_policy description: Selfink to SSL Policy varType: string - name: server_tls_policy description: The resource URL for the server TLS policy to associate with the https proxy service varType: string - name: http_keep_alive_timeout_sec description: Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). varType: number outputs: - name: apphub_service_uri description: A list of all App Hub service URIs, including HTTP, HTTPS, and IPv6 versions. type: - list - - object - location: string service_id: string service_uri: string - name: external_ip description: The external IPv4 assigned to the fowarding rule. type: string - name: http_proxy description: The HTTP proxy used by this module. type: string - name: https_proxy description: The HTTPS proxy used by this module. type: string - name: ip_address_http description: The internal/external IP address assigned to the HTTP forwarding rule. type: string - name: ip_address_https description: The internal/external IP address assigned to the HTTPS forwarding rule. type: string - name: ssl_certificate_created description: The SSL certificate create from key/pem type: string - name: url_map description: The URL map used by this load balancer frontend. type: string requirements: roles: - level: Project roles: - roles/compute.xpnAdmin - level: Project roles: - roles/storage.admin - roles/compute.admin - roles/run.admin - roles/iam.serviceAccountUser - roles/certificatemanager.owner - roles/vpcaccess.admin - roles/iam.serviceAccountAdmin services: - cloudresourcemanager.googleapis.com - storage-api.googleapis.com - serviceusage.googleapis.com - compute.googleapis.com - run.googleapis.com - iam.googleapis.com - certificatemanager.googleapis.com - vpcaccess.googleapis.com providerVersions: - source: hashicorp/google version: ">= 6.0, < 7" - source: hashicorp/google-beta version: ">= 6.0, < 7" - source: hashicorp/random version: ">= 2.1"