- Notifications
You must be signed in to change notification settings - Fork392
Creates a global HTTP load balancer for Compute Engine by using forwarding rules
License
NotificationsYou must be signed in to change notification settings
terraform-google-modules/terraform-google-lb-http
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Modular Global HTTP Load Balancer for GCE using forwarding rules.
- If you would like to allow for backend groups to be managed outside Terraform,such as via GKE services, see thedynamicbackends submodule.
- If you would like to use load balancing with serverless backends (Cloud Run,Cloud Functions or App Engine), see theserverless_negs submodule andcloudrun example.
- TCP load balancer
- HTTP/S load balancer
- Internal load balancer
This module is meant for use with Terraform 1.3+ and tested using Terraform 1.3. If you find incompatibilities using Terraform >=1.3, please open an issue. If you haven'tupgraded and need a Terraform0.12.x-compatible version of this module, the last released versionintended for Terraform 0.12.x isv4.5.0.
Current version is 12.0. Upgrade guides:
module"gce-lb-http" {source="GoogleCloudPlatform/lb-http/google"version="~> 9.0"project="my-project-id"name="group-http-lb"target_tags=[module.mig1.target_tags,module.mig2.target_tags]backends={ default= { port= var.service_port protocol="HTTP" port_name= var.service_port_name timeout_sec=10 enable_cdn=false health_check= { request_path="/" port= var.service_port } log_config= { enable=true sample_rate=1.0 } groups= [ {# Each node pool instance group should be added to the backend. group= var.backend }, ] iap_config= { enable=false } } }}
Figure 1.diagram of terraform resources
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| address | Existing IPv4 address to use (the actual IP address value) | string | null | no |
| backends | Map backend indices to list of backend maps. | map(object({ | n/a | yes |
| certificate | Content of the SSL certificate. Requiresssl to be set totrue andcreate_ssl_certificate set totrue | string | null | no |
| certificate_map | Certificate Map ID in format projects/{project}/locations/global/certificateMaps/{name}. Identifies a certificate map associated with the given target proxy. Requiresssl to be set totrue | string | null | no |
| create_address | Create a new global IPv4 address | bool | true | no |
| create_ipv6_address | Allocate a new IPv6 address. Conflicts with "ipv6_address" - if both specified, "create_ipv6_address" takes precedence. | bool | false | no |
| create_ssl_certificate | Iftrue, Create certificate usingprivate_key/certificate | bool | false | no |
| create_url_map | Set tofalse if url_map variable is provided. | bool | true | no |
| edge_security_policy | The resource URL for the edge security policy to associate with the backend service | string | null | no |
| enable_ipv6 | Enable IPv6 address on the CDN load-balancer | bool | false | no |
| firewall_networks | Names of the networks to create firewall rules in | list(string) | [ | no |
| firewall_projects | Names of the projects to create firewall rules in | list(string) | [ | no |
| http_forward | Set tofalse to disable HTTP port 80 forward | bool | true | no |
| http_keep_alive_timeout_sec | Specifies how long to keep a connection open, after completing a response, while there is no matching traffic (in seconds). | number | null | no |
| http_port | The port for the HTTP load balancer | number | 80 | no |
| https_port | The port for the HTTPS load balancer | number | 443 | no |
| https_redirect | Set totrue to enable https redirect on the lb. | bool | false | no |
| ipv6_address | An existing IPv6 address to use (the actual IP address value) | string | null | no |
| labels | The labels to attach to resources created by this module | map(string) | {} | no |
| load_balancing_scheme | Load balancing scheme type (EXTERNAL for classic external load balancer, EXTERNAL_MANAGED for Envoy-based load balancer, and INTERNAL_SELF_MANAGED for traffic director) | string | "EXTERNAL" | no |
| managed_ssl_certificate_domains | Create Google-managed SSL certificates for specified domains. Requiresssl to be set totrue | list(string) | [] | no |
| name | Name for the forwarding rule and prefix for supporting resources | string | n/a | yes |
| network | Network for INTERNAL_SELF_MANAGED load balancing scheme | string | "default" | no |
| private_key | Content of the private SSL key. Requiresssl to be set totrue andcreate_ssl_certificate set totrue | string | null | no |
| project | The project to deploy to, if not set the default provider project is used. | string | n/a | yes |
| quic | Specifies the QUIC override policy for this resource. Set true to enable HTTP/3 and Google QUIC support, false to disable both. Defaults to null which enables support for HTTP/3 only. | bool | null | no |
| random_certificate_suffix | Bool to enable/disable random certificate name generation. Set and keep this to true if you need to change the SSL cert. | bool | false | no |
| security_policy | The resource URL for the security policy to associate with the backend service | string | null | no |
| server_tls_policy | The resource URL for the server TLS policy to associate with the https proxy service | string | null | no |
| ssl | Set totrue to enable SSL support. Iftrue then at least one of these are required: 1)ssl_certificates OR 2)create_ssl_certificate set totrue andprivate_key/certificate OR 3)managed_ssl_certificate_domains, OR 4)certificate_map | bool | false | no |
| ssl_certificates | SSL cert self_link list. Requiresssl to be set totrue | list(string) | [] | no |
| ssl_policy | Selfink to SSL Policy | string | null | no |
| target_service_accounts | List of target service accounts for health check firewall rule. Exactly one of target_tags or target_service_accounts should be specified. | list(string) | [] | no |
| target_tags | List of target tags for health check firewall rule. Exactly one of target_tags or target_service_accounts should be specified. | list(string) | [] | no |
| url_map | The url_map resource to use. Default is to send all traffic to first backend. | string | null | no |
| Name | Description |
|---|---|
| backend_services | The backend service resources. |
| external_ip | The external IPv4 assigned to the global fowarding rule. |
| external_ipv6_address | The external IPv6 assigned to the global fowarding rule. |
| http_proxy | The HTTP proxy used by this module. |
| https_proxy | The HTTPS proxy used by this module. |
| ipv6_enabled | Whether IPv6 configuration is enabled on this load-balancer |
| ssl_certificate_created | The SSL certificate create from key/pem |
| url_map | The default URL map used by this module. |
google_compute_global_forwarding_rule.http: The global HTTP forwarding rule.google_compute_global_forwarding_rule.https: The global HTTPS forwarding rule created whensslistrue.google_compute_target_http_proxy.default: The HTTP proxy resource that binds the url map. Created when inputsslisfalse.google_compute_target_https_proxy.default: The HTTPS proxy resource that binds the url map. Created when inputsslistrue.google_compute_ssl_certificate.default: The certificate resource created when inputsslistrueandmanaged_ssl_certificate_domainsnot specified.google_compute_managed_ssl_certificate.default: The Google-managed certificate resource created when inputsslistrueandmanaged_ssl_certificate_domainsis specified.google_compute_url_map.default: The default URL map resource when inputurl_mapis not provided.google_compute_backend_service.default.*: The backend services created for each of thebackend_paramselements.google_compute_health_check.default.*:Health check resources created for each of the (non global NEG) backend services.google_compute_firewall.default-hc: Firewall rule created for each of the backed services to allow health checks to the instance group.
About
Creates a global HTTP load balancer for Compute Engine by using forwarding rules
Topics
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.
