All Projects → terraform-google-modules → Terraform Google Lb Http

terraform-google-modules / Terraform Google Lb Http

Licence: apache-2.0
Modular Global HTTP Load Balancer for GCE using forwarding rules.

Labels

Projects that are alternatives of or similar to Terraform Google Lb Http

Reference Architectures
[WIP] Get up and running quickly with one of our reference architecture using our fully automated cold-start process.
Stars: ✭ 127 (-9.29%)
Mutual labels:  hcl
Terraform Aws Vpc
Terraform Module that defines a VPC with public/private subnets across multiple AZs with Internet Gateways
Stars: ✭ 130 (-7.14%)
Mutual labels:  hcl
Sap Hana
Tools to create, monitor and maintain SAP landscapes in Azure
Stars: ✭ 136 (-2.86%)
Mutual labels:  hcl
Terraform Aws Spotgpu
Fully automated provisioning of AWS EC2 Spot Instances for Deep Learning workloads using Terraform.
Stars: ✭ 127 (-9.29%)
Mutual labels:  hcl
Terraform Aws S3 Bucket
Terraform module which creates S3 bucket resources on AWS
Stars: ✭ 130 (-7.14%)
Mutual labels:  hcl
Aws Terraform
Code examples to create CoreOS cluster on AWS with Terraform
Stars: ✭ 132 (-5.71%)
Mutual labels:  hcl
Hybrid multicloud overlay
MutiCloud_Overlay demonstrates a use case of overlay over one or more clouds such as AWS, Azure, GCP, OCI, Alibaba and a vSphere private infrastructure in Hub and spoke topology, point to point topology and in a Single cloud. Overlay protocols IPv6 and IPv4 are independent of underlying infrastructure. This solution can be integrated with encryption and additional security features.
Stars: ✭ 127 (-9.29%)
Mutual labels:  hcl
Terraform Aws Airship Ecs Service
Terraform module which creates an ECS Service, IAM roles, Scaling, ALB listener rules.. Fargate & AWSVPC compatible
Stars: ✭ 139 (-0.71%)
Mutual labels:  hcl
Terragrunt Atlantis Config
Generate Atlantis config for Terragrunt projects.
Stars: ✭ 131 (-6.43%)
Mutual labels:  hcl
Terraformmagentocloud
AWS Magento 2 cloud Terraform infrastructure as code. For any systems WordPress / WooCommerce/ Drupal / Shopware 6 / Shopify APP / VueStorefront / Oddo / ORO / Magento 2 with horizontal Auto scaling (platform agnostic)
Stars: ✭ 136 (-2.86%)
Mutual labels:  hcl
Terraform Rolling Deploys
Rolling ASG deployments with Terraform on AWS
Stars: ✭ 127 (-9.29%)
Mutual labels:  hcl
Serverless Prey
Serverless Functions for establishing Reverse Shells to Lambda, Azure Functions, and Google Cloud Functions
Stars: ✭ 130 (-7.14%)
Mutual labels:  hcl
Terraform Google Gke Cluster
A Terraform module to create a best-practise Google Kubernetes Engine (GKE) cluster.
Stars: ✭ 133 (-5%)
Mutual labels:  hcl
Vishwakarma
Terraform modules to create a self-hosting Kubernetes cluster on opinionated Cloud Platform.
Stars: ✭ 127 (-9.29%)
Mutual labels:  hcl
Terragrunt Infrastructure Modules Example
A repo used to show examples file/folder structures you can use with Terragrunt and Terraform
Stars: ✭ 135 (-3.57%)
Mutual labels:  hcl
Kubernetes Ops
Running Kubernetes in production
Stars: ✭ 127 (-9.29%)
Mutual labels:  hcl
Multi Env Deploy
Complete example of deploying complex web apps to AWS using Terraform, Ansible, and Packer
Stars: ✭ 132 (-5.71%)
Mutual labels:  hcl
Terraform Aws Cicd
Terraform Module for CI/CD with AWS Code Pipeline and Code Build
Stars: ✭ 138 (-1.43%)
Mutual labels:  hcl
Terraform Aws Elasticsearch
Terraform module to provision an Elasticsearch cluster with built-in integrations with Kibana and Logstash.
Stars: ✭ 137 (-2.14%)
Mutual labels:  hcl
Terraform Foundational Policies Library
Sentinel is a language and framework for policy built to be embedded in existing software to enable fine-grained, logic-based policy decisions. This repository contains a library of Sentinel policies, developed by HashiCorp, that can be consumed directly within the Terraform Cloud platform.
Stars: ✭ 135 (-3.57%)
Mutual labels:  hcl

