cloud-foundation-fabric/modules/cloud-config-container/envoy-traffic-director
Ludovico Magnocavallo f1924914af
Use flat source insted of submodule in envoy cos module (#72)
* use fabric format for in/out table in cos-generic-metadata module's README

* switch to flat modulespace in envoy cos module
2020-05-11 16:54:32 +02:00
..
files fix boilerplate in new envoy module 2020-05-10 13:02:12 +02:00
README.md Use flat source insted of submodule in envoy cos module (#72) 2020-05-11 16:54:32 +02:00
main.tf Use flat source insted of submodule in envoy cos module (#72) 2020-05-11 16:54:32 +02:00
outputs.tf Envoy with Traffic Director cloud-config (#70) 2020-05-10 13:00:18 +02:00
variables.tf fix boilerplate in new envoy module 2020-05-10 13:02:12 +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 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
  zone       = local.zone
  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
envoy_image Envoy Proxy container image to use. string envoyproxy/envoy:v1.14.1
gcp_logging Should container logs be sent to Google Cloud Logging bool true

Outputs

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