cloud-foundation-fabric/modules/cloud-config-container/envoy-traffic-director
Ludovico Magnocavallo ab646f38ed
Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634)
* bump provider versions to >= 4.17.0, terraform to >= 1.1.0

* bump teraform version in lint check, edit CHANGELOG
2022-04-17 13:55:40 +02:00
..
files Copyright bump (#410) 2022-01-01 15:52:31 +01:00
README.md Optionally turn off gcplogs driver in COS examples (#592) 2022-03-24 16:17:24 +01:00
main.tf Optionally turn off gcplogs driver in COS examples (#592) 2022-03-24 16:17:24 +01:00
outputs.tf Copyright bump (#410) 2022-01-01 15:52:31 +01:00
variables.tf Optionally turn off gcplogs driver in COS examples (#592) 2022-03-24 16:17:24 +01:00
versions.tf Bump provider versions to >= 4.17.0, terraform to >= 1.1.0 (#634) 2022-04-17 13:55:40 +02:00

README.md

Containerized Envoy Proxy with Traffic Director on Container Optimized OS

This module manages a cloud-config configuration that starts a containerized Envoy Proxy on Container Optimized OS connected to Traffic Director. The default configuration creates a reverse proxy exposed on the node's port 80. Traffic routing policies and management should be managed by other means via Traffic Director.

The generated cloud config is rendered in the cloud_config output, and is meant to be used in instances or instance templates via the user-data metadata.

This module depends on the cos-generic-metadata module being in the parent folder. If you change its location be sure to adjust the source attribute in main.tf.

Examples

Default configuration

# Envoy TD config
module "cos-envoy-td" {
  source = "./modules/cloud-config-container/envoy-traffic-director"
}

# COS VM
module "vm-cos" {
  source     = "./modules/compute-vm"
  project_id = local.project_id
  region     = local.region
  name       = "cos-envoy-td"
  network_interfaces = [{
    network    = local.vpc.self_link,
    subnetwork = local.vpc.subnet_self_link,
    nat        = false,
    addresses  = null
  }]
  instance_count = 1
  tags           = ["ssh", "http"]

  metadata = {
    user-data = module.cos-envoy-td.cloud_config
  }

  boot_disk = {
    image = "projects/cos-cloud/global/images/family/cos-stable"
    type  = "pd-ssd"
    size  = 10
  }

  service_account_scopes = ["https://www.googleapis.com/auth/cloud-platform"]
}

Variables

name description type required default
docker_logging Log via the Docker gcplogs driver. Disable if you use the legacy Logging Agent instead. bool true
envoy_image Envoy Proxy container image to use. string "envoyproxy/envoy:v1.14.1"

Outputs

name description sensitive
cloud_config Rendered cloud-config file to be passed as user-data instance metadata.