Global HTTP Load Balancer Terraform Module

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 the dynamic backends submodule.
  • If you would like to use load balancing with serverless backends (Cloud Run, Cloud Functions or App Engine), see the serverless_negs submodule and cloudrun example.

Load Balancer Types

Compatibility

This module is meant for use with Terraform 0.12. If you haven't upgraded and need a Terraform 0.11.x-compatible version of this module, the last released version intended for Terraform 0.11.x is 1.0.10.

Usage

module "gce-lb-http" {
  source            = "GoogleCloudPlatform/lb-http/google"
  version           = "~> 4.4"

  project           = "my-project-id"
  name              = "group-http-lb"
  target_tags       = [module.mig1.target_tags, module.mig2.target_tags]
  backends = {
    default = {
      description                     = null
      protocol                        = "HTTP"
      port                            = var.service_port
      port_name                       = var.service_port_name
      timeout_sec                     = 10
      enable_cdn                      = false
      custom_request_headers          = null
      security_policy                 = null

      connection_draining_timeout_sec = null
      session_affinity                = null
      affinity_cookie_ttl_sec         = null

      health_check = {
        check_interval_sec  = null
        timeout_sec         = null
        healthy_threshold   = null
        unhealthy_threshold = null
        request_path        = "/"
        port                = var.service_port
        host                = null
        logging             = null
      }

      log_config = {
        enable = true
        sample_rate = 1.0
      }

      groups = [
        {
          # Each node pool instance group should be added to the backend.
          group                        = var.backend
          balancing_mode               = null
          capacity_scaler              = null
          description                  = null
          max_connections              = null
          max_connections_per_instance = null
          max_connections_per_endpoint = null
          max_rate                     = null
          max_rate_per_instance        = null
          max_rate_per_endpoint        = null
          max_utilization              = null
        },
      ]

      iap_config = {
        enable               = false
        oauth2_client_id     = null
        oauth2_client_secret = null
      }
    }
  }
}

Resources created

Figure 1. diagram of terraform resources

architecture diagram

Version

Current version is 3.0. Upgrade guides:

Inputs

Name Description Type Default Required
address IP address self link string null no
backends Map backend indices to list of backend maps.
map(object({
protocol = string
port = number
port_name = string

description = string
enable_cdn = bool
security_policy = string
custom_request_headers = list(string)

timeout_sec = number
connection_draining_timeout_sec = number
session_affinity = string
affinity_cookie_ttl_sec = number

health_check = object({
check_interval_sec = number
timeout_sec = number
healthy_threshold = number
unhealthy_threshold = number
request_path = string
port = number
host = string
logging = bool
})

log_config = object({
enable = bool
sample_rate = number
})

groups = list(object({
group = string

balancing_mode = string
capacity_scaler = number
description = string
max_connections = number
max_connections_per_instance = number
max_connections_per_endpoint = number
max_rate = number
max_rate_per_instance = number
max_rate_per_endpoint = number
max_utilization = number
}))
iap_config = object({
enable = bool
oauth2_client_id = string
oauth2_client_secret = string
})
}))
n/a yes
cdn Set to true to enable cdn on backend. bool false no
certificate Content of the SSL certificate. Required if ssl is true and ssl_certificates is empty. string null no
create_address Create a new global address bool true no
create_url_map Set to false if url_map variable is provided. bool true no
firewall_networks Names of the networks to create firewall rules in list(string)
[
"default"
]
no
firewall_projects Names of the projects to create firewall rules in list(string)
[
"default"
]
no
http_forward Set to false to disable HTTP port 80 forward bool true no
https_redirect Set to true to enable https redirect on the lb. bool false no
ip_version IP version for the Global address (IPv4 or v6) - Empty defaults to IPV4 string null no
managed_ssl_certificate_domains Create Google-managed SSL certificates for specified domains. Requires ssl to be set to true and use_ssl_certificates set to false. list(string) [] no
name Name for the forwarding rule and prefix for supporting resources string n/a yes
private_key Content of the private SSL key. Required if ssl is true and ssl_certificates is empty. string null no
project The project to deploy to, if not set the default provider project is used. string n/a yes
quic Set to true to enable QUIC support bool false no
security_policy The resource URL for the security policy to associate with the backend service string null no
ssl Set to true to enable SSL support, requires variable ssl_certificates - a list of self_link certs bool false no
ssl_certificates SSL cert self_link list. Required if ssl is true and no private_key and certificate is provided. 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
use_ssl_certificates If true, use the certificates provided by ssl_certificates, otherwise, create cert from private_key and certificate bool false no

Outputs

Name Description
backend_services The backend service resources.
external_ip The external IP assigned to the global forwarding rule.
http_proxy The HTTP proxy used by this module.
https_proxy The HTTPS proxy used by this module.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].